搜索
您的当前位置:首页8086指令表

8086指令表

来源:飒榕旅游知识分享网
表2-1数据传送指令

助记符 指令格式及格式 功能 传送字节或字 字人栈 说明 通MOV MOV dest,src;dest←src 用数据传PUSH PUSH src;SP←SP-2 ;[SP+1:SP]←src POP src;dest←[SP:SP+1] ;SP←SP+2 src与dest必须都是16位的 后进先出(LIFO) POP 字出栈 交换字节或字 字节转换 送XCHG XCHG src,dest;src↔dest 指令 XLAT XLAT ;AL←[BX+AL] src与dest不同时为存储器操作数

表2-2算术运算指令

助记符 指令格式及操作 功能 加法 带进位的加法 增量(加1) 加法的十进制修正 减法 带借位的减法 减量(减1) 求补(变负) 比较 减法的十进制修正 无符号数乘法 说明 ADD [BX] ,AL 变量加寄存器 ADD [DI] , 3000H dest不允许是立即数 不影响CF 只对AL的内容进行调整 SUB BX ,CX 相当于对dest取反后加1 指令不保留执行结果 只影响标志执行而不改变dest 只对AL的内容进行调整 指令影响OF,CF 运算结果高半部分(在AH或DX中)为零,则CF=OF=0,否则全为1 8*8=16,16*16=32 指令影响OF,CF src为除数,不允许是立即数 A(被除数)/B(除数)=C 被除数在AX中 加ADD ADD dest,src;dest←src+dest src;dest←src+dest+CF 法ADC ADC dest,指令 INC DAA SUB 减法指INC dest,dest←dest+1 DAA SUB dest,src;dest←dest-src SBB SBB dest,src;dest←dest-src-CF DEC NEG DEC dest,src;dest←dest-1 NEG dest;dest←0-dest CMP dest,src;dest-src DAS MUL src;8位:AX←src*AL ;16位:DX:AX←src*AX IMUL src;8位:AX←src*AL ;16位:DX:AX←src*AX DIV src;8位:AL←商;AH←余数 ;16位:AX←商;DX←余数 IDIV src;8位:AL←商;AH←余数 ;16位:AX←商;DX←余数 令 CMP DAS 乘法指令 除法指令 MUL IMUI 有符号数乘法 DIV 无符号数除法 IDIV 有符号数除法

表2-3位处理指令

助记符 指令格式及操作 功能 逻辑“与” dest不允许是立即数 TEST dest,src;dest^src 按位执行逻辑“与” 逻辑“或” 逻辑“异或” 逻辑“非” 逻辑左移 算术左移 逻辑右移 算术右移 循环左移 循环右移 通过CF循环左移 n不允许是存储器变量 n如果是立即数只能n=1 n如果是寄存器只能用CL 右移1位,相当于带符号数除以2 n不允许是存储器变量 n如果是立即数只能n=1 n如果是寄存器只能用CL 指令会影响OF,CF (ROR指令还会影响SF) 不允许dest与src同时为存储器变量 指令会影响SF,ZF,PF 总是将OF=0,CF=0 XOR XOR dest,src;dest←dest⊕src NOT 移SHL 位SAL 指SHR 令 SAR 循ROL 环ROR NOT dest SHL dest,n;逻辑左移 SAL dest,n;算术左移 SHR dest,n; 逻辑右移 SAR dest,n;算术右移 ROL dest,n;循环左移 ROR dest,n;循环右移 说明 AND AND dest,src;dest←dest^src 逻辑TEST 运算符 0R OR dest,src;dest←dest∨src 移RCL RCL dest,n;带进位循环左移 位指RCR RCR dest,n;带进位循环右移 令 通过CF循环右移

助记符 重复控制指令 LOOP LOOPE LOOPZ LOOPNE LOOPNZ CALL 指令格式及操作 LOOP target;CX←CX-1 若CX≠0则跳转到target LOOPE/LOOPZ target;CX←CX-1 若CX≠0且ZF=1则跳转到target 功能 循环 对标志位没有影响 -128≤target≤+127 说明 等于/为零,循环 LOOPNE/LOOPNZ target;CX←CX-1 不等于/不为零,循若CX≠0且ZF=0则跳转到target CALL proc 环 调用过程(子过程) 对标志位没有影响 SP←SP-2 中断指令 INT INT n; 以中断方式调用中断共计256个中断源,类型号为n的ISR 以中断方式调用中断类型号为4的ISR 中断返回 0-255 INTO IRET 表2-1数据传送指令

