编写程序实现以下功能:已知从ccc单元开始存有10个8位带符号数,要求统计其中负数的个数放在NEGA字节单元,并显示在CRT上
时间: 2024-05-09 19:15:58 浏览: 194
C语言输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出
5星 · 资源好评率100%
以下是一种可能的实现方式,使用汇编语言编写:
```
ORG 0x0
START:
; 初始化计数器
MOV BX, 0
; 遍历数组
MOV SI, ccc ; SI 指向数组起始位置
MOV CX, 10 ; CX 为数组长度
LOOP:
MOV AL, [SI] ; 取出数组元素
CMP AL, 0 ; 判断是否为负数
JNS NOT_NEGA ; 不是负数则跳过
INC BX ; 计数器加一
NOT_NEGA:
INC SI ; 指向下一个数组元素
LOOP LOOP ; 循环遍历数组
; 将负数的个数存入 NEGA 字节单元
MOV [NEGA], BL
; 显示负数的个数在 CRT 上
MOV AH, 02H ; 功能号 02H 表示显示字符
MOV DL, BL ; DL 存储要显示的字符
INT 21H ; 调用 DOS 中断显示字符
; 程序结束
INT 20H ; 调用 DOS 中断结束程序
; 数据区
ccc DB -1, 2, 0, -3, 4, 5, -6, 7, 8, -9 ; 数组起始位置
NEGA DB 0 ; 存储负数的个数
```
该程序首先初始化计数器 `BX` 为 0,然后遍历数组,对于每个元素,判断其是否为负数,如果是则将计数器加一。遍历完成后,将计数器的值存入 `NEGA` 字节单元中,然后使用 DOS 中断显示负数的个数在 CRT 上。注意,这个程序假设要使用 DOS 中断来显示字符,如果要在其他操作系统或环境下运行,则需要相应地修改显示部分的代码。
阅读全文