简答题

数组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

答案解析

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

    简答题查看答案

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

    简答题查看答案

  • 变量X,Y,Z均为一字节压缩BCD码表示的十进制数,写出指令序列,求它们的和(用2字节压缩BCD码表示)。

    简答题查看答案

  • 变量X,Y,Z均为一字节压缩BCD码表示的十进制数,写出指令序列,求它们的和(用2字节压缩BCD码表示)。

    简答题查看答案

  • 变量X,Y,Z均为一字节压缩BCD码表示的十进制数,写出指令序列,求它们的和(用2字节压缩BCD码表示)。

    简答题查看答案

  • 某数在计算机中用压缩BCD码表示为10010011,其真值为()。

    单选题查看答案

  • 在以3000H为首地址的外部RAM中,存放了14个以ASCII码表示的0~9的数,试编写程序将它们转换成BCD码,并以压缩BCD形式存放在以2000H为首地址的外部RAM中。

    简答题查看答案

  • 在数据段有压缩的BCD码表示的十进制数,写出指令分别完成十进制加法A+B,K+J和减法A-B,K-J。结果放在AX,回答AX的内容。

    简答题查看答案

  • 写出完成以下操作的程序段。假设各变量的值均为用压缩BCD码表示的二位十进制数:U ← V+(S-6)

    简答题查看答案