[26/02/2017]
使用vi hello.s新建hello.s文件【1,3】,输入
#hello.s
.data # 数据段声明
msg : .string "Hello, world!\\n" # 要输出的字符串
len = . - msg # 字串长度
.text # 代码段声明
.global _start # 指定入口函数
_start: # 在屏幕上显示一个字符串
movl $len, %edx # 参数三:字符串长度
movl $msg, %ecx # 参数二:要显示的字符串
movl $1, %ebx # 参数一:文件描述符(stdout)
movl $4, %eax # 系统调用号(sys_write)
int $0x80 # 调用内核功能
# 退出程序
movl $0,%ebx # 参数一:退出代码
movl $1,%eax # 系统调用号(sys_exit)
int $0x80 # 调用内核功能
copy
生成可执行文件
执行文件【2】
使用vi main.c新建main.c文件【4】, 输入
int g(int x)
{
return x + 3;
}
int f(int x)
{
return g(x);
}
int main(void)
{
return f(8) + 1;
}
copy
转换为汇编
gcc –S –o main.s main.c -m32
查看生成的main.s
学习时间 189分钟
操作时间 42分钟
按键次数 607次
实验次数 3次
报告字数 1961字
是否完成 完成