[討論] 關於除法DIV的一些問題
小弟是新手,最近在寫一個小程式,但是compile過之後都因為有錯誤而中斷
(已經在執行了),問題是出在除法這一行(DIV),程式執行到這行之後就過不去了~~
目前對DIV的觀念是 得到的商數存在EAX,而餘數則是在EDX,
這個想法是對的嗎??
還麻煩各位大大解惑,感激不盡 > <
.data
V1 DWORD ?
V2 DWORD ?
TMP DWORD ?
Str1 Byte "Input the first value",0
Str2 Byte "Input the second value",0
Str3 Byte " ",0
.code
main PROC
MOV EDX,OFFSET str1
CALL WriteString
CALL ReadDec
MOV V1,eax
MOV EDX,OFFSET str2
CALL WriteString
CALL ReadDec
MOV V2,EAX
PUSH V1
PUSH V2
CALL gcdrecurcive
CALL WriteDec
EXIT
main ENDP
gcdrecurcive PROC
PUSH EBP
MOV EBP,ESP
SUB ESP,4
MOV EBX,[EBP+8]
MOV EAX,[EBP+12]
DIV EBX // <--------------這行之後就無法執行了
MOV EAX,EBX
MOV EBX,EDX
CMP EBX,0
JE L2
JMP L1
L1:PUSH EAX
PUSH EBX
CALL gcdrecurcive
L2:MOV ESP,EBP
POP EBP
RET 8
gcdrecurcive ENDP
END main
P.S.程式目的是取最大公因數,而我的做法則是取餘數來找。
副程式是用stack frame的做法。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.166.218.13
→
01/09 02:25, , 1F
01/09 02:25, 1F
→
01/09 02:26, , 2F
01/09 02:26, 2F
→
01/09 02:34, , 3F
01/09 02:34, 3F
→
01/09 13:42, , 4F
01/09 13:42, 4F
→
01/09 13:43, , 5F
01/09 13:43, 5F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 3 篇):
ASM 近期熱門文章
PTT數位生活區 即時熱門文章