问答题
已知NUM个8位有符号数存放在首地址为BUFF的数据区中。试编一个程序段,完成这些数据的求和运算,并将16位运算结果放在变量SUM中。
【正确答案】LD AR,#0 ;累加和清0
ST AR,SUM+1
MOV IX,AR ;下标偏移清0
LOOP:LD BR,#127
CMP BR,BUFF[Ix] ;判有符号数Xi正负
LD BR,#0 ;将Xi的符号位状态扩展到BR
JNC XGE0 ;若Xi≥0转
NOT BR ;BR=-1
XGE0: CLRC ;CF←0
ADC AR,BUFF[IX] ;累加低8位
ADC BR,SUM+1 ;累加高8位
ST BR,SUM+1 ;保存高8位累加结果
INC IX ;调整下标偏移
CMP IX,#NUM
JNZ LOOP ;若IX#NUM则继续循环
ST AR,SUM ;保存低8位累加结果
【答案解析】