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

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

教材学习内容总结

第四章 处理器体系结构

  • 8个程序寄存器:%eax,%ecx,%edx,%ebx,%esi,%edi,%esp,%ebp.他们都可以存储一个字;
  • 8个程序寄存器:%eax,%ecx,%edx,%ebx,%esi,%edi,%esp,%ebp.他们都可以存储一个字;
  • Stat:状态码,程序状态的最后一个部分,表明程序执行的总体状态,指示是正常运行还是出现了某种异常
  • PC(程序计数器):存放当前正在执行指令的地址。
  • 在movl指令中,指令名字的第一个字母就表明了源类型。指令第二个字母指明了目的类型。立即数(i)、寄存器(r)、存储器(m)。
  • 时钟寄存器(简称寄存器)存储单个位或字,时钟信号控制寄存器加载输入值
  • 随机访问存储器(简称存储器)存储多个字,用地址来选择该读或该写哪个字
  • SEQ阶段的实现
  1. 取指阶段:取指阶段包括指令存储器硬件单元。
  2. 译码和写回阶段:都要访问寄存器文件。
  3. 执行阶段:执行阶段包括算术/逻辑单元(ALU)第一步每条指令的ALU计算,执行阶段还包括条件码寄存器。
  4. 访存阶段:访存阶段的任务是读或者写程序数据,两个控制块产生存储器地址和存储器输入数据的值,另外两个块产生控制信号表明应该执行读操作还是写操作。当执行读操作时数据存储器产生值valM。
  5. 更新PC阶段:SEQ中最后一个阶段会产生程序计数器的新值,依据指令的类型和是否要选择分支,新的PC可能是valC、valM、valP

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

  • 问题1:如何确定优先级的问题?
  • 问题1解决方案:对于指令pop%esp,E,M两个写端口会用到同一个地址,但是写入的数据又不一样,所以必须对两个端口设立一个优先级。
  • 问题2:Y86代码和IA32代码的区别。
  • 问题2解决方案Y86代码与IA32代码的主要区别在于,它可能需要多条指令来执行一条IA32指令所完成的功能。

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

  • 问题1:实验的国密算法编译过程有问题
  • 解决问题:代码是网上找的,没有修改能力。
  • 问题 2:arm-linux-gcc和arm-elf-gcc有什么区别?
  • 解决问题:在第2条编译步骤1到6相同,使用的库不同。在arm-linux-gcc里是调用linux内核的syscall。
    而在arm-elf-gcc里需要将完整的printf函数编译进你的程序里。所以arm-elf-gcc可以编译linux内核,生成linux操作系统,然后用arm-linux-gcc去生成基于linux的应用程序。

代码托管

(statistics.sh脚本的运行结果截图)
虚拟机重装中,截图后补

上周考试错题总结

第六周已写

结对及互评

点评模板:

  • 博客中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 代码中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 其他

本周结对学习情况

- [结对同学学号1](博客链接)
- 结对照片
- 结对学习内容
    - XXXX
    - XXXX
    - ...

其他(感悟、思考等,可选)

本周学习东西很多。有些实验还没完成,还在学习。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第7周 299/2100 1/5 11/1000

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

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

  • 计划学习时间:16小时

  • 实际学习时间:11小时

  • 改进情况:

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

参考资料

posted @ 2017-11-05 23:37  名字最难取  阅读(137)  评论(0编辑  收藏  举报