请教变址寻址和基址寻址的区别

汇编里面的,看不懂
2024-12-15 23:24:34
推荐回答(5个)
回答1:

一、主体不同

1、变址寻址:把变址寄存器的内容与指令地址码部分给出的地址之和作为操作数的地址来获得所需要的操作数。

2、基址寻址:将CPU中基址寄存器的内容,加上指令格式中的形式地址而形成操作数的有效地址。

二、特点不同

1、变址寻址:指令地址码部分给出的地址A和指定的变址寄存器R的内容K通过地址加法器相加,所得的和作为地址从存储器中读出所需要的操作数。

2、基址寻址:被引用的专用寄存器含有一个存储器地址,地址字段含有一个相对于该地址的偏移量。


三、方式不同

1、变址寻址:在多道程序的环境下,用户不可决定自己使用的主存区,因而在编程时常按(以零为基准地址)相对地址来编写。

2、基址寻址:当程序被放入主存时,操作系统根据主存空间情况给基址寄存器赋值,从而将虚地址转化为实地址。


参考资料来源:百度百科-基址寻址

参考资料来源:百度百科-变址寻址

回答2:

基址寻址:其中的形式地址是可变的,基址寄存器的内容是一定的
变址寻址:形式地址不变,变址寄存器的内容可变 因此它可用于处理数组问题

回答3:

基址寻址:MOV EAX,【EBX+4】含义是把EBX里的数据作为一个地址(基址),将这个地址

加4(形式地址)后得到新地址,从新地址获取数据赋给EAX。
变址寻址:MOV EAX,【EBX,EDX】含义是把EBX里的数据(首地址)与EDX的数据(位移量)之和作为地址,
从这个地址获取数据赋给EAX。

回答4:

两者有不同的特点和用途:①在基址寻址的系统中,基址是不变的,程序中的所有地址都相对于基地址来变化。而对于变址寻址则相反,指令中的D给出的是一个存储器地址基准,变址寄存器X中存放的是相对于该基准地址的偏移量。不同的变址寄存器值指出了不同的单元;②在基址寻址中,偏移量位数较短,而在变址寻址中,偏移量位数足以表示整个存储空间;③前者主要解决程序逻辑空间与存储器物理空间的无关性,而后者主要为了可编写出高效率访问一片存储空间的程序。

回答5:

老师讲,基址寻址是由系统决定的,不可修改。变址寻址是用户可以修改的