布斯算法(一位乘法)示例

作者在 2008-12-20 23:20:03 发布以下内容
;布斯算法示例
;一位相乘
;=============ONEPROBLEM============
assume cs:code
code segment
start:
 mov bl,2 ;被乘数
 mov al,-3 ;乘数,返回值也在al中
 mov cl,4 ;先把被乘数移到高位,方便加减
 shl bl,cl
 and al,0fh ;初始化乘数
 mov dh,al
 shl dh,1 ;先添加一个辅助位0
 mov dl,dh
 and dl,3 ;先判断辅助位和第一位.
 call panduan
 mov cx,3
begin:
 shr dh,1
 mov dl,dh
 and dl,3
 call panduan
 loop begin
 mov ax,4c00h
 int 21h
panduan:
 cmp dl,0
 je yiwei
 cmp dl,3
 je yiwei
 cmp dl,1
 je jiafa
 cmp dl,2
 je jianfa
yiwei:   ;00 或11 时,仅移位
 sar al,1
 ret
jiafa:   ;01 时,先相加,再移位
 add al,bl
 sar al,1
 ret
jianfa:   ;10 时,先相减,再移位
 sub al,bl
 sar al,1
 ret
code ends
end start
默认分类 | 阅读 8946 次
文章评论,共1条
gaoxiaopeng5
2008-12-20 23:49
1
我什么都看不懂 <br />
给点建议我该从那开始学呢 ?
游客请输入验证码