assembly - 堆栈指针减去 8 位还是 8 个字节?

标签 assembly x86

我对 asm 很陌生,

这样做:

sub $0x8, %esp

从堆栈指针中减去 8 位或 8 个字节?

最佳答案

假设它是 gnu 工具链上的 IA-32 程序集,具有 at&t 语法, 它从堆栈指针中减去 8 个字节...

这意味着您的堆栈向下增长 8 字节,从而允许您在那里存储更多 8 字节的数据。

另请参阅H2CO3's comment 。它有一个正确的观点,即您不减去位或字节,而只是减去一个数字,并且当指针指向一个字节时,它指向下面的 8 个字节。

关于assembly - 堆栈指针减去 8 位还是 8 个字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19636279/

相关文章:

c++ - 如何在没有 float / double 的情况下生成均匀分布和高斯分布的伪随机数?

iis - 32 位 Web 应用程序的 Framework64 文件夹中的 Aspnet_regiis

程序集调用堆栈 - 术语问题

c++ - 为什么单独循环中的元素加法比组合循环中的元素加法快得多?

Linux nasm 程序集将字符附加到字符串

c - 修改并汇编.s文件

macos - 链接器在链接时是否生成绝对虚拟地址

从结构调用函数(C/汇编)

assembly - NASM在组装时将JNZ更改为JNE?为什么?

linux - 在 Linux 中编译/运行汇编程序?