20145306《信息安全系统设计基础》第6周学习总结
教材学习内容总结
Y86异常
Y86状态码(在我们的设计中,任何AOK以外的代码都会使处理器停止)
1 AOK 正常操作
2 HLT 处理器执行halt指令
3 ADR 遇到非法地址
4 INS 遇到非法指令
出现异常时Y86处理器停止运行指令,可以调用一个异常处理程序使其更完整。
y86 程序
Y86代码与IA32代码的主要区别:
Y86可能需要多条指令来执行一条IA32指令所完成的功能。
Y86没有伸缩寻址模式。
命令指明应该将代码或数据放在什么位置,以及如何对齐。这个程序详细说明了栈的放置、数据初始化、程序初始化和程序结束等问题。
以“.”开头的词是汇编命令,他们告诉汇编器调整地址,以便在那儿产生代码或插入一些数据。
创建Y86代码的唯一工具是汇编器。
指令集模拟器YIS:
目的:模拟Y86机器代码程序的执行,而不用试图去模拟任何具体处理器实现的行为。
有助于在实际硬件可用之前调试程序,也有助于检查模拟硬件或者在硬件上运行程序的结果。
指令集模拟器YIS
目的:模拟Y86机器代码程序的执行,而不用试图去模拟任何具体处理器实现的行为。
有助于在实际硬件可用之前调试程序,也有助于检查模拟硬件或者在硬件上运行程序的结果。
(7)一些Y86指令的详情
大多数Y86指令是以一种直接的方式修改程序状态的。
执行pushl和popl指令时,处理器的行为是不确定的,因为要入栈的寄存器会被同一条指令修改。通常有两种约定:
压入/弹出%esp的原始值
压入/弹出%esp-/+4后的值
教材学习中的问题和解决过程
安装bison和flex词法分析工具
sudo apt-get install bison flex
安装Tcl/Tk 支持图形界面
sudo apt-get install tcl8.5-dev tk8.5-dev tcl8.5 tk8.5
下载sim并减压
修改 Makefile
成功make
http://blog.sina.com.cn/s/blog_79b01f66010163q3.html