作者wattlu
基本上,我覺得我好像幫不上什麼忙,先說聲抱歉
我不明白DW改成DB的用意是?
MOV CX,E這個用法是錯誤的,錯在哪?錯在你定義E DB 5
你自己想想看MOV CX,AL這種寫法成立嗎?
答案是不成立,8bit的東西不能直接放到16bit
我把我想出來的方法給你參考一下,不保證有用,因為我不會用DEBUG=.=,所以沒辦法驗證
用CBW指令:把AL轉成有號數AX
IMUL A
ADD AX,CX
ADC DX,BX
...mov bx,ax ;暫存,因要用到al
...mov al, e
...cbw ;al轉成ax 8bit放到16bit
...mov cx,ax ;這一步完成你之前的mov cx,e
...mov ax,bx ;放回
SUB CX,2
IDIV CX
MOV D,AL
MOV DR,AH
.EXIT
END
再次強調一下,我不明白你到底要將原本程式用什麼的寫法去改寫?
單純是將e dw 5 改成e db 5嗎?
因為我不知道你要用什麼去改寫原本程式...所以想的方法可能幫不上忙
|