标签:
定义一个指令集体系结构,包括定义各种状态元素、指令集和它们的编码、一组编程规范和异常事件处理。
Y86处理器状态类似于I32。可以访问和修改程序寄存器、条件码、程序计数器和存储器,状态码指明程序是否运行正常。
RF:程序寄存器 %eax,%ecx,%edx,%ebx,%esi,%edi,%esp(出栈、入栈、调用和返回指令作为栈指针),%ebp
CC:条件码 ZF、SF、OF(都是一位条件码,用来保存最近的算术或逻辑指令所造成影响的有关信息。)
PC:程序计数器 存放当前正在执行的指令
DMEM:存储器 很大的字节数组,保存着程序和数据。Y86程序用虚拟地址来引用存储器位置。
Stat:程序状态码 它表明程序执行的总体状态。它会指示是正常运行还是出现了某种异常。
- IA32的movl指令分成了4个不同的指令:irmovl、rrmovl、mrmovl和rmmovl。分别显示地指明源和目的的格式。(源可以是立即数i,寄存器r,或存储器m;目的可以使寄存器r和存储器m。)两个存储器传送指令中的存储器引用方式是简单的基址和偏移量形式。在地址计算中,不支持第二变址寄存器和任何寄存器值的伸缩。同IA32一样,不允许从一个存储器地址直接传送到另一个存储器地址。也不允许将立即数传送到存储器。
- 4个整数操作指令。addl、subl、andl和xorl。
- 7个跳转指令(jXX)。jmp、jle、jl、je、jne、jge和jg。
- 有6个条件传送指令(cmovXX)。cmovle、cmovl、cmove、cmovne、cmovge和cmovg。只有当条件码满足所需要的约束时,才会更新目的寄存器的值。
- call指令将返回地址入栈,然后跳到目的地址。ret指令从这样的过程调用中返回。
- pushl和popl指令实现了入栈和出栈。
- halt指令停止指令的执行。对于Y86来说,执行halt指令会导致处理器停止,并将状态码设置为HLT。
标签:
原文地址:http://www.cnblogs.com/sunxiaobo/p/4889112.html