试题详情
简答题数组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
  • 关注下方微信公众号,在线模考后查看

热门试题