2017-2018-1 20179215 课堂测试

第三周测试总结分析

本周课堂测试重点是为了让大家学习c语言中嵌套汇编程序的方法。本次测试中要求将之前编写的sum文件进行反汇编,观察其反汇编的结果,并将其在main.c中通过汇编调用sum。

 1.首先展示下我的sum函数、main函数及测试结果,如下图:


 2.观察汇编代码分析

 (1)通过objdump -d sum.o指令反汇编sum.o,并观察其反汇编之后的汇编语句,如下图所示:

 这些语句是不能直接当作汇编语句嵌套进c语言的,因为在尝试之后发现c语言中嵌套的汇编语句无法识别rbp,edi等寄存器,因此一定要理解语句当中的意思并且用嵌套语言写出来。

 (2)分析:进行当前ebp压栈操作,保留现场信息后,将立即数分别放入rbp栈的不同地址空间之中,然后通过eax寄存器将两个数相加放在了其中一个数的地址空间内,最后又将结果传入了eax寄存器中。

 (3)代码及运行结果展示:


原文地址:https://www.cnblogs.com/yl-930/p/7821895.html