寻址方式
操作数类型数据存放
存放方式
数据存放
三个字长:
机器字长:CPU一次能处理的二进制数据的位数。
指令字长:一个指令中包含二进制代码的位数。
存储字长:一个存储单元存储二进制代码的长度。
注:这些长度都是字节的整数倍
一般等于内部寄存器的位数。
单字长指令:指令长度=机器字长
半字长指令、双字长指令
通常一次并行取出一个存储字,按字节寻址时,通过移位截取存储字中的一个字节。
存放方式
一:
二:
三:折衷???????
寻址方式
寻找指令或操作数的有效方式
确定本条指令的操作数地址
下一条欲执行指令的指令地址
寻址方式:
- 指令寻址
- 数据寻址
指令寻址
始终由程序计数器PC给出
顺序寻址
(PC)+1->PC
永远都是+1?不一定,假设内存单元按照字节(8Bit)进行编址单位,如果指令是32位(4个字节)的,这时候就不是+1了,是+4。64位就+8
跳跃寻址
由转移指令指出
例如:
数据寻址
确定本条指令的数据地址,
如何在指令当中表示一个操作数的地址
**形式地址 **指令字中的地址
**有效地址 **操作数的真实地址
约定 指令字长 = 存储字长 = 机器字长
隐含寻址
不明显地给出操作数的地址,而是在指令中隐含着操作数的地址
优点:有利于缩短指令字长。
缺点:需增加存储操作数或隐含地址的硬件
了解即可
立即寻址
指令特征#
直接寻址
间接寻址
寄存器寻址
寄存器间接寻址
小节回顾
偏移寻址
基址寻址
将CPU中基址寄存器(BR)的内容加上指令格式中的形式地址A而形成操作数的有效地址,即EA=(BR)+A
面向操作系统
隐式的(专门就有的寄存器)
有利于多道程序设计
编制浮动程序。
变址寻址
有效地址EA等于指令字中的形式地址A与编址寄存器IX的内容相加之和,即EA=(IX)+A,其中IX为变址寄存器(专用),也可用通用寄存器做编址寄存器。
所有过程和基址寻址差不多。
但是是面向用户的
适合编写循环程序
基址寻址+变址寻址
相对寻址
把程序计数器PC的内容就加上指令格式中的形式地址A而形成操作数有效地之,即EA=(PC)+A,其中A是相对于当前指令地址的位移量,可正可负,补码表示。
相对寻址举例:
堆栈寻址(不是很重要)
两个操作数都可以隐含起来
操作数存放在堆栈中,隐含使用堆栈指针(SP)作为操作数地址。
CISC和RISC
CISC: Complex Instruction Set Computer
一条指令完成一个复杂的基本功能
代表:x86架构,主要用于笔记本、台式机
RISC: Reduced Instruction Set Computer
精简指令集
一条指令完成一个基本“动作”;多条指令组合完成一个复杂的基本功能。
代表:ARM架构,主要用于手机、平板等。
例如单词输出
小结
本文作者:Jev_0987
本文链接:https://www.cnblogs.com/jev-0987/p/13561183.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步