8086常用指令列表

合集下载

8086指令表

8086指令表

8086指令表表2-2算术运算指令表2-4 串操作指令表2-5程序转移指令表2-7串操作指令中寄存器和标志位的⽤途1.设BL=0FFH,执⾏指令“SAR BL , 1”后,BL中的内容是(0FFH)。

2.设SP=1300H,AX=200H,执⾏指令“POP AX”后,SP寄存器的内容为(1302H)。

3.⼗进制数的-1的8位⼆进制补码,⽤⼗六进制数表⽰是(D)A.01HB.8FHC.0FEHD.0FFHMOV⽤法总结⾮法操作: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。

8086汇编指令大全.

8086汇编指令大全.
不影响标志位
不允许寄存器或存储单元到除CS外的段寄存器
2入栈(出栈指令PUSH (POP
注意:
PUSH操作数不能是“立即数” POP操作数不能是段寄存器
CS
不影响标志位
先进后出
单操作符
3交换指令XCHG
注意:
只允许寄存器与存储单元之间的交换
不影响标志位
4换码指令XLAT
5地址传送指令LEA :偏移地址
ZF=0
SF符号标志位
OF溢出标志位
DF方向标志位
IF中断允许位IF=1时响应外部中断
TF跟踪标志位
操作数:[目的操作数(OPD ,源操作数(OPS ] ;立即操作数,寄存器操作数,存储器操作数。寻址方式:
1寄存器寻址例:INC AX ; MOV AX , BX
2寄存器间接寻址(寄存器只能是BX , DI , SI , BP ; [PA=(BX、DI、SI +DS》4或BP+SS》4]
6数据段指针送寄存器LDS :低地址的字送指定的通用寄存器(SI、高地址的字
送DS
7附加段指针送寄存器指令LES :与LDS相似,低地址的字送通用寄存器(DI、高
地址送ES
上三指令不影响标志位
8标志寄存器传送指令
LAHF :标志寄存器低八位送
AH
SAHF :AH送标志寄存器低八位
PUSHF :标志寄存器压入堆栈
标志寄存器:9个有效位,分6个状态寄存器和3个控制寄存器
CF当执行一个加法(减法使最高位产生进位(借位时CF=1否则
CF=0
PF指令执行的结果低8位有偶数个一时, CF=1否则
CF=0
AF当执行一个加法(减法使运算结果低4位向高4位有进位(借位时AF=1否则

8086指令

8086指令

8086指令1.数据传送指令
(1)通用传送指令
(2)累加器专用传送指令
(3)地址传送指令
2.算术运算指令
(2)减法指令
(5)符号扩展指令
(6)十进制调整指令
3.逻辑运算和移位指令(1)逻辑运算指令
(2)移位指令
注:OPR不能为立即数和段寄存器,若CNT大于1,应先将CNT存入CL寄存器中,移位指令中CNT写为CL即可。

4.串操作指令
(1)重复前缀指令
(2)串传送指令
(3)串比较指令
5.控制转移指令
(1)无条件转移指令
(2)条件转移指令
①简单条件转移指令(根据某一标志位的值决定是否有转移,测试的标志位有S、Z、C、P、O 5个,每个标志位可能取“0”和“1”,共10条)
②无符号数比较条件转移指令
③有符号数比较条件转移指令
④测试CX的值为0则转移的指令
(3)子程序调用和返回指令
(4)循环控制指令
(5)中断指令
6.处理机控制指令
(2)其他处理机控制指令
7.伪指令
(1)数据定义伪指令
(2)分析运算符
(3)属性操作符
(4)符号定义指令
(5)地址计数器与对准伪操作
(6)宏与过程(子程序)的定义和调用。

8086汇编指令

8086汇编指令
5>处理器控制指令 T`| >oX
HLT 处理器暂停, 直到出现中断或复位信号才继续. O MN|ea.O
WAIT 当芯片引线TEST为高电平时使CPU进入等待状态. &ET PYf %#
ESC 转换到外处理器. Kl+4 A} Uo
LOCK 封锁总线. %'[ pucEF
NOP 空操作. bn"z&g
POPD 32位标志出栈. @A6 iY
二、算术运算指令 J 299 mgB
ADD 加法. (RI)<zaK ;
ADC 带进位加法. ~+ {*KPiD
INC 加 1. oO;L l? ~
AAA 加法的ASCII码调整. At@0G\^
DAA 加法的十进制调整. '| g sm O
STC 置进位标志位. y O?52YO
CLC 清进位标志位. *Ja,3Q q
CMC 进位标志取反. J~rjI 24
STD 置方向标志位. .2 ST Bh.;
CLD 清方向标志位. G X>T~i\f8
STI 置中断允许位. t M{U6 k
CLI 清中断允许位. z`rW2UO#a`
JO 溢出转移. PW -s F
JP/JPE 奇偶性为偶数时转移. ,,V uv n
JS 符号位为 "1" 时转移. E J Ta ~
3>循环控制指令(短转移) aDX 4 }`u
LOOP CX不为零时循环. I, ?!N zB
LOOPE/LOOPZ CX不为零且标志Z=1时循环. ; 5!8LmZ0#
XADD 先交换再累加.( 结果在第一个操作数里 ) PK +sGV

8086常用指令表

8086常用指令表

8086/8088常用助记符指令类型助记符目的源功能注释数据传送MOV X X 把数据从源操作数传送到目的操作数1.两个操作数不能同时为内存操作数,也不能同时为立即数,目的操作数不能为立即数2两个操作数的类型须一致3立即数不能直接传入段寄存器4CS,IP不能作目的操作数5段寄存器之间不能直接传送PUSH X把指定的寄存器/内存单元的内容压入堆栈1.按字操作,CS能入栈内存不能直接寻址.P-2→SP,再写入栈顶POP X从栈顶弹出一字到指定的寄存器/内存单元1.同上2.先弹出一字,再SP-2→SP XCHG 寄寄/内两操作数互换内容不能用立即数和段寄存器XCHG 寄指定寄存器同累加器互换内容IN AC 端口号从指定端口送数到AL端口号为立即数,地址为8位端口号在DX中,地址为16位OUT 端口号 AL从AL送数到指定端口LEA 寄内存LDS 寄内存LES 寄内存把内存偏址送指定寄存器把内存低2字节送寄存器,高2字节送DS(ES)只能用通用寄存器,不能用段寄存器LAHF把标寄低8位送AHSAHF把AH送标寄低8位PUSHF标寄入栈POPF栈顶弹出进标寄算术运算ADD X X加法(和送目的操作数)加减1.2.同MOV3.段寄存器不能作操作数4.调正在AL中进行,并必需紧跟在运算之后执行.5.比较运算同减法,结果不存,而仅影响标志寄存器6.乘除法的目的操作数隐含是ACAL*乘数→AX, AX*乘数→DX AX,AX/除数→AL, 余数在AH中DXAX/除数→AX, 余数在DX中7.加1减1指令把操作数当无符号数,其他加减指令是否为有符号数要由程序设计需要设定ADC X X带进位加法INC X 指定的寄/内的内容加1AAA分离BCD码调正(AL)DAA组合BCD码调正(AL)SUB X X减法SBB X X带借位减法DEC X指定的寄/内的内容减1NEG X指定的寄/内的内容求补CMP X X 比较AAS分离BCD码调正(AL)DAS组合BCD码调正(AL)MUL 寄/内不带符号乘法IMUL 寄/内带符号整数乘法AAM 分离BCD码调正(AL)DIV 寄/内不带符号除法IDIV 寄/内带符号整数除法AAD非组合BCD码调正CBW扩展AL中的符号位到AHCWD扩展AX中的符号位到DX类型助记符目的源功能注释逻辑运算NOT X 对字或字节按位取反 1.2.3同上4.按位操作5.AND1不变(保持),AND0置0OR1置1,OR0不变(保持)自身与或,结果不变(保持),影响标志位, 自身XOR常用于清零XOR 1取反,XOR 0不变AND X X对字或字节按位与操作OR X X 对字或字节按位或操作XOR X X对字或字节按位异或操作TEST X X同AND,但结果仅影响标寄而不存目的操作数移位和循环移位SHL 寄/内 1/CL按位左移 CF←M←0 1.循环或移位的次数为1或CL中的数2.SHL一次,原数乘2SHR一次,原数除23.目的操作数不能是立既数SAL 寄/内 1/CL按位左移 CF←M←0SHR 寄/内 1/CL逻辑右移 0→M→CFSAR 寄/内 1/CL算术右移→M→CFROL 寄/内 1/CL循环左移 CF← ←M ←ROR 寄/内 1/CL循环右移 CF← →M →RCL 寄/内 1/CL带进位循环左移←CF←M←RCR 寄/内 1/CL带进位循环右移→CF→M→重复前缀REP重复后面字串指令,直到CX=0一般与字串指令联合使用REPE/REPZ当相等/为零时重复REPNE/REPNZ当不相等/不为零时重复MOVSB/MOVSW字符串传送 1.源串偏址在SI中,目的串偏址在DI中.2.每次自动修改SI,DI 内容3.装入和存储是对AX(AL)操作CMPSB/CMPSW字符串比较SCASB/SCASW字符串扫描LODSB/LODSW字符串装入STOSB/STOSW字符串存储转移JMP X无条件转移到指定内存地址操作数前可带NEAR或FAR前缀条件转移(无符号数)JA/JNBE X高于/不低于,不等于由比较和减法指令的结果JA/JNBE 表示二者等价JAE/JNB X大于等于/不低于JB/JNAE X低于/不高于,不等于TBE/JNA X低于等于/不高于条件转移(带符号数)JG/JNLE X大于/不小于等于JGE/JNL X大于等于/不小于JL/JNGE X小于/不大于不等于JLE/JNG X小于等于/不大于条件转移JE/JZ X等于/为零JNE/JNZ X不等于/不为零条件转移JC/JNC X有进位CF=1/无进位CF=0由影响标志位的操作结果JC/JNC表示二者是两个不同用法JO/JNO X有溢出OF=1/无溢出OF=0JP/JPE X奇偶性为偶PF=1JNP/JPO X奇偶性为奇PF=0JS/JNS X符号位为1/符号位为0FR15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0OF DF IF TF SF ZF AF PF CF 溢出方向符号零半进位奇偶进位类型助记符目的源功能注释LOOP X[CX]-1→[CX],[CX]≠0转移到X由CX决定循环次数循环LOOPZ/LOOPE X [CX]-1→[CX],[CX]≠0且ZF=1转移到X为零/相等时循环LOOPNZ/LOOPNE X[CX]-1→[CX],[CX]≠0且ZF=0转移到X非零/不相等时循环JCXZ X [CX]=0转移到X调用返回CALL 过程名调用指定地址开始的子程序对标寄无影响注意用堆栈保护断点RET子程返回RET XRETF标志操作CLC CF=0 (进位)STC CF=1CMC CF取反CLD DF=0 (方向)STD DF=1CLI IF=0 (中断)STI IF=1HLT暂停ESC交权INT 21H DOS功能调用AH=1键盘输入到AL,AH=2显示DL内容,AH=9显示DX为偏移量以$结尾的内存字串NOP空操作3个时钟伪指令功能特征符号 EQU 符号/表达式把右边的值赋予左边的符号1.不产生目标代码,不分配内存单元2.在同一源程序中同一符号不能用EQU重定义,可用=重定义符号=符号/表达式变量名 DB 表达式1,表达式2…. DWDD 定义字节(或字、双字)1.要求汇编分配内存单元,并把表达式1,表达式2…等存入2.为变量名分配这些内存单元的首字节地址段名SEGMENT [定位] [组合]['类别名'] :段名 ENDS 定义逻辑段定位隐含PARA,表示能被16整除ASSUME 段寄名:段名,段寄名:段名,….告诉汇编已定义的段与段寄的关系不产生目标代码,不分配内存单元,不为段寄存器存放段基值过程名 PROC [NEAR/FAR]:RET过程名 ENDP构造子程序最后语句RET不能少ORG 表达式定义下一个数据或指令的偏移量$表示偏移量的现行值宏名 MACRO 形参1,形参2,….ENDM宏定义宏名实参1,实参2,….宏调用一.指令由名字,操作码、操作数(地址)组成。

8086常用指令

8086常用指令
JMP FAR 变CS。执行操作为(IP)<-OPR的段内偏移地址;(CS)<-OPR所在段的段地址
JMP DWORD PTR OPR:执行的操作为(IP)<-(EA);(CS)<-(EA+2)
JMP指令不影响条件码。
四、标志寄存器传送指令
LAHF:Load AH with Flags
SAHF:Store AH into Flags
PUSHF/PUSHFD:标志位进栈
POPF/POPFD:标志位出栈
五、类型转换指令
CBW:字节转为字
CWD:字转为双字
CDQ:双字转4字
BSWAP:字节交换
REP指令:格式为:REP <串处理指令>,如REP INS等。执行规则是和循环类似,当CX=0时退出重复。由于这些串处理指令都只一次处理一个单位的数据,因此一般都需要与REP指令结合起来实现批量的数据传送。
结合REP指令的串处理指令用法实例: 若mess1,mess2是data段中指定的两个字符串,其中mess1在data中,为源串;mess2在extra中,为目的串
十四、条件转移指令
对单个条件标志比较,并由结果转移
JZ(JE):当结果为0或相等则跳转。相反:JNZ(JNE);
JS:当结果为负则跳转。相反:JNS;
JO:当溢出则跳转。相反:JNO;
JP(JPE):当奇偶位为1则跳转。相反:JNP(JPO);
JB(JNAE):当低于或CF=1则转移。相反:JNB(JAE),不低于则转移;
lea di,mess2;赋予目的变址DI
mov cx,17;指定重复次数
CLD;方向标志置零(从左向右扫描)

8086指令大全

8086指令大全

80X86 汇编指令符号大全+、-、*、/∶算术运算符。

&∶宏处理操作符。

宏扩展时不识别符号和字符串中的形式参数,如果在形式参数前面加上一个& 记号,宏汇编程序就能够用实在参数代替这个形式参数了。

$∶地址计数器的值——记录正在被汇编程序翻译的语句地址。

每个段均分配一个计数器,段内定义的所有标号和变量的偏移地址就是当前汇编地址计数器的值。

?∶操作数。

在数据定义语句中,操作数用?,其作用是分配并保留存储空间,但不存入确定的数据。

=∶等号伪指令——符号定义。

对符号进行定义和赋值,功能与 EQU相似,但允许(重复)再定义。

:∶修改属性运算符(操作符)——段操作符。

用来临时给变量、标号或地址表达式指定一个段属性(不用缺省的段寄存器),自动生成一个“跨段前缀字节”。

注意,段寄存器CS和ES不能被跨越,堆栈操作时也不能跨越SS。

;∶注释符号。

%∶特殊宏操作符,用来将其后的表达式(通常是符号常数,不能是变量名和寄存器名)转换成它所代表的数值,并将此数值的ASCII码嵌入到宏扩展中。

( )∶1.运算符——用来改变运算符的优先级别。

2.教材符号,表示括号内存储单元(或寄存器)的内容。

< >∶宏调用时用来将带间隔符(如空格,逗号等)的字符串(作为实参)括起来。

[ ]∶1.运算符。

方括号括起来的数是数组变量的下标或地址表达式。

带方括号的地址表达式必须遵循下列原则,①只有BX、BP、SI、DI这四个寄存器可在方括号内出现;②BX或BP可单独出现在各方括号中,也可以与常数、SI或DI一起出现在方括号内,但不允许BX和BP出现在同一个方括号内;③SI和DI可以单独出现在各方括号内,也可以与常数、BP或BX一起出现在方括号内,但不允许SI和DI出现在同一个方括号内;④一个方括号内包含多个寄存器时,它们只能作加法运算;⑤若方括号内包含基址指针BP,则隐含使用堆栈段寄存器SS提供段基址,否则均隐含使用数据段寄存器DS提供段基址。

8086汇编指令集

8086汇编指令集

机设08-4班8086汇编指令集数据传送类(14条)MOV PUSH POP XCHG XLAT LEA LDS LES LAHF SAHF POPF IN OUT PUSHF算术运算类(20条)ADD ADC INC SUB SBB DEC NEG CMP MU L IMUL DIV IDIV CBW CWD DAA DAS AA A AAS ASM AAD逻辑运算类(13条)AND OR NOT XOR TEST SHL SAL SHR SAR ROL ROR RCL RCR控制转移类(26条)JMP JC/JB JNC/JNB JP/JNP JS/JNS JZ/JNZ J O/JNO JCXZJBE/JNBE JL/JNL JLE/JNLE LOOP/LOOPE LO OPNZ CALL RET INT INTO IRET处理机控制类(12条)CLC CMC STC CLD STD CLI STI( NOP HCT WAIT ESC LOCK )串操作类指令(14条)REP MOVSB REP MOVSW REP LOOSB REP LOOSWREP STOSB REP STOSW REPZ CMPSB REPZ CMPSWREP SCASB REPZ SCASW REPZCMPSB REPNZ CMPSWREPNZ SCASB REPNZ SCASW 数据传递类指令1. 通用数据传递类(1)数据传递指令MOV(书P69)使用MOV指令注意以下几点:a) MOV指令不允许在两个存储单元之间直接传递数据b) MOV指令不允许在两个段寄存器之间直接传递数据c) MOV指令不允许用立即数为段寄存器赋值d) MOV指令不影响标志位(2)堆栈操作指令(书P70)a) PUSH入栈指令功能:将寄存器、段寄存器或存储器中的一个字数据压入7堆栈中。

b) POP出栈指令功能:将堆栈栈顶的内容弹入寄存器、段寄存器或存储器中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档