汇编语言:基于8088/8086

时间:2021-08-21 00:44:47

1. 设STY1存储单元开始存有9个单字节带符号数,求其中正数、负数和零的个数并分别存于PM、NM、ZM存储单元。

data segment
	STY1 db  -1, 0, 3, 100, -999, 66, 89, 753, -258
	PM    db  0
	NM    db  0
	ZM    db  0
data ends

code segment
assume  cs:code, ds:data

START: MOV ax, data
		   MOV ds, ax
		   
		   lea si, STY1   ;设置指针地址
		   MOV cx, 9     ;设置计数器
		   
  again:MOV al, [si]
		   cmp  al, 0     ;使用寄存器间接寻址 与0进行比较
		   jle next        ;如果小于等于0 直接跳转next处执行
		   inc PM
		   jmp follow
		   
    next:jz zero         ;如果等于0 跳转到zero处执行
		   inc NM
		   jmp follow
		   
	zero:inc ZM
	
 follow:inc si
    loop again           ;loop与计数器cx是对应的
		  
		  MOV AH 4ch  ;返回DOS
		  INT 21H     
code ends
		end START