20155325 2017-2018-1 《信息安全系统设计基础》第七周学习总结

教材学习内容总结

  • x86-64的movq指令:irmovq,rrmovq,mrmovq,rmmovq。分别显式地指明源和目的的格式。i-立即数,r-寄存器,m-内存。
  • 操作指令(详见P246)

1.四个整数操作指令

2.7个跳转指令

3.6个条件传送指令

4.ret,call,pushq,popq,halt

  • 指令编码
    第一个字节:高四位-代码,低四位-功能(只有在一组相关指令共用一个代码时才有用)

  • Y86-64 异常

State值 名字 含义
1 ACK 正常操作
2 HLT 遇到器执行halt指令
3 ADR 遇到非法地址
4 INS 遇到非法指令

教材学习中的问题和解决过程

  • 问题1:P248习题4.1如何手工对指令编码
  • 问题1解决方案:看书总结出一段套路:

eg. irmovq $15,%rbx

1.看指令 ,在P246图4-2和P247 图4-3找到对应的格式
30 F rB V

2.在P247中间的表找寄存器rB V位置对应的数字

3.如果有立即数,比如$15。此时都是十进制,转化为十六进制0x00 00 00 00 00 00 00 0f(在Y86-64中常数总8字节。,),然后两位一组,反向顺序0f 00 00 00 00 00 00 00。

结果:30f30f00000000000000

这一条指令地址0x100,两个数算一个字节,所以这一条指令占10个字节,则下一条指令的地址0x10a

  • 问题2:P251Y86-64 code中strat++;的汇编是
irmovq $8,%r8;
……
addq %r8,%rdi;

不理解为什么要+8

  • 问题2解决方案:经过大佬佳的指点,在P252里,传到这个函数里的是个数组,所以start++本身的意思是指向数组中的下一个数字,又因为start是个指针本身是个地址,所以+8 。

代码调试中的问题和解决过程

  • 问题1:在做实验二-4国密算法运行失败

  • 问题1解决方案:gcc sm4test.c sm4.c

代码托管

结对

  • 本周结对学习情况
    • 20155328
    • 结对照片
    • 结对学习内容
      • 第四章

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 16篇 400小时
第1周 9/9 1/1 19/19 熟练下载安装技能,锻炼解决问题能力
第2周 380/389 2/3 26/45 1、7章
第3,4周 1270/1659 3/6 42/87 2、10章
第5周 20/1679 2/8 30/117 实验一&3章
第6周 223/1902 1/9 20/137 课堂测试、课下作业、第八章
第7周 3020/4770 2/11 20/157 实验二、第四章

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:20小时

  • 实际学习时间:20小时

  • 改进情况:

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料

posted @ 2017-11-05 17:33  难能可贵成功犯傻  阅读(176)  评论(0编辑  收藏  举报