计算机系统实验三:程序的机器级表示

参考教材:计算机系统基础 第二版 袁春风 机械工业出版社
参考慕课:计算机系统基础(四):编程与调试实践 https://www.icourse163.org/learn/NJU-1449521162

计算机系统实验导航

实验一:环境安装 https://blog.youkuaiyun.com/weixin_46291251/article/details/122477054

实验二:数据的存储与运算 https://blog.youkuaiyun.com/weixin_46291251/article/details/122478255

实验三:程序的机器级表示 https://blog.youkuaiyun.com/weixin_46291251/article/details/122478979

实验四:二进制程序逆向工程 https://blog.youkuaiyun.com/weixin_46291251/article/details/122479554

实验五:缓冲区溢出攻击 https://blog.youkuaiyun.com/weixin_46291251/article/details/122479798

实验六:程序的链接 https://blog.youkuaiyun.com/weixin_46291251/article/details/122480049

实验源码: xxx

准备

实验内容:
1 C 语句与机器级指令的对应关系,IA-32 基本指令的执行;
2 C 语言程序中过程调用的执行过程和栈帧结构;
3 缓冲区溢出攻击。
实验目标:
1 掌握程序的机器级表示相关概念;
2 理解 C 语言程序对应机器级指令的执行和过程调用实现;
3 掌握程序的基本调试方法和相关实验工具的运用。
实验任务:
1 学习 MOOC 内容
https://www.icourse163.org/learn/NJU-1449521162

  • 第四周 程序的机器级表示
    第 4 讲 控制转移指令
    第 5 讲 栈和过程调用
    第 6 讲 缓冲区溢出

2 完成作业

题目一:比较按值传递和按地址传递

对下列程序代码进行反汇编,指出过程调用中相关语句,比较按值传递参数和按地址传递参数,画出过程调用中栈帧结构图,并给出解释说明。

程序代码和注释说明
Swap.c

1.#include <stdio.h>
2.int swap(int x,int y)
3.{
   
4.    int t=x;
5.    x=y;
6.    y=t;
7.}
8.void main()
9.{
   
10.    int a=15, b=22;
11.    swap(a, b);
12.    printf("a=%d\tb=%d\n", a, b);
13.}

Swap2.c

1.#include <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cheney822

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值