版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、8086的指令系统-六大类指令和数 据传送类指令1 3.2 8086的指令系统的指令系统 8086的指令系统-六大类指令和数 据传送类指令2 六大类指令六大类指令 1 数据传送类指令数据传送类指令 2 算术运算类指令算术运算类指令 3 逻辑运算与移位指令逻辑运算与移位指令 4 串操作指令串操作指令 5 控制转移类指令控制转移类指令 6 处理器控制类指令处理器控制类指令 8086的指令系统-六大类指令和数 据传送类指令 二、算术运算指令二、算术运算指令 加法运算指令加法运算指令 减法运算指令减法运算指令 乘法指令乘法指令 除法指令除法指令 算术运算指令的执行大多算术运算指令的执行大多 对状态标志
2、位会产生影响对状态标志位会产生影响 8086的指令系统-六大类指令和数 据传送类指令 1. 加法指令加法指令 普通加法指令普通加法指令ADD 带进位位的加法指令带进位位的加法指令ADC 加加1指令指令INC a.加法指令对操作数的要求与加法指令对操作数的要求与MOV指令相同指令相同 b.段寄存器不能作为加法指令的操作数段寄存器不能作为加法指令的操作数 8086的指令系统-六大类指令和数 据传送类指令 (1)普通加法指令)普通加法指令ADD n格式:格式: ADD OPRD1,OPRD2 n操作:操作: OPRD1 OPRD1+OPRD2 8086的指令系统-六大类指令和数 据传送类指令 (1)
3、普通加法指令)普通加法指令ADD a、源操作数和目标操作数均可以是、源操作数和目标操作数均可以是8或或16位位 b、可以是寄存器操作数、存储器操作数,、可以是寄存器操作数、存储器操作数, 或立即数或立即数 c、可以是有符号数或无符号数、可以是有符号数或无符号数 要求:要求:OPRD1只能用寄存器和存储单元,只能用寄存器和存储单元, OPRD2 可以为立即数。两个操作数不能同时为存储器,且可以为立即数。两个操作数不能同时为存储器,且 类型必须一致,即都是字节或字。类型必须一致,即都是字节或字。 ADD指令的执行对全部指令的执行对全部6个状态标志位都产生影响个状态标志位都产生影响 8086的指令系
4、统-六大类指令和数 据传送类指令 例子例子 ADD CL,20H ADD AX,SI ADD BX,AL ADD DX,BX+SI ADD SI,DI 不允许两个操作数都是存储器不允许两个操作数都是存储器 ADD DS,AX 不允许把段寄存器作为操作数不允许把段寄存器作为操作数 8086的指令系统-六大类指令和数 据传送类指令 0 1 1 1 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 标志位状态:标志位状态: CF= 1 PF= 1 (偶数偶数) AF= 1 ZF= 0 SF= 0 OF= 0 例:例: MOV AL,78H ADD AL,99H 指令
5、执行后,指令执行后, 6个状态标志位个状态标志位 的状态?的状态? + D7 D6D5D4 D3 D2D1D0 8086的指令系统-六大类指令和数 据传送类指令9 相加的数据通常根据编程者的意图,规定相加的数据通常根据编程者的意图,规定 为为 带符号数或无符号数。带符号数或无符号数。 对于无符号数,对于无符号数, CF置置1,表示溢出。,表示溢出。 对于带符号数,对于带符号数, OF置置1,表示溢出。,表示溢出。 8086的指令系统-六大类指令和数 据传送类指令 (2)带进位位的加法指令)带进位位的加法指令ADC n格式:格式: ADD OPRD1,OPRD2 n指令的操作:指令的操作: OP
6、RD1 OPRD1+OPRD2+CF n指令格式、对操作数的要求、对标志位的影响与指令格式、对操作数的要求、对标志位的影响与 ADD指令完全一样指令完全一样 nADC指令多用于多字节数相加。指令多用于多字节数相加。 MOV AL,7EH (设(设CF=1 ) ADD AL,0ABH ; 结果:(结果:(AL)=7EH+0ABH+1=2AH, CF=1 8086的指令系统-六大类指令和数 据传送类指令 例:求两个例:求两个4字节无符号数字节无符号数 0107A379 + 10067E4F 的和的和 MOV AX, 0A379H MOV CX, 7E4FH MOV BX,1006H MOV DX,
7、 0107H ADD AX,CX 结果:(结果:(AX)=21C8H,CF 1 ADC DX,BX 结果结果 (DX)=110EH,CF=0 8086的指令系统-六大类指令和数 据传送类指令 (3)加)加1指令指令INC n格式:格式: INC OPRD n操作:操作: OPRD OPRD+1 常用于在程序中修改地址指针常用于在程序中修改地址指针 INC指令不影响指令不影响CF标志位;标志位; 影响影响AF、OF、PF、SF和和ZF状态位。状态位。 不能是段寄存器不能是段寄存器 或立即数或立即数 8086的指令系统-六大类指令和数 据传送类指令 INC AX ; AX AX+1 INC BYT
8、E PTRSI ;将;将SI内容为偏移地内容为偏移地 址的存储单元的内容址的存储单元的内容+1,结果送至该,结果送至该 单元单元 8086的指令系统-六大类指令和数 据传送类指令 8086的指令系统-六大类指令和数 据传送类指令 2. 减法指令减法指令 不考虑借位的减法指令不考虑借位的减法指令SUB 考虑借位的减法指令考虑借位的减法指令SBB 减减1指令指令DEC 求补指令求补指令NEG 比较指令比较指令CMP 减法指令对操作数的要求减法指令对操作数的要求 与对应的加法指令相同与对应的加法指令相同 8086的指令系统-六大类指令和数 据传送类指令 (1)不带借位的减法指令不带借位的减法指令SU
9、B n格式:格式: SUB OPRD1,OPRD2 n操作:操作: OPRD1 OPRD1- OPRD2 n对标志位的影响与对标志位的影响与ADD指令相同指令相同 SUB BL,30H ; BL BL-30H SUB AL,BP+SI ; AL AL-SS: BP+SI 8086的指令系统-六大类指令和数 据传送类指令 (2)带借位的减法指令带借位的减法指令SBB指令指令 n指令格式指令格式 SBB OPRD1 OPRD2 n指令的操作:指令的操作: OPRD1 OPRD1- OPRD2- CF SBB BL,30H SBB AL,BP+SI 8086的指令系统-六大类指令和数 据传送类指令
10、(3)减)减1指令指令DEC n格式:格式: DEC OPRD n操作:操作: OPRD OPRD - 1 n指令对操作数的要求与指令对操作数的要求与INC相同相同 n指令常用于在程序中修改计数值指令常用于在程序中修改计数值 DEC AX DEC BL DEC BYTE PTRDI ;将数据段将数据段DI所指单元所指单元 的内容减的内容减1,结果返回该单元中,结果返回该单元中 8086的指令系统-六大类指令和数 据传送类指令 (4)求补指令)求补指令NEG n格式:格式: NEG OPRD n操作:操作: OPRD 0 - OPRD 8/16位寄存器或位寄存器或 存储器操作数存储器操作数 用用
11、0减去操作数,相当于对该操作减去操作数,相当于对该操作 数求补码数求补码 8086的指令系统-六大类指令和数 据传送类指令 (4)求补指令)求补指令NEG n若操作数的原值为一正数,那么执若操作数的原值为一正数,那么执 行指令后,其值变为该数的负数的行指令后,其值变为该数的负数的 补码补码 n若操作数的原值为一负数,那么执若操作数的原值为一负数,那么执 行指令后,其值变为该数所对应的行指令后,其值变为该数所对应的 正数(补码表示)正数(补码表示) 8086的指令系统-六大类指令和数 据传送类指令 NEG指令对指令对6个状态标志位都影响。个状态标志位都影响。 NEG指令后,一般都会指令后,一般都
12、会CF=1。 当指定的操作数是当指定的操作数是80H或或8000H,则执行,则执行 NEG指令后结果不变。指令后结果不变。OF=1(其他情况(其他情况 OF=0) 8086的指令系统-六大类指令和数 据传送类指令 (5)比较指令)比较指令CMP n格式:格式: CMP OPRD1,OPRD2 n操作:操作: OPRD1- OPRD2,结果不送回,结果不送回OPRD1 指令执行的结果不影响目标操作数!指令执行的结果不影响目标操作数! 8086的指令系统-六大类指令和数 据传送类指令 CMP指令指令 n用途:用途: 用于比较两个数的大小,可作为条件转用于比较两个数的大小,可作为条件转 移指令转移的
13、条件移指令转移的条件 n指令对操作数的要求及对标志位的影响指令对操作数的要求及对标志位的影响 与与SUB指令相同指令相同 8086的指令系统-六大类指令和数 据传送类指令 CMP指令指令 n两个无符号数的比较:两个无符号数的比较: CMP AX,BX 若若 AX BX CF=0 若若 AX BX OF SF=1 AX BX OF SF=1 AX BX ZF=1 AX = BX 8086的指令系统-六大类指令和数 据传送类指令 3. 乘法指令乘法指令 无符号的乘法指令无符号的乘法指令MUL 带符号的乘法指令带符号的乘法指令IMUL 乘法指令采用隐含寻址,隐含的是存放被乘乘法指令采用隐含寻址,隐含
14、的是存放被乘 数的累加器数的累加器AL或或AX及存放结果的及存放结果的AX,DX; 若运算结果的高位全为若运算结果的高位全为0或或1,表示其为无效,表示其为无效 数据,数据,OF=CF=0 8086的指令系统-六大类指令和数 据传送类指令 (1)无符号数乘法指令)无符号数乘法指令MUL n格式:格式: MUL OPRD 不能是立即数,不能是立即数,能是寄存器存储器操作数能是寄存器存储器操作数 操作:操作: OPRD为字节数:为字节数:ALOPRD AX OPRD为为16位数:位数:AXOPRD DXAX 8086的指令系统-六大类指令和数 据传送类指令 MUL BX ;(DX:AX)(AX)(
15、BX) MUL BYTE PTRSI; (AX)(AL)(SI) MUL DL; (AX)(AL)(DL) MUL WORD PTRDI; (DX:AX)(AX)(DI)+1),(DI) 8086的指令系统-六大类指令和数 据传送类指令 无符号数乘法指令例无符号数乘法指令例 nMUL BYTE PTRBX BXXXH AL XXH AX 8086的指令系统-六大类指令和数 据传送类指令30 (16位) (16位) AXDX乘积 乘数 被乘数(8位) (8位) AX乘积 乘数 被乘数 (16位)(32位) 操作数 AX 操作数 AL 乘法运算的操作数及运算结果乘法运算的操作数及运算结果 n注:注
16、: A.为乘积保留了两倍于原来操作数的存储空间,因而不会溢出为乘积保留了两倍于原来操作数的存储空间,因而不会溢出 b.源操作数可以是寄存器,也可以是存储单元,但不能是立即数源操作数可以是寄存器,也可以是存储单元,但不能是立即数 c.当源操作数是存储单元时,必须在操作数前加当源操作数是存储单元时,必须在操作数前加B或或W说明说明 8086的指令系统-六大类指令和数 据传送类指令 (2)带符号数乘法指令)带符号数乘法指令 n格式:格式: IMUL OPRD IMUL指令将指令将OPRD视为带符号数,运算时视为带符号数,运算时 若操作数为负数,要先将操作数求补码,运若操作数为负数,要先将操作数求补码
17、,运 算后再将结果求补。算后再将结果求补。 8086的指令系统-六大类指令和数 据传送类指令 要求两个操作数都须为有符号数。要求两个操作数都须为有符号数。 若乘积的高半部分是低半部分的符若乘积的高半部分是低半部分的符 号位的扩展,则号位的扩展,则CF=OF=0,否则,否则 CF=OF=1。 指令中给出的源操作数应满足带符指令中给出的源操作数应满足带符 号数的表示范围。号数的表示范围。 8086的指令系统-六大类指令和数 据传送类指令 IMUL指令例指令例 设:设:AL=0FEH,CL=11H,求求AL与与CL的乘积。的乘积。 n若为无符号数,则若为无符号数,则 MUL CL 结果:结果:AX=
18、10DEH CF=OF=1 n若将两操作数看作有符号数,则:若将两操作数看作有符号数,则: IMUL CL 指令执行后:指令执行后:AX=FFDEH=-34 CF=OF=0 8086的指令系统-六大类指令和数 据传送类指令 4. 除法指令除法指令 无符号除法指令无符号除法指令 DIV OPRD 有符号除法指令有符号除法指令 IDIV OPRD 若若OPRD是字节数,则执行是字节数,则执行AX/OPRD 若若OPRD是双字节数,则执行是双字节数,则执行 DXAX/OPRD AL=商商 AH=余数余数 AX=商商 DX=余数余数 指令要求被除数是除数的双倍字长指令要求被除数是除数的双倍字长 对对6
19、个标志位均无影响个标志位均无影响 8086的指令系统-六大类指令和数 据传送类指令 (1 1)无符号数的除法指令)无符号数的除法指令DIVDIV 指令格式指令格式 DIV OPRD OPRD:8位或位或16位的寄存器或存储器操作数位的寄存器或存储器操作数 字节除法:字节除法:(AL)(AX) / (OPRD) (AH)(AX)%(OPRD) 字除法:字除法:(AX)(DX:AX) / (OPRD) (DX)( DX:AX)%(OPRD) 若除法运算的结果超出可表示的范围,若除法运算的结果超出可表示的范围,CPU 内部产生一个类型内部产生一个类型0中断。中断。 8086的指令系统-六大类指令和数
20、 据传送类指令 例例 DIV BL (AL)=(AX) / (BL) (AH)=(AX)%(BL) DIV WORD PTRSI (AX)=(DX:AX)/(SI)+1),(SI) (DX)=(DX:AX)%(SI)+1),(SI) 8086的指令系统-六大类指令和数 据传送类指令 例例 MOV AX,7FA2H; (AX)= 7FA2H MOV BX,03DDH; (BX)= 03DDH CWD; (DX:AX)= 00007FA2H DIV BX; 商商 (AX)= 0021H 余数(余数(DX)= 0025H 8086的指令系统-六大类指令和数 据传送类指令38 ALAH 商余数 AX操
21、作数(8位) 除数被除数 (16位) (a) AXDX 商余数 AX操作数(16位) 除数被除数 (32位) (b) DX 8086的指令系统-六大类指令和数 据传送类指令39 1、如果除数为、如果除数为0,或字节除法商大于,或字节除法商大于FFH,或,或 字除法时商大于字除法时商大于FFFFH,则自动产生一个,则自动产生一个 类型号为类型号为0的内部中断。的内部中断。 2、DIV使标志位使标志位SF、ZF、AF、PF、CF和和OF 的值不确定。的值不确定。 3、不允许两个字长相等的操作数相除。如果、不允许两个字长相等的操作数相除。如果 被除数和除数的字长相等,可在除法之前被除数和除数的字长相
22、等,可在除法之前 将被除数的高位扩展将被除数的高位扩展8个零或个零或16个零。个零。 DIV的注意事项的注意事项 8086的指令系统-六大类指令和数 据传送类指令 (2)有符号数的除法指令)有符号数的除法指令IDIV IDIV CX; (AX)=(DX:AX) / (CX) (DX)=(DX:AX)%(CX) DIV BYTE PTRBX; (AL)=(AX) / (BX) (AH)=(AX)%(BX) 8086的指令系统-六大类指令和数 据传送类指令41 3.3.3 逻辑运算与移位指令逻辑运算与移位指令 一、逻辑运算指令一、逻辑运算指令 二、移位指令二、移位指令 当有两个操作数时,只能有一个
23、操作数为当有两个操作数时,只能有一个操作数为 存储器操作数。存储器操作数。 操作数可以是字节或字,但必须等长。操作数可以是字节或字,但必须等长。 如果只有一个操作数,则该操作数即是源操如果只有一个操作数,则该操作数即是源操 作数又是目标操作数。作数又是目标操作数。 操作数不能是段寄存器。操作数不能是段寄存器。 8086的指令系统-六大类指令和数 据传送类指令 逻辑运算和移位指令逻辑运算和移位指令 逻辑运算逻辑运算 移位操作移位操作 与与 或或 非非 异或异或 测试测试 非循环移位非循环移位 循环移位循环移位 逻辑移位逻辑移位 算术移位算术移位 不带进位位的移位不带进位位的移位 带进位位的移位带
24、进位位的移位 8086的指令系统-六大类指令和数 据传送类指令 1.逻辑运算指令逻辑运算指令 n逻辑运算指令对操作数的要求大多与逻辑运算指令对操作数的要求大多与 MOV指令相同。指令相同。“非非”运算指令要求运算指令要求 操作数不能是立即数操作数不能是立即数 n除除“非非”运算指令外,其余指令的执行运算指令外,其余指令的执行 都会使标志位都会使标志位OF=CF=0 8086的指令系统-六大类指令和数 据传送类指令 (1) “与与”指令指令AND n格式:格式: AND OPRD1,OPRD2 n操作:操作: 两操作数相两操作数相“与与”,结果送目标,结果送目标 地址,即地址,即 OPRD1 O
25、PRD1 OPRD2 8086的指令系统-六大类指令和数 据传送类指令 “与与”指令的应用指令的应用 n实现两操作数相与的运算实现两操作数相与的运算 n使目标操作数的某些位不变,某些位清零使目标操作数的某些位不变,某些位清零 n使操作数不变,但影响使操作数不变,但影响6个状态标志位,并个状态标志位,并 使使CF和和OF清零。清零。 源操作数可以是立即数、寄存器或存储器源操作数可以是立即数、寄存器或存储器 目标操作数可以是寄存器或存储器目标操作数可以是寄存器或存储器 8086的指令系统-六大类指令和数 据传送类指令 “与与”指令应用例指令应用例 nAND AL,0FH nAND CX,0FF00
26、H nAND AX,BX nAND AX,BXDATA nAND AX,AX;AX不变,不变,CF=OF=0 8086的指令系统-六大类指令和数 据传送类指令 (2)“或或”运算指令运算指令OR n格式:格式: OR OPRD1,OPRD2 n操作:操作: 两操作数相两操作数相“或或”,结果送目标地,结果送目标地 址址 OR AL,20H OR AX,00FFH OR BX,AL 8086的指令系统-六大类指令和数 据传送类指令 “或或”指令的应用指令的应用 n实现两操作数相实现两操作数相“或或”的运算的运算 n使某些位不变,某些位置使某些位不变,某些位置“1” n使操作数不变,但影响使操作数不变,但影响6个状态标志位,个状态标志位, 并使并使CF=OF=0 8086的指令系统-六大类指令和数 据传送类指令 (3)“非非”运算指令运算指令NOT n格式:格
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论