20155336 2017-2018 1 《信息安全系统设计基础》2017-10-25课堂实践
2017-12-05 18:58
519 查看
20155336 2017-2018 1 《信息安全系统设计基础》2017-10-25课堂实践
第三题
思路
:首先是先写一个关于自己学号的代码,然后根据之前所学的GDB进行调试。编写一个程序 “week0603学号.c",运行下面代码:
short int v = -学号后四位
unsigned short uv = (unsigned short) v
printf("v = %d, uv = %u\n ", v, uv);
在第三行设置断点用gdb调试,用p /x v; p /x uv 查看变量的值,提交调试结果截图,要全屏,要包含自己的学号信息
代码
#include<stdio> main() { short int v = -36 unsigned short uv = (unsigned short) v; printf("v = %d, uv = %u\n ", v, uv); }
感悟:一开始定义的数是有符号数,二进制表示下,最高位的“1”不计入数值;将其强制转换为无符号数之后,二进制表示其实并没有发生改变,因此使用“p/x”查看的时候,v和uv的结果是一样的。
第四题
思路
新建一个.c用自己学号的后两位写c语言代码gcc -S -o main.s main.s
接着运行ls查看你所书写的内容
最后运行vim main.s即可。
通过输入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; }
删除汇编代码中 . 开关的代码,提交f 函数的汇编代码截图,图中用矩形标出函数栈帧的形成和销毁的代码
代码
int g(int x){ return x+3; } int f(int x){ int i = 36; return g(x)+i; } int main(void){ return f(8)+1; }
第五题
使用gdb跟踪汇编代码,在纸上画出f中每一条语句引起的函数变化值和栈的变化。提交信息。参考http://www.cnblogs.com/lxm20145215----/p/5982554.html
感悟
自己每次对题目的理解不到位,课上觉得题目都特别的难,但是课下之后再看,经过自己的认真思考,然后请教别人,都会觉得,原来就是这样啊。可能自己真的对于代码这方面不感冒。希望下次能够在课堂上就能够完成老师布置的任务。.课本2.96
遵循位级浮点编码规则,实现具有如下原型的函数/*
Compute (int) f.
If conversion causes overflow or f is NaN, return 0x80000000
/int float_f2i(flaot_bits f);
对于浮点数f,这个函数计算(int)f。如果f是NaN,你的函数应该向零舍入。如果f不能用整数表示(例如,超出表示范围,或者它是一个NaN),那么函数应该返回0x80000000 。
测试你的函数,对参数f可以取的所有2的32次方个1值求值,将结果与你使用机器的浮点运算得到的结果相比较。
课本2.97
遵循位级浮点编码规则,实现具有如下原型的函数:/* Compute (float) i */
float_bite float_i2f(int i);
对于函数i ,这个函数计算(float)i的位级表示。测试你的函数,对参数f可以取的所有2的32次方个值求值,将结果与你使用机器的浮点运算得到的2结果相比较。
相关文章推荐
- 20155336 2017-2018 1 《信息安全系统设计基础》2017-9-27课堂实践
- 2017-2018-1 20155321 《信息安全系统设计基础》课堂实践——实现mypwd
- 2017-2018-1 20155317 《信息安全系统设计基础》课堂实践——实现mypwd
- 2017-2018-1 20155220 《信息安全系统设计基础》课下实践——实现mypwd
- 2017-2018-1 20155308 《信息安全系统设计基础》课堂第六章测试(补做)
- 2017-2018-1 20155336 《信息安全系统设计基础》加分作业:实现mypwd
- 2017-2018-1 20155231 《信息安全系统设计基础》 第二周课堂测试
- 2017-2018-1 20155336 《信息安全系统设计基础》实验五 通信协议设计
- 2017-2018-1 20155331+20155336《信息安全系统设计基础》实验一报告
- 20155229 2017-2018-1 《信息安全系统设计基础》18.1.3课上实践重做
- 2017-2018-1 20155333 《信息安全系统设计基础》课堂测试
- 2017-2018-1 20155338 《信息安全系统设计基础》 第二周课堂测试
- 2017-2018-1 《信息安全系统设计基础》 20155322 十六周 课上实践
- 2017-2018-1 20155215 《信息安全系统设计基础》 第4周课上实践
- 2017-2018-1 20155327 《信息安全系统设计基础》课堂测试&课下作业
- 2017-2018-1 20155331+20155336《信息安全系统设计基础》实验一报告
- 2017-2018-1 20155239学号 《信息安全系统设计基础》课堂测试补做+第四周学习总结
- 2017-2018-1 2015335 《信息安全系统设计基础》 第4周课上实践 (新补的,但不完整)
- 2017-2018-1 20155226 《信息安全系统设计基础》课下实践——实现mypwd
- 2017-2018-1 20155309 《信息安全系统设计基础》实验五 通信协议设计