408第二季 - 组成原理 - 指令的寻址方式
闲聊
指令的寻址就2个
无论的哪个寻址都得要PC
隐含寻址
指令地址提供了第一个内存地址10直接提供操作数x,然后会有一个老六ACC提供隐藏的y
立即寻址
直接寻址
指令里提供的就是内存地址
间接寻址
10找的并不是我们要找的操作数,而是找的EA = 100,这个EA才能找到操作数
然后就能引出2个概念
然后就能这么写,EA = (A)表示 EA 等于 A的内容,左边EA是有效地址,右边是形式地址
操作数 x = ((A)) 表示 EA的内容
不懂继续往下看
若左边是形式地址就会是这样
寄存器寻址
直接提供寄存器标号
所以最终的有效地址就是有效地址
要x的操作数就是 Ri的内容
寄存器间接寻址
EA是有效地址的意思哈,想要是有效地址得获取Ri的内容才行
想获取操作数x,得获取EA的内容才行
到这里应该懂了吧
寻址特征
平常只有操作码和地址码,这里多了个寻址特征
相对寻址
可以看懂吧,先看紫色部分
基址寻址
这个得看一下
通用寄存器会有很多,所以要告诉指令你要用哪个通用寄存器
然后通用寄存器变为基址寄存器
变址寻址
这个也会有通用寄存器
基址寻址和变址寻址的区分
这是基址,很正常吧
编址是IX自己在变,指令不变
然后,圈起来的这句话怎么理解呢
看这个图立即,本来BR是100的,映射到内存就是这个样子,然后内存的100-199移动到1000-1099怎么办呢,那你只要BR=1000就可以了,最爽的一集,编制浮动程序最舒服的一集
然后是变址
我们看一个题目
这里数组的每一个下标,地址可以这样算,这里8是double数组
然后这里的变址寄存器初始值是0,然后偏移地址是通过乘以double来完成的,然后变址会自动加1
b
然后17年可能答的不太好,18年又出了