1、 附录B 8086/8088汇编语言指令表 助记符 类别 指令格式 操 作 ODITSZAPC MOV MOV dst, src 从src确定的位置取出源操作数,或把立即数形式的src作为源操作数,送到目的操作数dst确定的位置 - - - - - - - - - PUSH PUSH src 把字操作数src入栈 - - - - - - - - - POP POP dst 出栈一个字数据,送到操作数dst确定的位置 - - - - - - - - - XCHG XCHG 把dst、src两个操作数中的内容互换 - - - - - - - - - XLAT XLAT 以BX+AL的和作为偏移地址
2、,从数据段相应位置取出一个字节数据送AL寄存器 - - - - - - - - - LEA LEA dst, src 取操作数src在内存的偏移地址,送到dst确定的位置 - - - - - - - - - PUSHF PUSHF 把标志寄存器FLAGS入栈 - - - - - - - - - POPF POPF 出栈一个字数据,送到标志寄存器FLAGS中 r r r r r r r r r IN IN AL, src IN AX, src 从src指定的外设端口取出一个字节数据送到AL;或从 src 指定的外设端口及其下一端口取一个字数据送到AX中 - - - - - - - - - OUT
3、 数据 传送 OUT dst, AL OUT dst, AX 把AL的值送到dst指定的外设端口;或把 AX的值送到dst指定的外设端口及其下一端口 - - - - - - - - - ADD ADD dst, src 把两个操作数的值相加,结果送到dst操作数确定的位置 x - - - x x x x x ADC ADC dst, src 把两个操作数及CF标志位的值三者相加,结果送到dst操作数确定的位置 x - - - x x x x x INC INC opr 把opr的值加1后送回opr中 x - - - x x x x - SUB SUB dst, src 把dst减去src的差送
4、回操作数dst中 x - - - x x x x x SBB SBB dst, src 把dst减去src的差再减去CF的值,结果送回操作数dst中 x - - - x x x x x DEC DEC opr 把操作数opr的值减1送回opr中 x - - - x x x x - NEG NEG opr 对操作数opr的值取反加1后送回opr中 x - - - x x x x x CMP CMP dst, src 用dst减去src,根据相减情况设置各条件标志位 x - - - x x x x x MUL MUL src 无符号乘法:AL乘以字节操作数src,乘积送到AX中;或AX乘以字操作数
5、src,乘积送到(DX,AX)中 x - - - u u u u x IMUL 算术 运算 IMUL src 带符号乘法:AL 乘以字节型操作数 src,乘积送到AX 中;或 AX 乘以字型操作数 src,乘积送到 (DX,AX)中 x - - - u u u u x 附录B 8086/8088汇编语言指令表 417 417 (续) 助记符 类别 指令格式 操 作 O D I T S Z A P C DIV DIV src 无符号除法:AX 除以 src,商送 AL,余数送AH;或(DX,AX)除以src,商送AX,余数送DX u - - - u u u u u IDIV IDIV src 带
6、符号除法:AX除以src,商送 AL,余数送AH;或(DX,AX)除以src,商送 AX,余数送DX u - - - u u u u u DAA DAA 把AL中的和调整到压缩的BCD格式 u - - - x x x x x DAS DAS 把AL中的差调整到压缩的BCD格式 u - - - x x x x x AAA AAA 把AL中的和调整到非压缩的BCD格式,AH加调整产生的进位值 u - - - u u x u x AAS AAS 把AL中的差调整到非压缩的BCD格式,AH减调整产生的借位值 u - - - u u x u x AAM AAM 把AH中的积调整到非压缩的BCD格式 u
7、- - - x x u x u AAD 算 术 运 算 AAD 实现除法的非压缩BCD码调整 u - - - x x u x u AND AND dst, src 两个操作数按各个二进制位进行逻辑与运算,结果送回dst中 0 - - - x x u x 0 OR OR dst, src 两个操作数按各个二进制位进行逻辑或运算,结果送回dst中 0 - - - x x u x 0 NOT NOT opr 对opr的各个二进制位取反,结果送回opr - - - - - - - - - XOR XOR dst, src 两个操作数按各个二进制位进行逻辑异或运算,结果送回dst中 0 - - - x
8、x u x 0 TEST 逻 辑 运 算 TEST dst, src 两个操作数按各个二进制位进行逻辑与运算,用g16757算结果设置标志位 0 - - - x x u x 0 SHL SAL SHL dst, src 把dst的各个二进制位g2533g5050移g2172src位,g2503g17805g12366位g3647 0,结果送回 dst,g7380后移出的一位送CF 0 - - - x x u x x SHR SHR dst, src 把dst的各个二进制位g2533g2503移g2172src位,g5050g17805g12366位g3647 0,结果送回dst,g7380后移
9、出的一位送CF 0 - - - x x u x x SAR 移 位 SAR dst, src 把dst的各个二进制位g2533g2503移g2172src位,g5050g17805g12366位g3647g2419数g7380g20652位的值,结果送回dst,g7380后移出的一位送CF 0 - - - x x u x x ROL g5502 g10627 移 位 ROL dst, src 把dst的各个二进制位g2533g5050移g2172src位,从g5050g17805移出的位再g1393g8437移到g2503g17805各g12366位g990,结果送回dst,g7380后移出的
10、一位送CF x - - - - - - - x 微机原理及接口技术 418 418 (续) 助记符 类别 指令格式 操 作 O D I T S Z A P C ROR ROR dst,src 把dst的各个二进制位g2533g2503移g2172src位,从g2503g17805移出的位再g1393g8437移到g5050g17805各g12366位g990,结果送回dst,g7380后移出的一位送CF x - - - - - - - x RCL RCL dst, src 把dst的各个二进制位与CFg13864g2524在一g17227g2533g5050移g2172src位,从g5050g
11、17805移出的位再g1393g8437移到g2503g17805各g12366位g990 x - - - - - - - x RCR g5502 g10627 移 位 RCR dst, src 把dst的各个二进制位与CFg13864g2524在一g17227g2533g2503移g2172src位,从g2503g17805移出的位再g1393g8437移到g5050g17805各g12366位g990 x - - - - - - - x MOVS MOVSB 或 MOVSW DS段SIg6164指的一个字节/字送到ES段DIg6164指g3800,g5194根据DF标志位调整SI和DI,g
12、1363其指g2533下一数据 - - - - - - - - - STOS STOSB 或 STOSW 把AL/AX的值送到ES段DIg6164指g3800,g5194根据DF标志位调整DI,g1363其指g2533下一数据 - - - - - - - - - LODS LODSB 或 LODSW 从 DS 段 SI g6164指g3800取一个字节/字送到AL/AX 中,g5194根据DF标志位调整SI,g1363其指g2533下一数据 - - - - - - - - - CMPS CMPSB 或 CMPSW DS段SIg6164指的一个字节/字与到ES段DIg6164指数据相减,结果设置
13、条件标志位,g5194根据 DF标志位调整SI和DI,g1363其指g2533下一数据 x - - - x x x x x SCAS SCASB 或 SCASW AL/AX减去ES段DIg6164指g2533的数据,结果设置条件标志位,g5194根据 DF 标志位调整DI,g1363其指g2533下一数据 x - - - - - - - x REP REP与CMPS、SCASg18209g2524g1363用,g5415CXg993为 0g18337g3809g6203行g1030指令 REPZ REPE REPZ 与 CMPS、SCAS g18209g2524g1363用,g5415 CXg
14、993为0g1000ZF为1g7114g18337g3809g6203行g1030指令 REPNZ REPNE g1030 操 作 REPNZ与CMPS、SCAS g18209g2524g1363用,g5415CXg993为0g1000ZF为0g7114g18337g3809g6203行g1030指令 JMP JMP label g17728到labelg3800g13499续g6203行 - - - - - - - - - JZ JE JZ label g14521ZF为1,g17728到labelg3800g13499续g6203行 - - - - - - - - - JNZ JNE JN
15、Z label g14521ZF为0,g17728到labelg3800g13499续g6203行 - - - - - - - - - JS g17351 g17728 JS label g14521SF为1,g17728到labelg3800g13499续g6203行 - - - - - - - - - 附录B 8086/8088汇编语言指令表 419 419 (续) 助记符 类别 指令格式 操 作 O D I T S Z A P C JNS JNS label g14521SF为0,g17728到labelg3800g13499续g6203行 - - - - - - - - - JO JO
16、 label g14521OF为1,g17728到labelg3800g13499续g6203行 - - - - - - - - - JNO JNO label g14521OF为0,g17728到labelg3800g13499续g6203行 - - - - - - - - - JC JB JNAE JC label g14521CF为1,即无符号数g8616g17751的g4579g1122,g17728到labelg3800g13499续g6203行 - - - - - - - - - JNC JNB JAE JNC label g14521CF为0,即无符号数g8616g17751的g
17、993g4579g1122,g17728到labelg3800g13499续g6203行 - - - - - - - - - JBE JNA JBE label g14521CF为1或ZF为1,即无符号数g8616g17751的g4579g1122或g12573g1122,g17728到labelg3800g13499续g6203行 - - - - - - - - - JNBE JA JNBE label g14521CF为0g1000ZF为0,即无符号数g8616g17751的g3835g1122,g17728到labelg3800g13499续g6203行 - - - - - - - -
18、- JL JNGE JL label g14521SF与OFg993g2528,即带符号数g8616g17751的g4579g1122,g17728到labelg3800g13499续g6203行 - - - - - - - - - JNL JGE JNL label g14521SF与OF相g2528,即带符号数g8616g17751的g3835g1122或g12573g1122,g17728到labelg3800g13499续g6203行 - - - - - - - - - JLE JNG JLE label g14521SF与OFg993g2528,或者ZF为1,即带符号数g8616g1
19、7751的g4579g1122或g12573g1122,g17728到label g3800g13499续g6203行 - - - - - - - - - JNLE JG JNLE label g14521SF与OF相g2528,g1000ZF为1,即带符号数g8616g17751的g3835g1122,g17728到labelg3800g13499续g6203行 - - - - - - - - - JCXZ JCXZ label g14521CX为0,g2029g17728到labelg3800g13499续g6203行 - - - - - - - - - LOOP LOOP label g
20、1820把CX的值减1后回送CX,再g2040g7041g5415CXg993为0g7114g17728到labelg3800g13499续g6203行 - - - - - - - - - LOOPZ LOOPE LOOPZ label g1820把CX的值减1后回送CX,再g2040g7041g5415CXg993为0g1000ZF为1g7114g17728到labelg3800g13499续g6203行 - - - - - - - - - LOOPNZ LOOPNE g17351 g17728 LOOPNZ label g1820把CX的值减1后回送CX,再g2040g7041g5415C
21、Xg993为0g1000ZF为0g7114g17728到labelg3800g13499续g6203行 - - - - - - - - - CALL g4388g12255g5219 CALL dst 根据g4388g12255g5219的类型g7171NEARg17836g7171FAR,把IP或CS及IP入栈,g17728到g4388g12255g5219g13499续g6203行 - - - - - - - - - 微机原理及接口技术 420 420 (续) 助记符 类别 指令格式 操 作 O D I T S Z A P C RET g4388 g12255 g5219 RET n NE
22、AR型g4388g12255g5219中的RETg4570出栈一个字g13485 IP,FAR型g4388g12255g5219中的RETg4570出栈两个字g1393g8437g13485IP和CS;操作数n指g7138出栈后再把SP的值加n - - - - - - - - - INT INT n 把标志寄存器FLAGS、CS、IPg1393g8437入栈,g9177IF和TF标志位,g17728n号中g7041g7393g2165g12255g5219g6203行 - - 0 0 - - - - - INTO INTO 把标志寄存器FLAGS、CS、IPg1393g8437入栈,g9177
23、IF和TF标志位,g177284号中g7041g7393g2165g12255g5219g6203行 - - 0 0 - - - - - IRET 中g7041 IRET 出栈3个字,g1393g8437送IP、CS、标志寄存器FLAGS r r r r r r r r r CBW CBW g14521ALg7380g20652位为0,g2029把 AHg91770,g2554g2029把0FFH送AH - - - - - - - - - CWD 符号 g6205g4649 CWD g14521AXg7380g20652位为0,g2029把 DXg91770,g2554g2029把0FFFFH
24、送DX - - - - - - - - - CLC CLC 把CF标志位g91770 - - - - - - - - 0 STC STC 把CF标志位置1 - - - - - - - - 1 CMC CMC 对CF标志位取反 - - - - - - - - x CLD CLD 把DF标志位g91770 - 0 - - - - - - - STD STD 把DF标志位置1 - 1 - - - - - - - CLI CLI 把IF标志位g91770 - - 0 - - - - - - STI 标 志 位 g6523 制 STI 把IF标志位置1 - - 1 - - - - - - NOP NOP
25、 g12366指令,g993g1582g1231g1321操作 - - - - - - - - - HLT HLT g1584g7438 - - - - - - - - - WAIT WAIT g12573g5465 - - - - - - - - - ESC ESC 换码 - - - - - - - - - LOCK g3800 g10714 器 g6523 制 g4565g19157段g2081g13524 - - - - - - - - - 注:(1) 表中只列出的是本书涉及到的指令,对于 8086/8088 而言,除了表中列出的指令外,还有一些不太常用的指令。 (2) 影响标志位的符号说明: 0 清 0; 1 置 1; x 根据结果设置; u 无定义; - 不影响;r恢复原先保存的值。 (3) opr操作数;src源操作数;dst目的操作数。