|
|
计算机是通过执行指令序列来解决问题的,因而每种计算机都有一组指令集提供给用户使用,这组指令集就称为计算机的指令系统。
|
|
|
计算机的指令由操作码字段和操作数字段两部分组成。操作码字段指示计算机所要执行的操作,而操作数字段则指出在指令执行操作的过程中需要的操作数。指令的一般格式是
|
|
|
|
|
寻址方式就是解释操作数的地址,常用的有立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址和相对基址变址寻址7种寻址方式。
|
|
|
(1)立即寻址方式。操作数直接存放在指令中,紧跟在操作码之后作为指令的一部分,如执行"MOV AL, 5"指令后(AL)=05H。
|
|
|
(2)寄存器寻址方式。操作数在寄存器中,指令指定寄存器。16位操作数寄存器可以是AX、BX、CX、DX、SI、DI、SP和BP, 8位操作数可以是AL、AH、BL、BH、CL、CH、DL和DH。例如,"MOV AX, BX"指令,如果执行前(AX)=3064H,(BX)=1234H,则执行后(AX)=1234H, (BX)保持不变。
|
|
|
(3)直接寻址方式。在IBM PC中把操作数的偏移地址称为有效地址EA,在直接寻址方式中,EA就在指令中,它存放在指令的操作码之后。首先要求出操作数的物理地址,如操作数在数据段中,则物理地址=16d×(DS)+EA。例如,"MOV AX, [2000H]",如果(DS)=3000H,则物理地址为30 000+2000=32 000H。
|
|
|
(4)寄存器间接寻址方式。操作数的有效地址在基址寄存器BX、BP或变址寄存器SI、DI中,操作数则在存储器中。例如,操作数在DS中,寄存器为BX,则物理地址= 16d×(DS)+(BX)。
|
|
|
(5)寄存器相对寻址方式。在寄存器寻址方式的基础上加上一个位移量。位移量根据指令中的指定,形式为MOV AX ES: COUNT[SI],其中COUNT为位移量,ES为段跨越前缀(就是本来在DS中,现在在ES中,计算物理地址时相应改变)。
|
|
|
(6)基址变址寻址方式。在寄存器间接寻址方式基础上加一个偏移量。形式为MOV AX ES:[BX][SI],其中[SI]为偏移量。
|
|
|
(7)相对基址变址寻址方式。在寄存器间接寻址方式基础上既有位移量又有偏移量。
|
|
|
|
|
(1)数据传送指令:负责把数据、地址或立即数传送到存储器或存储单元中。
|
|
|
(2)算术运算指令:包括二进制运算及十进制运算指令。
|
|
|
|
|
(5)串操作指令:用来处理存放在存储器中的数据串,所有串指令都可以处理字节或字。
|
|
|
(6)处理器控制指令:用来设置或清除标志位的指令。
|
|
|