2017-2018 1 20155331《信息安全系统设计基础》第六周课堂实践

2017-2018 1 20155331《信息安全系统设计基础》第六周课堂实践

第六周课上测试-1-ch02

1.参考附图代码,编写一个程序 “week0601学号.c",判断一下你的电脑是大端还是小端。

  1. 提交运行结果”学号XXXX的笔记本电脑是X端“的运行截图,要全屏,包含自己的学号信息
    1071515-20171029230556320-62361557.jpg

第六周课上测试-2-ch02

调用附图代码,编写一个程序 “week0602学号.c",用show_int(), show_float()打印一下你的4位学号,参考教材P33打印出匹配的位序列。
1071515-20171029230642117-1567435720.jpg

第六周课上测试-3-ch02

  1. 编写一个程序 “week0603学号.c",运行下面代码:
    1 short int v = -学号后四位
    2 unsigned short uv = (unsigned short) v
    3 printf("v = %d, uv = %u\n ", v, uv);

  2. 在第三行设置断点用gdb调试,用p /x v; p /x uv 查看变量的值,提交调试结果截图。
    1071515-20171029230655164-826821147.jpg

第六周课上测试-4-ch03

1 通过输入gcc -S -o main.s main.c 将下面c程序”week0603学号.c“编译成汇编代码

int g(int x){

return x+3;

}

int f(int x){

int i = 学号后两位;

return g(x)+i;

}

int main(void){

return f(8)+1;

}

  1. 删除汇编代码中 . 开关的代码,提交f 函数的汇编代码截图,图中用矩形标出函数栈帧的形成和销毁的代码

第六周课上测试-5-ch03

1 通过输入gcc -S -o main.s main.c 将下面c程序”week0603学号.c“编译成汇编代码

int g(int x){

return x+3;

}

int f(int x){

int i = 学号后两位;

return g(x)+i;

}

int main(void){

return f(8)+1;

}

参考http://www.cnblogs.com/lxm20145215----/p/5982554.html,使用gdb跟踪汇编代码,在纸上画出f中每一条语句引起的eip(rip),ebp(rbp),esp(rsb),eax(rax)的值和栈的变化情况。
1071515-20171029232049180-1776636879.jpg

转载于:https://www.cnblogs.com/dd1174751354/p/7751886.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值