Re: [問題] 關於除法指令div的問題
※ 引述《ppttcc (ppttcc)》之銘言:
: 關於除法指令div的問題
: 程式目的:將一數除以另一數後將商及餘數轉成ASCII的數字後輸出,
: 發生一些問題:
: 1.除數若在13以下顯示的結果就會變成divide overflow,但若超過就沒有此問題.
: 2.轉成ASCII後完全不是該數字,如20/14後,應是1餘6,但轉成ASCII輸出後,會變成2b,
: 30/14後,應是2餘2,但轉成ASCII輸出後,會變成字元 < l (L的小寫),整個都亂掉
: 3.若不呼叫 tochar, 則31/14沒有輸出任何字元.31/17輸出3行空白, 35/20輸出兩顆心號
: (ASCII數值為3)
: 似乎找不到任何規則可debug?
: 我在懷疑是否有暫存器的數值沒清乾淨歸零,但我用的指令是mov不是add阿?
: 或者沒有初始化暫存器為0?但好像也沒效果...
: 麻煩幫我看看哪裡錯了,感謝!感謝!
: 程式碼:
: mov dl,20
: mov ax,dx
: mov cl,14
: div cl
: mov dl,ah ;6
: call tochar
: call show
: mov dl,al ;1
: call tochar
: call show
: exit: mov ah,4ch
: int 21h
: ;--------------------------
: tochar proc near
: mov bl,48
: add dl,bl
: ret
: tochar endp
: show proc near
: mov ah,2
: int 21h
: ret
: show endp
.8086
.model small
.stack 100h
.data
.code
.startup
mov al,20
mov ch,al
mov cl,14
div cl
mov ch,al ;商
mov cl,ah ;餘
add ch,30h
add cl,30h
mov ah,02h
mov dl,ch
int 21h
mov ah,02h
mov dl,cl
int 21h
.exit
end
我打這樣…可執行
--
十六年後,再此重會。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.240.131.164
※ 編輯: jason12308 來自: 111.240.131.164 (11/04 21:28)
推
11/04 21:34, , 1F
11/04 21:34, 1F
→
11/04 21:38, , 2F
11/04 21:38, 2F
→
11/04 21:45, , 3F
11/04 21:45, 3F
→
11/04 22:10, , 4F
11/04 22:10, 4F
討論串 (同標題文章)
ASM 近期熱門文章
PTT數位生活區 即時熱門文章