(一)指令和指令系统
指令主要由两个部分组成:
操作码———用来指出计算机应执行何种操作的一个二进制代码。例如:加法、减法、乘法、除法、取数、存数等各种基本操作,它们均有各自相应的操作码。
操作数地址———指出该指令所操作(处理)的对象(称为操作数)所在的存储单元的地址。计算机中操作数可以相当灵活地指定,它可以直接包含在指令中,可以在CPU的某个寄存器中,一般情况是在存储器的某个(些)存储单元中。指定操作数所在位置的方法称为寻址方式。不同的计算机具有各自不同的指令,对某种特定的计算机而言,其所有指令的集合,称为该计算机的指令系统。
(二)指令的特征和功能
一般而言,指令系统应该具备下述特性:
(1)指令的完备性。是指一个指令系统应满足给定的算法,可编出程序并实现之。
(2)指令的有效性。指令系统中所包含的指令必须是有效的,从而可用相当少的指令编出实现某种算法的程序。
(3)指令的简明性。它指一个指令系统能简化指令处理机的操作,又能简化编程。
(4)指令的效率。它指系统中指令的执行时间。
另外,尚要求指令系统应便于记忆和理解,占用内存少,尽量缩短逻辑延迟等。
(三)寻址方式
1.立即寻址
立即寻址又称立即数寻址。操作数紧跟在操作码之后,直接放在指令中,这种操作数称为立即数。立即数规定只能为整数。立即数可以是8位或16位,要求低字节数放在低位地址中,高字节数放在高位地址中。
2.寄存器寻址
操作数在CPU的内部寄存器中,寄存器名由指令指出,这种寻址方式称之为寄存器寻址方式。对8位操作数,寄存器可以是AL,AH,BL,BH,CL,CH,DL,DH中的任意一个,对16位操作数,寄存器可以是AX,BX,CX,DX,SI,DI,SP或BP之一。
3.直接寻址
直接寻址方式的操作数地址的16位偏移量(又称有效地址EA)直接包含在指令中,它紧跟在操作码之后,存放在代码段区域。如果指令前面无前缀指明在哪一段,则默认操作数存放在数据段寄存器DS中。它的地址为数据段寄存器DS加上这16位地址偏移量。
4.寄存器间接寻址
寄存器间接寻址方式的操作数在存储器中,操作数地址的16位偏移量包含在寄存器BX、BP、SI和DI之一中。如果指令中未具体用前缀指明是哪个段寄存器,则寻址时,对BX、SI、DI寄存器,默认操作数在数据段寄存器DS中,即数据段寄存器DS加上SI、DI、BX中的偏移量为操作数的地址。
5.寄存器相对寻址(或称变址寻址)