助记符 LEA 地址目标传送指令 LDS LES LAHF 标志传送指令 SAHF PUSHF POPF 功能 装入有效地址 将指针变量装入寄存器及DS 将指针变量装入寄存器及ES 标志寄存器低字节送AH AH值送标志寄存器低字节 标志寄存器内容进栈 标志寄存器内容出栈

表2-4 串操作指令

助记符 功 能 说明 MOVSW (按字移动)每次搬移一个字,如果DF=0,所以每次搬运完 SI、DI 会增加 2,CX 仍然减少一; 如果DF=1,每次搬运完 SI、DI 会减少 2 MOVSB (按字节移动)每次搬MOVS( MOVSB, MOVSW) 串传送(字节传送,字传送) 移一个字节,如果DF=0,所以每次搬运完 SI、DI 会增加1,如果DF=1,每次搬运完 SI、串操作指令 DI 会减少1 为了使串操作指令MOVSB执行时,SI,DI自动递增,应先使用的指令是CLD CMPS(CMPSB, CMPSW) 串比较(字节比较,字比较) STOS(STOSB, STOSW) 存入串(存入字节,存入字) LODSB/LODSW 将LODS(LODSB, LODSW) 串元素按字节/字存入AL/AX取出串(取出字节,取出字) 中,DF=0时,SI递增1/2; DF=1时,SI递减1/2 SCAS (SCASB, SCASW) REP 重复前缀 REPE/REPZ REPNE/REPNZ 扫描串(扫描字节,扫描字) 重复操作 等于/为零重复 不等于/不为零重复

表2-2算术运算指令

助记符 CBW 转 换 CWD 指令格式及操作 如果AL<80H,AH←00H 如果AL≥80H,AH←FFH 如果AX<8000H,DX←0000H 如果AX≥80000H,DX←FFFFH 功能 字节转换为字 字转换为双字

表2-5程序转移指令

助记符 CALL 无条件转移指令 RET JMP JA/JNBE JAE/JNB JB/JNAE JBE/JNA JC JE/JZ JG/JNLE JGE/JNL JL/JNGE 条件转移指令 JLE/JNG JNC JNE/JNZ JNO JNP/JPO JNS J0 JP/JPE JS JCXZ 功能 调用过程(子过程) 从过程(子过程)返回 无条件转移 转移条件 备注 高于/不低于等于,转移 CF=0且ZF=O 高于等于/不低于,转移 低于/不高于等于,转移 CF=0 CF=1 无符号数 低于等于/不高于,转移 CF=1或ZF=1 有进位(借位),转移 等于/为零,转移 OF=1 ZF=1 大于/不小于等于,转移 SF=OF且ZF=1 大于等于/不小于,转移 SF=OF 带符号数 小于/不大于等于,转移 SF≠OF且ZF=0 小于等于/不大于,转移 SF≠OF且ZF=1 无进位(借位),转移 不等于/不为零,转移 不溢出,转移 CF=0 ZF=0 OF=0 PF为“0\"/奇状态,转移 PF=0,PO成立 SF为“O”,转移 溢出,转移 SF=0 OF=1 PF为“1”/偶状态,转移. PF=1,PE成立 SF为“1”,转移 寄存器CX=O,转移 SF=1 CX=0

表2-6处理器控制指令

助记符 STC CLC CMC 标志位操作 STD CLD STI CLI HLT 外同步 WAIT ESC LOCK 空操作 NOP 功能 进位标志置1 进位标志置O 进位标志取反 方向标志置1 方向标志置O 中断允许标志置1 中断允许标志置O 暂停直至中断或复位 等待TEST信号有效 交权给外部处理机 在下一条指令期间封锁总线 空操作 表2-7串操作指令中寄存器和标志位的用途

