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

[科普中国]-多操作数

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

简介

操作数是运算符作用于的实体,是表达式中的一个组成部分,它规定了指令中进行数字运算的量,操作数指出指令执行的操作所需要数据的来源。操作数是汇编语言指令的一个字段。多操作数一般是指一条指令中操作数不少于3个。多操作数指令的执行需要两个存储器访问周期时间。多地址指令是指指令有3个以上的操作数地址。多操作数和多地址指令之间既有相同点,也有不同点。相同点:在某些性能较好的大、中型机及高档小型机中采用,往往设置一下功能很强的,用于处理成批数据的指令,如字符串处理指令、向量、矩阵运算指令等。为了描述一批数据,指令中需要多个地址来指出数据存放的首地址、长度和下表等信息。2不同点:多地址指令给出都是操作数的地址,多操数指令不一定都是地址,它可以还可以是操作数本身,或操作数地址的计算方法。

其它操作数(1) 无操作数指令,有的指令不涉及操作数,或使用约定的某个(些)操作数,既已约定则没有必要再在指令中加以表示,称这类指令为无操作数指令,它仅有操作码部分,例如停机指令、空操作指令、关中断指令、堆栈结构的计算机系统中对堆栈中数据运算的指令等。

(2) 单操作数指令,有些指令只用一个操作数,必须在指令中指明其地址,如一个寄存器内容增1或减1运算的指令;或还使用约定的某个操作数,既已约定则无需再在指令中加以表示,如完成从(向)外设读(写)数据的指令,就可以只在指令中指明该外设地址,而把接受(送出)数据的通用寄存器约定下来。此外,在短字长的、采用单个累加器的计算机中,已约定目的操作数(如被加数、被减数等)和保存计算结果都使用唯一的那个累加器,指令中只需表示另一个源操作数即可。称这类指令为单操作数指令。

(3) 双操作数指令,对于常用的算术和逻辑运算指令,往往要求使用两个操作数,需分别给出目的操作数和源操作数的地址,其中目的操作数地址还用于保存本次的运算结果。称这类指令为双操作数指令。

关于指令字长,在同一台计算机中,从效率考虑,并不要求所有指令都使用同一长度。在字长较长的计算机中,一个机器字中可以存放多条短指令;在字长较短的计算机中,一条指令也可以占多个机器字。3

操作数的形式

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

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

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

有关术语的解释计算机指令计算机指令就是指挥机器工作的指示和命令,程序就是一系列按一定顺序排列的指令,执行程序的过程就是计算机的工作过程。通常一条指令包括两方面的内容:操作码和操作数,操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址。在计算机中,操作要求和操作数地址都由二进制数码表示,分别称作操作码和地址码,整条指令以二进制编码的形式存放在存储器中。

指令字长指令字长是指机器指令中二进制代码的总位数。指令字长取决于从操作码的长度、操作数地址的长度和操作数地址的个数。不同的指令的字长是不同的。

机器周期一个机器周期由若干个S周期(状态周期)组成。通常用内存中读取一个指令字的最短时间来规定CPU周期,(也就是 计算机通过内部或外部总线进行一次信息传输从而完成一个或几个微操作所需要的时间)),它一般由12个时钟周期(振荡周期)组成,也是由6个状态周期组成。而振荡周期=1秒/晶振频率,因此单片机的机器周期=12秒/晶振频率 。

节拍与状态:把振荡脉冲的周期定义为节拍(用p表示)。振荡脉冲经过二分频后定义为状态。一个状态就包含两个节拍。

指令周期(Instruction Cycle):取出并执行一条指令的时间。

总线周期(BUS Cycle):也就是一个访存储器或I/O端口操作所用的时间。

时钟周期(Clock Cycle):又称震荡周期,是处理操作的最基本单位。(晶振频率的倒数)。

指令周期、总线周期和时钟周期之间的关系:一个指令周期由若干个总线周期组成,而一个总线周期时间又包含有若干个时钟周期。

一个总线周期包含一个(只有取址周期)或多个机器周期。4