0

2个问题(同一主题):

一些例子 :

假设我在汇编中有类似的东西(GCC编译):

movl 12 -4(%rbp)

当我将地址-4(%rbp)提供给另一条指令时,系统如何知道在哪里停止?因为-4(%rbp)是起始地址,但我们没有任何关于停止的信息,所以它可能是2x2字节而不是 4 字节。

我的第二个问题有点相同,但考虑到我使用的是sbrk ,所以使用了 heap

当我打电话给sbrk(0)它时,它会给出堆中中断的地址。
假设我正在使用sbrk(20),然后sbrk(40)将移动中断,现在我正在尝试访问分配的空间sbrk(20),与程序集相同,系统如何知道何时停止而不溢出sbrk(40)空间?

也许这有点令人困惑,如果您希望我发展更多,请告诉我。

4

1 回答 1

3

movl 的 'l' 表示 long(32 位整数,64 位浮点数)。最后一个字母定义了大小(在气体语法中)。维基:https ://en.wikibooks.org/wiki/X86_Assembly/GAS_Syntax

于 2017-10-23T11:44:37.400 回答