计算机组成原理-指令系统-指令格式及寻址方式
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
目录
一、指令的定义
指示计算机执行某种操作的命令是计算机运行的最小功能单位X86架构ARM架构两种指令
指令包含操作码(OP)+地址码(A)
一条指令可能包含0个、1个、2个、3个、4个地址吗...
根据地址码数目划分为零地址指令、一地址指令、二地址指令、三地址指令、四地址指令......
1.1 扩展操作码指令格式
设计扩展码指令格式时必须注意两点
①不允许短码是长码的前缀。即短操作码不能与长操作码前面部分相同 (类似哈夫曼编码)
②各指令操作码一定不能重复
通常情况对使用频率高的指令分配较短操作码(地址码就长)频率低分配长操作码从而尽可能减少指令译码和分析时间
另一种扩展码设计方法
二、指令寻址方式
pc计数器下一条欲执行指令的地址
2.1 顺序寻址
pc+1
2.2 跳跃寻址
执行了转移指令直接执行转移地址指向的指令
三、 数据寻址
3.1 直接寻址
指令字中的形式地址A就是操作数的真实地址EA。即EA=A
指令执行过程取指令访存1次执行指令访存一次暂不考虑存结果共访存2次
3.2 间接寻址
指令的地址字段给出的形式地址不是真实的地址而是操作数有效地址所在的地址也就是操作数地址的地址即EA=(A)
3.3 寄存器寻址
指令字中给的是操作数所在的寄存器编号即,其操作数在由所在寄存器中
3.4 寄存器间接寻址
寄存器给是不是一个操作数而是主存单元的地址即时 <上面2种寻址套娃>
3.5 隐含寻址
不是明显给出操作数地址而是指令中隐含操作数的地址
加法另一个操作数在ACC中
3.6 立即寻址
形式地址A就是操作数本身又称立即数一般补码形式
3.7 偏移地址
3.7.1 基址寻址
以程序的起始存放地址作为起点 EA=(BR)+A
3.7.2 变址寻址
程序员自己决定从哪开始为起点 EA=(IX)+A
3.7.3 相对寻址
以程序计数器pc所指地址为起点 EA=(PC)+A
2.8 堆栈寻址
操作数存放在堆栈中隐含使用堆栈指针(SP)作为操作数地址