汇编语言问题

时间:2014.05.02 发布人:xkxkm

汇编语言问题

已解决问题

谷歌xkxkm用户在2014.05.02提交了关于“新版5元纸汇编语言问题”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-02-12T16:13:27。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,你就是当代的活雷锋,太感谢了 !

希望以下的回答,能够帮助你。

第1个回答

用户名:dgq666  

c的main函数中的局部变量ab没有被赋初值呢
对应的汇编代码中intab用的是同一个内存空间,即pushecx这条指令开辟的那一个4械事宗字节栈空间
moveax,[esp];eax=a

movecx,[esp];ecx=b

leaedx,[ecx+eax+78];edx=ecx+edx+78=a+b+78
lea指令经常用来做多个寄存器值的加减,比addsub精简,
leaedx,dwordptr[ecx+eax+78]取dword内存单元[ecx+eax+78]的地址,也即ecx值+eax值+78
到edx,执行完后edx=ecx值+eax值+78,用add来做相同的计算:
movedx,ecx
adde往鱼dx,eax
added学所临兰让蛋倒州常x,78显得麻烦多了

“还有这问答个函数的局部变量本来就都放到寄存器里了,00410001处为什么还要为局部变量印院害那爱乎脸开辟空间”
这个问题呢是由编译器的逻辑决定的,我的看法呢main函数中的inta,卷出艺植室高控菜大b;是函数的局部变量,主样对应的是栈内存,分规配栈内存空间给它们是很正常的。

最后,我好奇的问一下,图片截的是某本书的内容吧?是什么书啊?