汇编乘法计算方法
答案:1 悬赏:30 手机版
解决时间 2021-02-28 17:10
- 提问者网友:遮云壑
- 2021-02-27 18:10
汇编乘法计算方法
最佳答案
- 五星知识达人网友:逃夭
- 2021-02-27 18:29
下面是32位无符号数乘16位的无符号数的计算子程序,解决8086本身指令无法解决的问题。
其实如果在没有乘法指令mul时,就是采用移位相加的方法来实现乘法运算的 !
对于有符号数的乘法运算,是对负数求补后当作无符号数计算,计算完后在来处理符号。
; 无符号乘法子程序 (mul指令只能实现16位乘16位,本子程序实现32位乘16位--限定数的大小,结果仍为32位)
; 被乘数放置于dx,ax 中, 乘数放置于 bx中
; 结果放置于dx,ax中(dx为高16位,ax为低16位)
MULT PROC NEAR
PUSH BX
PUSH CX
PUSH SI
PUSH DI
PUSH BP
PUSHF
MOV SI,0
MOV DI,0
CMP BX,0
JE @MULTEXIT
@MULT1: SHR BX,1
JNC @MULT2
ADD SI,AX
ADC DI,DX
@MULT2: SHL AX,1
RCL DX,1
CMP BX,0
JNE @MULT1
MOV DX,DI
MOV AX,SI
POPF
POP BP
POP DI
POP SI
POP CX
POP BX
RET
@MULTEXIT:
MOV AX,0
MOV DX,0
POPF
POP BP
POP DI
POP SI
POP CX
POP BX
RET
MULT ENDP追问手算怎么算。。。。追答无符号手算:
1011 0101
* 0001 0001
---------------
1011 0101
1011 0101
---------------
1100 0000 0101追问有符号的手算怎么算?追答比如B5是有符号数的1011 0101,其为负数,求补得0100 1011(不考虑符号位)
0100 1011
* 0001 0001
----------------
0100 1011
0100 1011
----------------
0100 1111 1011
即 0000 0100 1111 1011,
其补码为1111 1011 0000 0101---此即最后相乘的结果追问那如果11H是负数,按位取反以后不是00H,00H乘B5H不就等于0了有符号数B4H乘11H等于多少,不会算啊。怎么算都不对。。。。
其实如果在没有乘法指令mul时,就是采用移位相加的方法来实现乘法运算的 !
对于有符号数的乘法运算,是对负数求补后当作无符号数计算,计算完后在来处理符号。
; 无符号乘法子程序 (mul指令只能实现16位乘16位,本子程序实现32位乘16位--限定数的大小,结果仍为32位)
; 被乘数放置于dx,ax 中, 乘数放置于 bx中
; 结果放置于dx,ax中(dx为高16位,ax为低16位)
MULT PROC NEAR
PUSH BX
PUSH CX
PUSH SI
PUSH DI
PUSH BP
PUSHF
MOV SI,0
MOV DI,0
CMP BX,0
JE @MULTEXIT
@MULT1: SHR BX,1
JNC @MULT2
ADD SI,AX
ADC DI,DX
@MULT2: SHL AX,1
RCL DX,1
CMP BX,0
JNE @MULT1
MOV DX,DI
MOV AX,SI
POPF
POP BP
POP DI
POP SI
POP CX
POP BX
RET
@MULTEXIT:
MOV AX,0
MOV DX,0
POPF
POP BP
POP DI
POP SI
POP CX
POP BX
RET
MULT ENDP追问手算怎么算。。。。追答无符号手算:
1011 0101
* 0001 0001
---------------
1011 0101
1011 0101
---------------
1100 0000 0101追问有符号的手算怎么算?追答比如B5是有符号数的1011 0101,其为负数,求补得0100 1011(不考虑符号位)
0100 1011
* 0001 0001
----------------
0100 1011
0100 1011
----------------
0100 1111 1011
即 0000 0100 1111 1011,
其补码为1111 1011 0000 0101---此即最后相乘的结果追问那如果11H是负数,按位取反以后不是00H,00H乘B5H不就等于0了有符号数B4H乘11H等于多少,不会算啊。怎么算都不对。。。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