c语言和汇编语言参数的传递
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Main()
{
Print(“%d”,abc(3,5);
}
;汇编语言
.model small
.code
Abc proc
Push bp
Mov bp,sp
Mov ax,[bp+4];arg1
Mov cx,[bp+6] ;arg2
Shl ax,cl
Pop bp
Ret
Abc endp
百度文库-让每个人平等地提升自我三,64位处理器:
C语言和汇编语言参数的传递(以整数为例)
一先了解一下堆栈
堆栈是在存储器开辟的一段区域。这段区域一端固定,一端活动。固定的一端在高地址称为栈底,活动的一端称为栈顶。栈顶随着数据的存取而浮动。取出数据,栈顶向高地址浮动,存取数据相反。
二,32位处理器堆栈的传递
举例:
/*c*/
Extern int abc(int,int)
64位处理器的通用寄存器如下:
Rax,rbx,rcx,rdx,rsi,rdi,rsp,rbp
R8,r9…Βιβλιοθήκη Baidu………………..r15
对于整数传递到
Rcx,参数1,rdx,参数2,r8,r9
{
Print(“%d”,abc(3,5);
}
;汇编语言
.model small
.code
Abc proc
Push bp
Mov bp,sp
Mov ax,[bp+4];arg1
Mov cx,[bp+6] ;arg2
Shl ax,cl
Pop bp
Ret
Abc endp
百度文库-让每个人平等地提升自我三,64位处理器:
C语言和汇编语言参数的传递(以整数为例)
一先了解一下堆栈
堆栈是在存储器开辟的一段区域。这段区域一端固定,一端活动。固定的一端在高地址称为栈底,活动的一端称为栈顶。栈顶随着数据的存取而浮动。取出数据,栈顶向高地址浮动,存取数据相反。
二,32位处理器堆栈的传递
举例:
/*c*/
Extern int abc(int,int)
64位处理器的通用寄存器如下:
Rax,rbx,rcx,rdx,rsi,rdi,rsp,rbp
R8,r9…Βιβλιοθήκη Baidu………………..r15
对于整数传递到
Rcx,参数1,rdx,参数2,r8,r9