作者uorol (′‧ω‧‵)
看板ASM
标题Re: [讨论] 关於除法DIV的一些问题
时间Tue Mar 24 18:33:14 2015
内文吃掉
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 118.166.218.13
: → buganini:被除数是EDX:EAX 你是不是写成EBX:EAX了? 01/09 02:2
: → buganini:或着是EDX没清掉? 01/09 02:2
: → buganini:应该是EDX没清.. 01/09 02:3
: → tna612:感谢楼上的解答>< 我在DIV之前加了一个"MOV EDX,0"之後 01/09 13:4
: → tna612:程式就能顺利执行了^ ^ 谢谢~ 01/09 13:4
小弟最近在追的code里面有用到inline assembly in C
所以开始学习ASM要怎麽看
中间遇到了buganini大大所说的EDX没被清掉的问题
我手动去置换掉 EDX的值, 发现EAX跟EDX的值都会跑掉
EDX 看起来是会加上原本 EDX 的值,
例如我取 123 % 5
正常的case:
EAX = 20, EDX = 3.
设定EDX = 0x1, 会得到:
EAX = 858993483
EDX = 4
设定EDX = 0x2, 会得到:
EAX = 1717986943
EDX = 0
请问中间运作的原理要到哪边查询才能知道呢 @@"
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 210.61.122.2
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/ASM/M.1427193197.A.0BA.html
※ 编辑: uorol (210.61.122.2), 03/24/2015 18:33:39
※ 编辑: uorol (210.61.122.2), 03/24/2015 18:34:36
1F:推 suhorng: 查 Intel IA32 instruction manual... XD 03/25 17:29
2F:→ suhorng: 实际上 EDX:EAX 是 64-bit 被除数 算完有余跟商 03/25 17:30
3F:→ mshockwave: 推一楼 有时候intel写得比课本清楚XDD 03/30 07:46