2 xuewang1 XueWang1 于 2016.09.14 00:43 提问

汇编初学。求问很简单的汇编问题

C语言的f=f * i;
f 和 i 都是 int 型变量。
现在算得f * i
将结果高位放在寄存器EDX中,低位在EAX中
那么该如何将寄存器的内容赋值给 变量 f 呢
先在此谢谢了

2个回答

caozhy
caozhy   Ds   Rxr 2016.09.14 00:56
已采纳

因为int是整数,所以如果结果超过32位(有符号的话是31位),也就是edx>0,那么出现上溢。也就是结果没办法仅仅用一个整数表示。
如果edx=0,那么,直接mov ptr [f的地址], eax

caozhy
caozhy 回复XueWang1: 你是用嵌入式汇编么,哪里来的变量f
大约一年之前 回复
XueWang1
XueWang1 对哦,非常感谢,没发现溢出后已经无法存放在f中了。那么可以问下如何获取 f 的地址吗?可不可以直接写mov f,eax
大约一年之前 回复
XueWang1
XueWang1   2016.09.14 01:09

可以问下如何获取 f 的地址吗?可不可以直接写mov f,eax

Csdn user default icon
上传中...
上传图片
插入图片