![]() |
1
32
让我们按顺序回答!
|
![]() |
2
16
我想补充一下。计算机上的程序通常分为三个部分,尽管还有其他部分。 代码段-.code,.text: http://en.wikipedia.org/wiki/Code_segment
数据段-。数据: http://en.wikipedia.org/wiki/Data_segment
BSS: http://en.wikipedia.org/wiki/.bss
寄存器是CPU存储数据或内存地址的设施,如其他人所述。操作是在寄存器上执行的,例如
实际上没有与C.abi进行一般性的交互。abi指定了这是如何发生的;例如,在x86(Unix)上,您将发现一个方法的参数被推到堆栈上,而在Unix上的x86-64中,前几个参数将定位在寄存器中。两个ABI都希望函数的结果存储在EAX/RAX寄存器中。 下面是一个32位的添加例程,它为Windows和Linux进行组装。
在这里,你可以明白我的意思。“返回”值在EAX中找到。相比之下,X64版本如下:
有些文档定义了这类事情。以下是Unix X64 ABI: http://www.x86-64.org/documentation/abi-0.99.pdf . 我相信你可能会找到任何处理器,平台等你需要的ABI。
如何操作装配中的数组?指针算术。给定的基地址位于
什么是“堆”?根据维基百科的说法,它是为动态内存分配而保留的内存区域。在调用calloc、malloc或内存分配系统调用之前,您不会在程序集中看到它,但它确实存在。 对这篇文章感到抱歉。 |