A-A+

从内RAM 20H单元开始存有一组带符号数(补码) 其个数已存放在1FH单元。要求统计其中大

2022-08-13 22:14:49 问答库 阅读 199 次

问题详情

从内RAM 20H单元开始存有一组带符号数(补码),其个数已存放在1FH单元。要求统计其中大于0、等于0和小于0的数的个数,并把统计结果分别存入ONE、TWO、THREE 3个单元。

参考答案

编程如下:
ONE EQU 30H
TWO EQU 31H
THREE EQU 32H
STOR:MOV R0,#20H ;置数据区首址
SLOP:MOV A,@R0 ;读数据
JZ LP1 ;数据=0,转
JB Acc.7,LP2 ;数据<0,转
INC ONE ;数据>0,ONE单元加1
LP0:INC R0 ;指向下一数据
DJNZ 1FH,SLOP ;判统计结束否?未结束循环
RET ;统计结束,返回
LP1:INC TWO ;数据=0,TWO单元加1
SJMP LP0 ;返回循环体
LP2:INC THREE ;数据<0,THREE单元加1
SJMP LP0 ;返回循环体

考点:补码,单元