使用汇编语言实现以下功能:分别统计下列20个数中小于零、大于等于零且小于等于5、大于5的数据个数,分别存入字节单元RES1、RES2和RES3中并显示在屏幕上。 BUF DB -1, 20, ... 原创 2023-02-12 22:11:32
时间: 2024-03-07 08:50:45 浏览: 32
好的,我明白了你的问题。下面是使用汇编语言实现的程序:
```
DATA SEGMENT
BUF DB -1, 20, 3, 7, -4, 0, 2, -3, 5, 1, -2, 4, 6, -5, 8, 9, -6, 10, -7, 11
RES1 DB ?
RES2 DB ?
RES3 DB ?
DATA ENDS
CODE SEGMENT
START:
MOV AX, DATA
MOV DS, AX
MOV CX, 20
MOV BL, 0
MOV BH, 0
MOV RES1, 0
MOV RES2, 0
MOV RES3, 0
L1:
MOV AL, BUF[SI]
CMP AL, 0
JL L2
CMP AL, 5
JLE L3
INC RES3
JMP L4
L2:
INC RES1
JMP L4
L3:
INC RES2
L4:
INC SI
LOOP L1
MOV AH, 09H
MOV DX, OFFSET MSG1
INT 21H
MOV AH, 02H
MOV DL, RES1
ADD DL, 48
INT 21H
MOV DL, ','
INT 21H
MOV DL, RES2
ADD DL, 48
INT 21H
MOV DL, ','
INT 21H
MOV DL, RES3
ADD DL, 48
INT 21H
MOV AH, 4CH
INT 21H
MSG1 DB 'Number of negative numbers, numbers between 0 and 5, numbers greater than 5: $'
CODE ENDS
END START
```
程序使用了数据段和代码段。在数据段中,我们定义了数据缓冲区BUF,以及用于存储结果的字节单元RES1、RES2和RES3。在代码段中,我们使用了寄存器和标号来实现对BUF中数据的遍历和分析。最后,我们使用INT 21H中断来将结果输出到屏幕上。
注意,这个程序是用8086汇编语言编写的,如果你在其他平台上运行,可能需要进行一些修改。
相关推荐
![none](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![asm](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)