版权归原作者所有,如有侵权,请联系我们

[科普中国]-有效操作数地址

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

操作数概述

操作数指出指令执行的操作所需要数据的来源。操作数是汇编语言指令的一个字段。例如:Mov AX 5678H 操作数(AX 5678H)。在操作数这个字段中可以放操作数本身,也可以放操作地址,还可以放操作地址的计算方法。

通常一条指令均包含操作符和操作数。例如:在比较指令中操作符指定计算机做比较操作,操作数则指定进行比较的两个数值。

操作数是指令执行的参与者,也就是各种操作的对象.与之有关的是操作码,所谓操作码是说明计算机要执行哪种,如传送,运算,移位,跳转等操作,它是指令中不可缺少的组成部分。

操作数的形式立即操作数:指令要操作的数据以常量的形式出现在指令中,称为立即数,它只能作为源操作数。

寄存器操作数:指令要操作的数据存放在CPU中的寄存器里,指令中给出寄存器名即可。

内存操作数:指令要操作的数据存放在内存某些单元中,指令中给出内存单元物理地址(实际上指令只给出了偏移地址,段地址采用隐含方式给出,也可以使用跨段方式指出当前段地址)。2

操作数寻址方式1. 指令中形成操作数或操作数地址的方式称为操作数的寻址方式。一般把指令中直接给出的地址称为形式地址,从形式地址生成有效地址的各种方式称为各种不同的存储器寻址方式,每种寻址方式都有一种对形式地址进行变换处理的运算规则。

2. 立即寻址方式:指令的地址码字段指出的不是地址,而是操作数本身,这种寻址方式称为立即寻址方式。

3. 直接寻址就是在指令的地址字段中直接指出操作数在主存中的地址,即形式地址等于有效地址。

4. 间接寻址中指令地址码字段所指向的存储单元中存储的不是操作数本身,而是操作数的地址。

5. 寄存器寻址方式就是指令中的地址码是寄存器的编号,而不是操作数地址或操作数本身。

6. 基址寻址是将基址寄存器的内容加上指令中的形式地址而形成操作数的有效地址,其优点是可以扩大寻址能力。

7. 变址寻址方式计算有效地址的方法与基址寻址方式很相似,它是将变址寄存器的内容加上指令中的形式地址而形成操作数的有效地址。

8.相对寻址,是相对于当前的指令地址而言的寻址方式。相对寻址是把程序计数器PC的内容加上指令中的形式地址而形成操作数的有效地址,而程序计数器的内容就是当前指令的地址,所以相对寻址是相对于当前的指令地址而言的。3

地址码1.指令系统中的地址码用来描述指令的操作对象。在地址码中可以直接给出操作数本身,也可以给出操作数在存储器或寄存器中的地址、操作数在存储器中的间接地址等。

2.根据指令功能的不同,一条指令中可以有一个、两个或者多个操作数地址,也可以没有操作数地址。一般情况下要求有两个操作数地址,但若要考虑存放操作结果,就需要有三个操作数地址。

3.根据地址码的数量,可以将指令的格式分为:零地址指令、一地址指令、二地址指令、三地址指令和多地址指令。

4.零地址指令指令格式中没有地址码部分,只有操作码。

5.一地址指令常称为单操作数指令,该指令中只有一个地址码。这种指令可能是单操作数运算,给出的地址既作为操作数的地址,也作为操作结果的存储地址;也可能是二元运算,指令中提供一个操作数,另一个操作数则是隐含的。

6.二地址指令是最常见的指令格式,又称为双操作数指令。通常情况下,在这种指令中包括两个参加运算的操作数的地址码,运算结果保存在其中一个操作数的地址码中,从而使得该地址中原来的数据被覆盖。

7.三地址指令,在这种指令中包括两个操作数地址码和一个结果地址码,可使得在操作结束后,原来的操作数不被改变。

8.多地址指令。我们以四地址指令为例,四地址指令比三地址指令增加了下一条要执行的指令地址,因此其优点是非常直观,指令所用的所有参数都有各自的存放地址,并且有明确的下一条指令地址,程序的流程很明确,但是其缺点也是显而易见的,这就是指令所占的长度太长。