2个问题(同一主题):
一些例子 :
假设我在汇编中有类似的东西(GCC编译):
movl 12 -4(%rbp)
当我将地址-4(%rbp)提供给另一条指令时,系统如何知道在哪里停止?因为-4(%rbp)是起始地址,但我们没有任何关于停止的信息,所以它可能是2x2字节而不是 4 字节。
我的第二个问题有点相同,但考虑到我使用的是sbrk ,所以使用了 heap:
当我打电话给sbrk(0)
它时,它会给出堆中中断的地址。
假设我正在使用sbrk(20)
,然后sbrk(40)
将移动中断,现在我正在尝试访问分配的空间sbrk(20)
,与程序集相同,系统如何知道何时停止而不溢出sbrk(40)
空间?
也许这有点令人困惑,如果您希望我发展更多,请告诉我。