;已知有 NUMBER 个数存放在以 BUFFER 为首地址的字存储区中,
;试统计其中负数和正数的个数,要求放到 N_NEG、N_POS 单元,编写完整程序
DATA SEGMENT
BUFFER DW 2 DUP(1,-2,3,-4,5,-6,7,-8,9,-10); 定义长度为20的子数组,并给它赋值
NUMBER EQU ($-BUFFER)/2 ;计算得到BUFFER数组长度赋值给NUMBER
N_NEG DB 0 ;定义字变量N_NEG用于存放负数
N_POS DB 0 ;定义字变量N_POS用于存放正数
ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA ;声明数据段和代码段
START:
MOV AX,DATA
MOV DS,AX
LEA BX,BUFFER ;获取BUFFER数组首地址
MOV CX,NUMBER ;设置循环次数为数组长度
L: MOV AX,[BX] ;获取BUFFER数组中元素
CMP AX,0 ;比较该元素的正负
JG NEXT ;正数转移
INC N_NEG ;负数计数器N_NEG加1
JMP CONTINUE ;跳转到公共区
NEXT: INC N_POS ;正数计数器N_POS加1
CONTINUE: ADD BX,2 ;数组指针移动,因为是字数组,移动两个字节
LOOP L ;循环比较下一个元素
MOV AH,4CH
INT 21H
ENDS:
END START
汇编语言实现 已知有 NUMBER 个数存放在以 BUFFER 为首地址的字存储区中,试统计其中负数和正数的个数,要求放到 N_NEG、N_POS 单元,编写完整程序。
于 2024-04-17 17:47:12 首次发布
![](https://img-home.csdnimg.cn/images/20240611030827.png)