您的位置:首页 > 其它

32位二进制数与16位二进制数相乘,在屏幕上输出结果

2016-01-25 11:32 381 查看
用乘法指令实现32位二进制数与16位二进制数相乘,最后在屏幕上输出结果。
悬赏分:50 - 解决时间:2009-12-14 09:23
最佳答案:
;--------------------
完整的程序如下。
DATA SEGMENT
;A中第一个字存高16位被乘数,第二个字存低16位被乘数
;B中存16位乘数
;CDE存结果,C存32位到47位,D存16位到31位,E存0位到15位
    A DW 1111H, 2222H
    B DW 3333H
    C DW ?
    D DW ?
    E DW ?
    F DB 0, 0, 0, 0, 0, 0, 0, 0    ;存放BCD码
DATA ENDS
;--------------------
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
      MOV AX, DATA
       MOV DS, AX
       MOV AX, [A+2]
       MOV BX, [B]
       MUL BX
       MOV [D], DX
       MOV [E], AX
       MOV AX, [A]
       MUL BX
       MOV [C], DX
       ADD [D], AX
       ADC [C], 0
;---------------以上是“一般般拉风”编写的乘法部分------------
;---------------------------以下是做而论道编写的输出部分-----
       MOV CX, 48              ; 48位数变换成BCD码
_L1_:
       XOR AX, AX
       MOV AX, [E]
       ADD AX, AX
       MOV [E], AX
       MOV AX, [D]
       ADC AX, AX
       MOV [D], AX
       MOV AX, [C]
       ADC AX, AX
       MOV [C], AX
       LEA SI, F+7
       PUSH CX
       MOV CX, 8
_L2_:
       MOV AL, [SI]
       ADC AL, AL
       DAA
       MOV [SI], AL
       DEC SI
       LOOP _L2_
       POP CX
       LOOP _L1_
;---------------------------以下是显示BCD码------------
       LEA SI, F
       MOV CX, 8
_L3_:
       MOV AL, [SI]
       MOV AH, 0
       MOV DL, 16
       DIV DL
       MOV DL, AL
       AND DL, 0FH
       ADD DL, 30H
       MOV AH, 02H
       INT 21H
       MOV DL, [SI]
       AND DL, 0FH
       ADD DL, 30H
       MOV AH, 02H
       INT 21H
       INC SI
       LOOP _L3_

       MOV AH, 4CH
       INT 21H
CODE ENDS
END START
;------------------------------------------------
;本程序进行了如下乘法:
;11112222H × 3333H = 0369 D036 92C6H
;应该显示如下结果:
;00 03 75 29 99 68 68 54
;------------------------------------------------
参考资料:一般般拉风 的回答。
回答者:    做而论道 - 十一级   2009-12-14 01:38
;------------------------------------------------
提问者对于答案的评价:相当感谢
;------------------------------------------------
其他回答    共 2 条
程序(略)
回答者: 一般般拉风 - 三级   2009-12-13 13:33
此题难点,恰在输出结果。
回答者: -------- 十四级 2009-12-13 17:45
;------------------------------------------------
原文网址:http://zhidao.baidu.com/question/129169219.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: