2017-2018-1 20155336 《信息安全系统设计基础》第八周课堂测试

1.求命令行传入整数参数的和

  • 参考 http://www.cnblogs.com/rocedu/p/6766748.html#SECCLA 在Linux下完成“求命令行传入整数参数的和”

  • 测试代码传入自己的8位学号

  • 上方提交代码

  • 附件提交运行测试截图

解答:

  • 编写代码

      #include <stdio.h>void main(int argc,char** argv){int i,a,sum=0;for(i=1;i<argc;i++){a=atoi(argv[i]);sum = sum +a;}printf("%d\n",sum);}

代码调试中的问题及解决方法

  • 问题就是粗心,没有注意到是二维数组,然后怎么编译都没用通过,浪费了很多时间。
  • 解决方法就是./a.out 的后面的学号写成两个数字就可以啦!

运行结果

2.汇编

  • 把第一个练习中的代码在X86-64(Ubuntu)中反汇编,给出汇编代码和机器码的截图

  • 把X86-64汇编翻译成Y86-64汇编,并给出相应机器码的截图(使用附件中的Y86-64模拟器)

代码调试中的问题及解决方法

  • 问题一: 在安装Y86的时候出现了这个问题

  • 解决:通过输入命令sudo rm /var/cache/apt/archives/locksudo rm /var/lib/dpkg/lock,以及sudo rm /var/lib/dpkg/lock之后成功解除占用。

运行结果

  • X86-64汇编代码

  • X86-64机器码

3.实现daytime

  • 基于socket 使用教材的csapp.h csapp.c,实现daytime(13)服务器(端口我们使用13+后三位学号)和客户端
  • 服务器响应消息格式是

      客户端IP:XXXX服务器实现者学号:XXXXXXXX当前时间: XX:XX:XX
  • 运行结果

  • 问题:是由于csapp.c 未被导入导致的。将cssap.c和csapp.h导入到了include文件夹和lib文件夹下。将csapp.c导入客户端和服务器的代码所在的文件夹下,将csapp.c一起编译就可以了。

课下测试1

  • 1 完成家庭作业4.47,4.48,4.49
  • 2 相应代码反汇编成X86-64汇编
  • 3 把上述X86-64汇编翻译成Y86汇编,并给出相应机器码

4.47

解题思路:

  • 将题目所给的数组元素代码转换成指针索引的代码

具体方法为:将指针赋给数组的头地址,然后按位移动指代

    C格式:int *data=a;*(data+i);
  • 将所得的C程序汇编一下获得相应的汇编代码

  • gcc -S .c -o

  • 去掉相应的“.”

  • 将所得的Y86代码与用机器产生的反汇编代码比对,验证准确性

解题过程:

对比及修改


注意事项

  • 对应的指针代码要在能运行与检测的基础上构建,在调用相应的冒泡程序时,因先利用GCC -G后调试一下。不然的话在没有可执行的程序做保证的话会由于书写错误或者指代错误等错误因素导致数据意外存储而没有报错,这样无法得到汇编及正确的代码
  • 在可执行的C代码汇编版本中:movl指令对应的Y86指令有三个,要注意区分三者后带的参数类型
  • Y86没有相应的乘除法操作,要转换成加减或者与,抑或运算完成,为方便起见,规定的数据不讨论符号,对于乘除法操作,以最优解替换

转载于:https://www.cnblogs.com/hxl681207/p/7988824.html

2017-2018-1 20155336 《信息安全系统设计基础》第八周课堂测试相关推荐

  1. # 20155337 2017-2018-1 《信息安全系统设计基础》第二周课堂实践+myod

    20155337 2017-2018-1 <信息安全系统设计基础>第二周课堂实践+myod 因为在课上已经提交了四个实验,还欠缺最后一个实验,反省一下自己还是操作不熟练,平时在课下应该多多 ...

  2. 2017-2018-1 20155230 《信息安全系统设计基础》第二周课堂实验

    因第二周电脑没电没能交上作业,所以写博客补上. 1-vi测试 每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号 用Vi输入图中代码,并用gcc编译通过 在Vi中使用K查找printf的帮助 ...

  3. 信息安全系统设计基础第八周学习总结

    第十章 系统级I/O 学习目标: 1.掌握系统编程和系统调用的概念 2.掌握系统编程错误处理的方式 3.掌握Unix/Linux系统级I/O:open close read write seek st ...

  4. 信息安全系统设计基础第八周总结

    系统级I/O 10.1 Unix I/O (1)一个Unix文件就是一个m个字节的序列:B0,B1,B2,B3...Bk...Bm-1. (2)所有的I/O设备,如网络.磁盘盒终端,都被模型化为文件, ...

  5. # 2017-2018-1 20155224 《信息安全系统设计基础》第九周学习总结

    2017-2018-1 20155224 <信息安全系统设计基础>第九周学习总结 教材学习内容总结 存储器 随机访问存储器(RAM): 静态RAM:用来作为高速缓存存储器,每个位存储在一个 ...

  6. 2018-2019-1 20165206 《信息安全系统设计基础》第九周学习总结

    - 2018-2019-1 20165206 <信息安全系统设计基础>第九周学习总结 - 教材学习内容总结 计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组.每个字节都有一 ...

  7. 20135203齐岳 信息安全系统设计基础第十三周学习总结

    20135203齐岳 信息安全系统设计基础第十三周学习总结 学习计时:8/9共小时(计划/实际) 读书:4/5 代码:1/1 作业:1/1 博客:2/2 第十二章 并发编程 一.学习目标 掌握三种并发 ...

  8. # 20155337 2017-2018-1 《信息安全系统设计基础》第一周学习总结

    20155337 2017-2018-1 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 1.1信息就是位+上下文 hello.c程序是以字节序列的方式储存在文件中的.每个字节都 ...

  9. 20135219洪韶武——信息安全系统设计基础第五周学习总结

    信息安全系统设计基础第五周学习总结 学习任务:教材第四章[处理器体系结构] 学习时间:10小时  一.教材知识点梳理[4.1-4.3] 1.ISA[指令集体系结构] 一个处理器支持的指令和指令的字节级 ...

最新文章

  1. 网站优化有几个优化因素值得引起注意
  2. css3属性文字换行,CSS3让文本自动换行——word-break属性
  3. 未备案域名临时跳过备案提示_做好了网页,有域名和服务器,还要怎么搭建网站?...
  4. 公有云与私有云的差别(转)
  5. poj3190 Stall Reservations(贪心+STL)
  6. 【JavsScript】作用域链
  7. 拓端tecdat|数据观察“双十一”网购新常态
  8. WP7模拟器使用技巧
  9. PSpice 使用中的若干问题
  10. 当成人网站遇上机器学习
  11. 更改csv默认分隔符
  12. polkit启动失败_CentOS Linux 7.4中polkit服务启动失败
  13. warning: LF will be replaced by CRLF in ****. The file will have its original line endings in y
  14. 2018面试题目总结1
  15. 运行docker run显示is already in use by container
  16. 数据拯救单身狗!助攻两性相处的6个小数据
  17. flutter bloc 实例
  18. Openfire jsjac构建webIM
  19. unity_NGUI系统学习(十)_PlaySound添加声音_添加打字机效果TypewriterEffect
  20. 突发:深度学习之父Hinton为了警告AI的风险,不惜从谷歌离职!

热门文章

  1. 懂AI值百万年薪?你不知道的开发者薪资榜单大盘点
  2. mysql测试表格的年龄的语句是_MySQL查询语句练习题
  3. 游戏玩家的留存率统计SQL实现
  4. MySQL触发器介绍
  5. RunTime类,后台快速打开浏览器
  6. 11G延迟密码验证的取消
  7. ORACLE的analyze及生成方式
  8. 网络安全第一讲 计算机网络安全概述
  9. Mysql的两种“排名第几且有可能为空的记录”写法(力扣176)
  10. 游历校园 [COGS 614] [欧拉图]