寄存器/标志 SI DI DS ES CX 用途 源字符串的变址值(偏移量) 目的字符串的变址值(偏移量> 源字符串的段基值 目的字符串的段基值 重复次数计数器 SCAS指令的扫描值 AL/AX LODS指令的目的操作数 STOS指令的源操作数 ZF DF 扫描/比较结束标志 DF=O.SI,DI自动增量 DF=1.SI,DI自动减量

1. 设BL=0FFH,执行指令“SAR BL , 1”后,BL中的内容是(0FFH)。

2. 设SP=1300H,AX=200H,执行指令“POP AX”后,SP寄存器的内容为(1302H)。 3. 十进制数的-1的8位二进制补码,用十六进制数表示是(D)

A.01H B.8FH C.0FEH D.0FFH

MOV用法总结

非法操作:

1.两个操作数都是存储器操作数 2.src是立即数,dest是段寄存器 3.两个操作数都是段寄存器

MOV指令用法的举例:

MOV AX , CX ;段寄存器至通用寄存器 MOV AL , 125 ;立即数至寄存器

MOV MEM , 15 ;立即数至存储器,直接寻址 MOV SI , BX ;寄存器至寄存器

MOV DS , AX ;通用寄存器至段寄存器(CS不行) MOV [BX] , 50H ;立即数至存储器,寄存器间接寻址 MOV MEM , AX ;寄存器至存储器,直接寻址 MOV MEM , DS ;段寄存器至存储器,直接寻址 MOV ISP[BX] , CX ;寄存器至存储器,基址寻址 MOV AX , DISP[SI] ;存储器至寄存器,变址寻址 MOV DS , MEM ;存储器至段寄存器,直接寻址 MOV AX , DISP[BX] [SI] ;存储器至寄存器,基址变址寻址

标志位

1.CF:进位标志位。当进行加法或减法运算时,最高位发生进位或借位,CF=1;否则,CF=0。

2.PF:奇偶标志位。当运算结果的最低有效字节中“1”的个数为偶数时,PF=1;为奇数时,CF=0。

3.AF:辅助进位位。在减法或加法操作中,低4位向高4位有进位、借位发生时,AF=1;否则,AF=0。

4.ZF:零标志位。ZF=1表示运算结果为零;否则ZF=0。 5.SF:符号标志位。SF=1表示运算结果的最高位为1(即为负数);否则SF=0。 6.OF:溢出标志位。OF=1表示溢出,即算术运算的结果超出了带符号数的范围;OF=0表示未溢出。8位带符号数的范围是-128--+127,16位带符号数的范围是-32768--+32767.

7.TF:跟踪标志位。TF=1是CPU处于单步执行指令的工作方式。这种方式便于进行程序的调试。每执行一条指令后,便自动产生一次内部中断,从而能逐条地检查程序。

8.IF:中断允许标志位。IF=1使CPU可以响应可屏蔽中断请求。IF=0使CPU禁止响应可屏蔽中断请求。不可屏蔽中断和内部中断不受IF影响。

9.DF:方向标志位。DF=1字符串操作按地址递减进行;DF=0字符串操作按地址递增进行。

数据的寻址方式: 1.立即寻址

操作数直接在指令中给出。 例:MOV AL,50 2.寄存器寻址

指令的操作码是一个寄存器,操作数在这个寄存器中。

例:ADD AX,BX,将AX中的内容和BX中的内容相加后,结果送AX。 3.直接寻址

操作数在存储器中的地址在指令中直接给出。

例:ADD AX,[1000H],将存储单元1000H中的内容和AX中的内容相加后,结果送AX。

4.寄存器间接寻址

操作数的地址在寄存器中,其寄存器在指令中给出。

例:MOV AX,[SI],将寄存器SI中的内容作为访问存储器的某个单元的地址,然后取出地址中的操作数送入AX。 MOV [SI] ,BX

注:能使用的寄存器有四个:SI、DI、BX、BP。 5.变址寻址

是由指令提供基地址、变址寄存器提供偏移爨,此寻址方式面向用户,常用于访问

字符串、向量数据结构和循环程序设计。 例:MOV AX,[SI][1300H],EA=SI+13000H 注:能使用的寄存器有两个:SI或DI。 6.基址寻址

是由基址寄存器提供基准地址、指令提供偏移量;此寻址方式面向系统,由逻辑地

址空间到物理地址空间的变换提供支持,用以解决程序在存储器中再定位和扩大寻址空间问题。

例:MOV AX,[BX][1300H],EA=BX+13000H

注:能使用的寄存器有两个:BX或BP。 7.基址变址寻址

操作数的地址是程序计数器PC的值加上偏移量形成的,这个偏移量在指令中给出。

是一种特殊的变址寻址方式,偏移量用补码表示,可正可负。相对寻址可用较短的地址码访问内存。

例:MOV AX,[BX][1300H] [SI],EA=BX+13000H+SI

注:指令使用了BX,则段地址是DS;指令使用了BP,则段地址是SS。

1.变量定义X DW 12H,34H,执行MOV AX , X后,AX的值是(A) A.12H B.34H C.1234H D.3412H

2.设有变量定义伪指令X DB ‘2834’,则执行指令MOV AL , X后,AL的值是(A) A.’2’ B.’4’ C.’2834’ D.指令不能执行

3.由伪指令X DB 2 DUP(123,‘0’)定义的变量X占用的字节数是(B) A.2 B.4 C.6 D.8

4.设被测量温度的变化范围为-50℃--150℃,要求测量误差不超过±1℃,则应选用A/D转换器的分辨率至少应为(8)位。

5.某10位D/A转换器输出电压范围为0--5V,数字量200H对应的输出电压为(B) A.0.00V B.2.50V C.3.50V D.5.00V 6.指令MOV AX , 4 NE 3执行后,AX=(0FFFFH)。

7.设有数据定义A DW 1234H , 5678H,执行指令“MOV AX , A+1”后,AX中的内容是(D) A.1235H B.3456H C.5634H D.7812H 8.中断类型号为12H的中断向量的物理地址为(B) A.00012H--00015H B.00048H--0004BH C.00048H--00051H D.00072H--00075H 9.设有数据定义VAL DW , 1,2,3,4,5

则指令MOV AX , VAL+4执行后,AX的值为(0003H)

10.存放在内存物理地址0000H:0010H处的中断向量所对应的中断类型号是(B) A.0 B.4 C.10 D.10H

11.设有数据定义A DW 1234H , 5678H,执行指令“MOV AL , BYTE PTR A+1”后,AL中的内容是(A)

A.12H B.13H C.34H D.35H

12.设在内存00048H--0004BH单元中存储的内容依次为40H,23H,90H,78H,则指令“INT 12H”执行后,CS=(7890H)。

13.设某一ROM芯片的地址范围为00000H--003FFH,则该ROM芯片可寻址的存储单元有(A) A.1K个 B.2K个 C.4K个 D.8K个

14.伪指令X DW 2 DUP(‘0’,12)定义的变量X占用了(8)个字节。

15.某一中断服务程序的入口地址存放在中断向量表的0020H--0023H存储单元中,则该中断对应的中断类型码是(B)

A.05H B.08H C.10H D.20H

16.变量定义X DW 12H , 34H,执行指令“MOV AX , X”后,AX的值是(0012H)。

17.2716为2K*8位的EPPOM存储器,若其起始地址为0B000H,则该存储器的末地址为(0B7FFH)。

18.某8位D/A转换器输出电压的范围为0--5V,数字量40H对应的输出电压约为(B) A.1V B.1.25V C.2.5V D.4V

19.若要使8253的某一计数器工作在方式3,按二进制计数,使输出的方波频率为1KHz,当输入脉冲CLK为1MHz时,则该计数器应输入的计数初值为(A) A.1000 B.1024 C.2000 D.2048

20.某存储器系统采用部分译码法,有3条最高位地址线未参加地址译码,则译码输出所对应的地址范围是其所连接芯片容量的(D)

A.2倍 B.3倍 C.4倍 D.8倍

21.某2K*8位的EPPOM芯片采用全译码法与CPU连接,若为该芯片分配的起始地址为08000H,则分配给它的末地址为(0B7FFH)。

22.用512*4位的RAM芯片构成4KB的存储系统,需要改芯片的数量是(C) A.4片 B.8片 C.16片 D.32片

通用 段 索引 指针 指令 标志 AX(accumlator) BX(base) CX(count) DX(data) CS(code segment) SS(stack segment) DS(data segment) ES(extra segment) SI(source index) DI(destination index) SP(stack pointer) BP(base pointer) IP(instruction pointer) FR(flag register) 累加寄存器 基址寄存器 计数寄存器 数据寄存器 代码段寄存器 堆栈段寄存器 数据段寄存器 附加数据段寄存器 源变址寄存器 目的变址寄存器 堆栈指针寄存器 基址指针寄存器 指针指令寄存器 标志寄存器 存放偏移的寄存器 IP SP SI DI BP BX 默认的段寄存器 CS SS DS ES SS DS 默认的段寄存器*10+存放偏移的寄存器=物理地址

因篇幅问题不能全部显示,请点此查看更多更全内容

Top