计组(四)指令系统

本文详细解析了计算机中的数据寻址方式,包括隐含、立即、直接、间接、寄存器等,并对比了复杂指令集(CISC)与精简指令集(RISC)的主要区别。同时,探讨了不同机器中操作数地址的给出方式,如大端和小端。

1、数据寻址方式

隐含寻址:操作数的地址不明显给出,隐含在指令中

立即寻址:给出的不是操作数的地址,而是操作数的本身

直接寻址:直接给出操作数的真实地址

间接寻址:给出操作数有效地址所在的存储单元的地址

寄存器寻址:直接给出操作数所在寄存器的编号

寄存器间接寻址:给出存有操作数所在存储单元地址的的寄存器编号

相对寻址;把程序计数器PC的内容加上指令格式中的形式地址

基址寻址:将基址寄存器中的内容加上指令格式中的形式地址

变址寻址:将变址寄存器中的内容加上指令格式中的形式地址

堆栈寻址:从规定的堆栈中取出操作数

2、CISC和RISC的区别

CISC:指令数目多,字长不固定,寻址方式多,寄存器数量少,一般为微程序控制

RISC:指令数目少,字长固定,寻址方式少,寄存器数目多,一般为组合逻辑控制

3、一个操作数在内存中可能占有多个存储单元,那么,怎样在内存中给出操作数的地址?

现代计算机都采用字节编址方式,也就是一个内存单元中只能包含一个字节的信息,一个操作数可能占有1个、2个、4个、8个等等个内存单元,也就是说一个操作数可能有多个内存地址对应。

不同的计算机中有不同的存放方式,大端和小端:

大端方式:指令中给出的地址是操作数最高有效字节(MSB)所在的地址。

小端方式:指令中给出的地址是操作数最低有效字节(LSB)所在的地址。

### 算机成原理中的指令系统寻址方式 #### 指令寻址的概念 找到下一条将要执行的指令地址的过程被称为指令寻址。通常情况下,指令按照顺序存储在主存中,在程序执行期间,这些指令会从内存单元取出并加载到指令寄存器(IR)中[^2]。 #### 基本寻址模式 为了支持不同的编程需求和优化访问效率,现代算机提供了多种基本寻址模式: - **立即寻址**:操作数直接作为指令的一部分给出,不需要额外的访存动作即可获得实际的操作数值。 - **直接寻址**:指令中包含有操作数的有效地址,CPU可以直接通过该地址获取所需数据。 - **间接寻址**:指令提供的是指向有效地址的一个指针变量的位置;需先读取此位置的内容得到真正的目标地址再进行后续的数据读写操作。 - **相对寻址**:基于当前正在执行的指令所在位置加上偏移量来算目的地址,常用于实现分支跳转等功能。 - **基址加变址寻址**:由一个固定的基底地址(Base Address)与另一个可变化的索引值相加以形成最终的目标地址,适用于数或表格类数据结构的遍历。 #### RISC架构下的特点 对于精简指令集(RISC),其指令格式较为简单统一,长度固定,各部分的位置及位宽也保持一致,这使得编解码过程更为简便高效。当面对较短的指令字长时,则可以采用操作码扩展的技术手段以容纳更多种类的操作命令[^3]。 ```assembly ; 示例汇编代码展示不同类型的寻址方式 MOV AX, [BX+SI] ; 基址加变址寻址 JMP SHORT LABEL ; 相对寻址 (短距离跳跃) CALL DWORD PTR [FUNCTION] ; 间接寻址调用函数 ADD EAX, IMMEDIATE_VALUE ; 立即寻址给EAX累加器增加一个立即数 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值