题目:已知有NUM个数存放在以BUFFER为首地址的字节存储区中,试统计其中负元素的个数,要求放到COUNT单元,编写完整程序。
应掌握的知识点:1数组长度的获取以及循环次数的设置,2指针寄存器的使用
代码:
;定义数据段
DATA SEGMENT
COUNT DB 0
BUFFER DB -1,-2,-3,0,0,1,2,3,-5,0,0,0,6,7,6,5,8,9,0,-1,-1
NUM EQU $-BUFFER ;获取BUFFER中的元素个数
DATA ENDS
CODE SEGMENT ;定义代码段
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX ;设置DS
MOV CX,NUM ;设置循环次数
LEA SI,BUFFER ;将BUFFER首地址送到SI
NEXT:
MOV AL,[SI] ;将BUFFER中第一个元素送到AL
CMP AL,0 ;AL与0比较
JGE L ;若AL内容不比0小,跳到L函数
INC COUNT ;因为AL内容为负数,COUNT加一
JMP L ;无条件跳转到L
L:
INC SI ;移动指针
LOOP NEXT ;循环NEXT
MOV AH,4CH ;返回DOS
INT 21H
CODE ENDS
END START ;整个程序结束