预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共55页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第3章80X86的寻址方式及指令系统本章要点定义:指令的一般格式: 操作助记符目的操作数(或其位置),源操作数(或其位置) dstsrc3.18086的寻址方式(addressingmode)①立即寻址:操作数(8位或16位)出现在指令 中,与指令代码一起存放在存储器的代码段中。 ②寄存器寻址:操作数放在CPU内部的寄存器中, 可为8位或16位寄存器,由指令给出。 ③直接寻址:操作数放在存储器的数据段(其段地址由 DS中的内容决定)中,其有效地址(偏移地址 直接用偏(位)移量表示在指令中,占2个字节。偏 移量常用disp表示,是有效地址的一部分或全部, 可以8位也可以16位。 例:MOV AX,DS:[0100H]②寄存器间接寻址:操作数在存储单元中,其有效 由BX﹑SI或DI中的内容给出表示为:(BX) EA=(SI) (DI) 寄存器BX﹑SI或DI在指令中给出。 例:MOV AX,[SI]⑤寄存器相对寻址:操作数在存储器中,其有效地址是 位移量(可8位或者16位)与变址或基址寄存器之和, Disp与寄存器在指令中给出。⑥基址变址寻址:操作数在存储器中,偏移地址由基址寄 存器和变址寄存器中的内容相加确定。 ⑦基址变址相对寻址:寄存器相对寻址与基址变址寻址 方式的结合。⑧隐含寻址:指令本身隐含了操作数的地址, 例如:字符串操作指令 MOVS, 源操作数由DS:SI寄存器间接寻址, 目的操作数由ES:DI寄存器间接寻址。3.28086/8088的指令系统Ⅰ.数据传送,由源---》目的 例:MOV AX,BX;寄存器寻址 MOV DL,AL;寄存器寻址 MOV AX,02;源操作数用立即寻址 MOV SI,[BX];源操作数寄存器间接寻址 MOVAL,4[DI];源操作数用寄存器相对寻址 MOVAX,[BX+2];源操作数用寄存器相对寻址 MOV[BX][DI],DX;目的操作数用基址加变址寻址立即数、代码段寄存器CS只能作源操作数。 IP寄存器不能作源操作数或目的操作数。 MOV指令不能在两个存储单元之间直接传 送数据,也不能在两个段寄存器之间直接 传送数据。 两个操作数的类型属性要一致。Ⅱ.堆栈操作指令: 堆栈:是以后进先出规则保存信息的一种存储机构。 (1)8086中堆栈段地址在SS寄存器中,堆栈当前偏移地 址在SP寄存器中,SP称为堆栈指针。SP的初值代表了堆 栈区的大小,若SP=0100H,有右图所示: (2)堆栈操作方式: 以字为单位进行操作,高字节在高地址, 低字节在低地址。(3)堆栈操作指令 a、压入指令:PUSH 例:PUSH AX 如果AX=1234H,则该指令执行后的结果: SP=00FEH, (00FFH)=12H,(00FEH)=34HⅢ.字节或字交换指令: 寄存器之间或寄存器与存储器之间内容交换。 XCHGOPR1,OPR2;(OPR1)(OPR2) 例:xchgax,cxⅣ.字节转换指令:常用于查表。 格式:XLAT[转换表] 即:XLAT ;(BX+AL)-AL,BX的内容是表的首地 址,AL的内容是表内的序号。采用隐含寻址方式。 功能:将一个字节从一种代码转换成另一种代码。 XLAT指令是通过查表方式来完成翻译功能的,因此,执行 该指令之前,必须建立好一张翻译表,该表的最大容量为 256个字节。IN A,port ;数据从port端口输入到AL或AX OUT port,A ;数据从AL或AX输出到port端口 1)A是AL(8位输入输出)或AX(16位输入输出) 2)port是外设的端口地址,可以是8位立即数表示的直接 地址,也可以用DX寄存器的内容作为端口地址。 例: IN AL,3FH MOV DX,3FH OUT DX,AXSAHF4、标志传送指令3.2.2算术运算类指令ADD AX,[SI];完成16位数据的加法运算 ;SRC在存储器中 ;DST是CPU中的AX寄存器2.比较指令 CMP DST,SRC;DST-SRC,结果不保留 ;只影响标志位 例:CMP AX,BX例: MOV AX,003AH; 0000000000111010 MOV BX,8003H; 1000000000000011 CMP AX,BX; 1000000000110111 影响标志位:CF=1,OF=1,ZF=0,SF=1,PF=0,AF=0 作为无符号数时,CF=1,则AX<BX 003AH小于8003H 作为带符号数时,OF异或SF=0,则AX≥BX 正数大于负数3.增量减量指令 影响除CF以外的所有状态标志,只有一个操作数DST, 可以是8位也可以是16位操作数。常用来修改计数器的 计数指针。 INC DST;DST+1——》DST DECDST;DST-1——》DST