汇编语言编程实现下面问题:

在以首地址为TABLE的10个内存字节单元中存放了10个带符号数,要求统计其中正数、负数和零的个数,并将结果存入PLUS、NEGT和ZERO单元。

嘿嘿 还是自己动手做吧 俺只给你提供一个能实现你的要求的算法
一个循环结构就可以实现你的要求:
1、循环初始化:
PLUS、NEGT和ZERO单元清零,设循环次数为10,是一个指针指向首地址为TABLE内存字节单元。
2、循环体:
使用指针从TABLE内存字节单元取一个数,与0进行比较,如果大于0 则PLUS单元内容加1
如果等于0 则ZERO单元内容加1; 如果等小0 则NEGT单元内容加1;修改指针
指向下一个地址单元。
3、循环结束控制:
循环次数减1 不等于零则继续执行第2步内容 否则结束

呵呵 满意就选满意回答啊 (如有疑问 可给我发百度的消息)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-06
以前编写过这样的程序,稍稍改了改,就适合于楼主的要求了。
下面的程序已经经过测试,符合要求。

DATA SEGMENT
TABLE DB 0, -19, 27, 44, 93, -38, 0, 85, 120, 32
;存放了10个带符号数,要求统计其中正数、负数和零的个数,
PLUS DB ?
NEGT DB ?
ZERO DB ?
DATA ENDS
;--------------------------------------------
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
;-----------------------------
MOV PLUS, 0
MOV NEGT, 0
MOV ZERO, 0
;-----------------------
LEA SI, TABLE
MOV CX, 10
AGAIN:
MOV AL, [SI]
SUB AL, 0
JE X3
JS X2
INC PLUS
JMP NEXT
X2:
INC NEGT
JMP NEXT
X3:
INC ZERO
NEXT:
INC SI
LOOP AGAIN
;-----------------------------
MOV AH, 4CH
INT 21H
CODE ENDS
;--------------------------------------------
END START

程序的结果,要用DEBUG来观看。
相似回答