多做题,通过考试没问题!

汇编语言程序设计

睦霖题库>大学试题(计算机科学)>汇编语言程序设计

数组LIST3内存有20个压缩BCD码表示的双字节十进制数,写出完整程序,求这20个BCD数之和,结果(压缩BCD码)存入SUM3双字单元。

正确答案: CODESEGMENT
ASSUME CS:CODE
LIST3 DW
1234H,3456H,5678H,1523H,8263H,
DW 5234H,4856H,1926H,3177H,6389H
DW 2211H,3322H,4433H,5544H,6655H
DW 7766H,8877H,9988H,1167H,3944H
SUM3 DD ?
START: XOR DX,DX
XOR AX,AX;累加器清零
LEA BX,LIST3;地址指针置初值
MOV CX,20;循环计数器置初值
ONE://ADD AL,CS:[BX];加入第一字节压缩BCD数(十位、个位)
DAA;调整
XCHG AH,AL;交换AH和AL
INC BX;修改指针,指向高位字节(千位、百位)
ADC AL,CS:[BX];高位累加,并收集低位进位DAA;高位(百位、千位)调整
XCHG AH,AL;恢复AH和AL;(AH)=千位、百位,(AL)=十位、个位
INC BX;修改指针
XCHG DX,AX;交换AX和DX
ADC AL,0;收集千位上的进位
DAA;调整,得到和的十万位和万位
XCHG DX,AX;恢复DX和AX
LOOP ONE;循环控制
MOV WORD PTR SUM3,AX;保存千、百、十、个位
MOV WORD PTR SUM3+2,DX;保存十万位和万位
MOV AX,4C00H
INT 21H
CODEENDS
END START
答案解析:
进入题库查看解析

微信扫一扫手机做题