间接寻址寄存器有哪些,用于间接寻址的寄存器
常用的寻址方式有7种之多,到底选择哪一种较为合适?选择寻址方式有两个原则:第一,实用第二,有效。最终都应达到运行速度快、指令代码短的高效率目标程序的目的,立即寻址和寄存器寻址无论从指令长度还是指令执行时间来看,都比存储器寻址要好,但是也要依据情况灵活选用,立即寻址方式一般用于对寄存器、存储单元赋值,且立即数在运算指令中作为源操作数使用,不允许立即数出现在目的操作数中。
由于寄存器就在CPU内部,所以执行速度非常快,而且指令长度也短。缺点是寄存器的个数太少,不能满足保存大量数据的要求。寄存器可以作为中间媒介重复使用。存储器寻址方式满足了大批量数据的保存和读取的需求。但是缺点也很明显,CPU到存储器中读写数据时,要经过总线访问存储器而且存储器的速度比CPU要慢很多,CPU需要等待,因此执行时间上要增加很多。
1、在寄存器间接寻址中与ss段对应的寄存器是什么?
寄存器(直接)寻址:指令中指出暂存操作数的寄存器。寄存器的内容就是操作数。如:AX里放1,BX里放2,ADDAX,BX结果为AX3。寄存器间接寻址,指令中指明存放操作数偏移地址的寄存器。即操作数放在内存空间的某个地方,这个地方的地址由段地址和寄存器所指出的偏移量进行计算得出。段地址按照一定的约定给出。若指令中指出的是BX,
若指令中指出BP,说明操作数在堆栈段,选用SS的值与寄存器的内容合成物理地址;若定义了附加段,且指令中指出了DI寄存器,那么选用ES与DI合成物理地址;若在指令中有超越段前缀,则选用指令中指出的段寄存器值与寄存器的内容合成物理地址。如:MOVAX,[BX]操作数[BX]为寄存器间接寻址方式。
2、寄存器间接寻址的语言描述方法
寄存器的间接寻址需要以寄存器符号的形式来表示,且在寄存器名称前面加上间接寻址符号“@”。例如指令MOVA,@R0就使用了寄存器间接寻址方式,这条指令的意义为将地址指针R0指向的内部数据存储器单元中的数据送入累加器A中.假设R0中内容为30H,则此指令的功能是以R0寄存器的内容30H为地址,把内部RAM30H单元中的内容传送给累加器A。
3、寄存器寻址和寄存器间接寻址的区别
一、主体不同1、寄存器寻址:是指操作数在寄存器中,由指令操作码中的rrr三位的值和PSW中RS1及RS0的状态,选中某个工作寄存器区的某个寄存器,然后进行相应的指令操作。2、寄存器间接寻址:将指定的寄存器内容为地址,由该地址所指定的单元内容作为操作数。二、功能不同1、寄存器寻址:指令所要的操作数已存储在某寄存器中,或把目标操作数存入寄存器。
三、特点不同1、寄存器寻址:在指令执行过程中,会减少读/写存储器单元的次数,所以,使用寄存器寻址方式的指令具有较快的执行速度。2、寄存器间接寻址:需要以寄存器符号的形式来表示,且在寄存器名称前面加上间接寻址符号“@”,例如指令MOVA,@R0就使用了寄存器间接寻址方式。