如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第3章INTEL8086/8088指令系统3.1指令格式及寻址方式4.1.18086/8088的通用指令格式一条指令的一般格式为:操作码字段+操作数字段。操作码字段:指明计算机所要执行的操作(即功能);操作数字段:指出在指令执行过程中所需要的操作数。对有操作数的指令,在执行指令所规定的操作之前首先要寻找操作数。操作数可放在CPU寄存器中,或内存单元中,或I/O端口内,寻找这些操作数的方式称为寻址方式,即指令中用于说明操作数或操作数所在地址的方法。4.1.2立即寻址(立即数)特点:操作数直接存放在指令中,作为指令的一部分存放在代码段里,这种操作数称为立即寻址。操作数可以是各种数制下的数。一般常用于给寄存器或存储单元赋初值(即初始化),立即数只能用于源操作数字段,不能用于目的操作数字段。立即数可是二进制、十进制、十六进制。(例1)4.1.3寄存器寻址特点:操作数在某寄存器中,存取这类操作数在CPU内部进行,所以执行速度快。存放16位操作数的寄存器有:AX,BX,CX,DX,BP,SP,SI,DI;存放8位操作数的寄存器有:AH,AL,BH,CH,CL,DH,DL。CS、DS、SS、ES---------16位的段寄存器(例2)注意:指令指针IP和标志寄存器PSW以及所有标志位的代号CF、ZF、OF等都不能作为寄存器寻址方式的操作数,不允许出现在汇编语言的任何指令中。另外,8088汇编语言还规定,不允许用MOV等具有赋值功能的指令修改CS的值,在8088汇编语言中MOVCS,AX不符合语法规则。4.1.4存储器操作数寻址内存型寻址方式是指参与操作的数据在内存中,因此必须指明操作数究竟在内存的什么地方,即指出内存的逻辑地址。存储器是分段管理的,要找到操作数,必须指明操作数所在的段(段基址由段寄存器指明)及段内偏移地址(以有效地址EA的形成方式指出)。1.直接寻址方式特点:指令中指接给出操作数在段内的偏移量,段基址隐含给出或用段前缀指明。该寻址方式适用于处理单个变量。一般操作数存放在数据段,故操作数的物理地址为:物理地址=(DS)×16+EA=(段基址的寄存器)×16+偏移地址(例3)说明:※偏移地址(EA)在指令中直接给出。指令中缺省段寄存器说明,段基址在DS段寄存器中;否则在指令中需对段寄存器加以说明。例如:MOVAX,ES:[2300H]※可用符号地址代替数值地址,例如:MOVAX,VALUE;此时,VALUE为存放操作数单元的符号地址,即变量名,也可写成:MOVAX,[VALUE];两者等价。2.寄存器间接寻址特点:操作数有效地址在基址寄存器BP、DI中,而操作数则在存储器中。它适用于表格处理,执行完一条指令后,只需修改寄存器内容就可取出表格中的下一项元素。a.令中的有效地址(EA)存放在BX,SI,DI寄存器中,则操作数在数据段中,即操作数的物理地址为:(BX)物理地址=16D×(DS)+(SI)(DI)b.若有效地址存放在BP寄存器,则操作数在堆栈段中,即操作数物理地址为:物理地址=(SS)16+(BP)c.可使用段跨越前缀来取得其他段中的数据,如:MOVAX,ES:[BX](例4)注意:MOVAX,BX;(AX)←(BX)与前面的MOVAX,[BX]含义不同。3.寄存器相对寻址特点:操作数的有效地址是一个基址寄存器或变址寄存器的内容和指令中指定的8位或16位位移量(即偏移量)之和。适用于表格处理,修改基址或变址寄存器的内容来取得表格中的元素。一般形式:(BX)物理地址=16D×(DS)+(SI)+8/16位位移量(DI)物理地址=16D×(SS)+(BP)+8/16位位移量(例5)4.I/O端口寻址1.直接端口寻址方式特点:I/O端口地址以8位立即数方式在指令中直接给出.例如:INAL,PORT;PORT为寻址端口编号,只能在0~255范围之内。2.间接端口寻址方式I/O地址超过8位时,应放在DX寄存器中,即通过DX间接寻址,所能寻址的端口编号为0~65535。如OUTDX,AL,表示将AL的内容输出到由(DX)指出的端口中去。在16位PC机中,仅用A9~A0十条地址线表示I/O端口,所以DX间接寻址的范围为0~1023(即0~3FFH)。4.28086/8088的指令系统目前许多计算机的指令系统包含了几百条指令,十几种寻址方式,这对丰富汇编语言程序设计,提高高级语言的执行效率是有利的。被称为“复杂指令系统计算机:,简称CISC(ComplexInstructionSetComputer)。基本指令集是80X86微机不断发展的