繁体   English   中英

att组装操作[sub(%eax),edx]实际做什么?

[英]What does the att assembly operation [sub (%eax), edx] actually do?

我正在使用gdb反汇编c中的程序,而at&t程序集显示以下内容。

sub    (%eax),%edx
mov    %edx,(%eax)
add    $0x4,%eax

我不确定该减法如何在这里工作。 按照我的解释,%edx中的值将从其中减去%eax的内存位置。 又名%edx =%edx-(%eax)。 发生这种情况后,在打印寄存器值时得到的值很奇怪,我不确定它到底在做什么。 朝正确方向的任何观点将不胜感激。

eax被用作指向4字节整数(可以无符号)的指针。 c等效项为:

edx -= *eax;
*eax = edx;
eax++;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM