微机原理第三章指令系统课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《微机原理第三章指令系统课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 第三 指令系统 课件
- 资源描述:
-
1、第三章第三章 8086指令系统指令系统1.指令格式指令格式2.8086 寻址方式寻址方式3.8086 指令系统指令系统汇编语言指令格式与寻址方式汇编语言指令格式与寻址方式 汇编语言指令格式汇编语言指令格式1.标号、标示符标号、标示符2.指令助记符指令助记符3.操作数操作数4.注释注释指令助记符指令助记符操作数操作数 8086的寻址方式的寻址方式(重点重点!)对操作数寻址对操作数寻址 对调用或转移指令寻址对调用或转移指令寻址一、立即数寻址:一、立即数寻址:操作数由指令提供操作数由指令提供.例:例:MOV AL,80 H MOV AX,1090 H MOV CX,100 二、直接寻址二、直接寻址
2、操作数在存储器中,其地址由指操作数在存储器中,其地址由指令提供。令提供。例:例:MOV AX,1070 H MOV BX,CS:3000 H MOV AH,1000 H 三、寄存器寻址三、寄存器寻址 操作数在寄存器中。操作数在寄存器中。MOV AH,BL MOV AX,BX MOV CX,AX四、寄存器间接寻址四、寄存器间接寻址 操作数在存储器中,存储器操作数在存储器中,存储器的有效地址由寄存器指出。的有效地址由寄存器指出。EA=+8 或或 16 位移量位移量BX ;段为;段为DS BP ;段为;段为SSSI ;段为;段为DSDI ;段为;段为DS或或ES1、以、以BX寄存器进行间接寻址寄存器
3、进行间接寻址 例:例:若若 DS=2000 H,ES=3000 H,BX=1000 H 1)MOV AX,BX AX 21000 H 21001 H MOV CX,ES:BX AX 31000 H 31001 H2、以、以BP寄存器进行间接寻址寄存器进行间接寻址MOV AX,BP若若 SS=5000 H,BP=3000 H,将将 53020 H、53021 H 单元的内容单元的内容送送 AX。执行结果:执行结果:AX=4A56 H53000H53001H56H4AH3、以、以SI、DI寄存器进行间接寻址寄存器进行间接寻址变址寻址变址寻址1)MOV AX,SI若若 DS=3000 H,SI=40
4、00H,EA=4000H,物理地址物理地址=34000H,执行结果:执行结果:AX=201A H2)MOV BX,DI若若 DS=5000 H,DI=0200 H执行结果:执行结果:BX 50201H50200 HBX=3220 H34000 H34001 H1A H20 H50200 H50201 H20 H32 H4、以、以BX、BP和和SI、DI寄存器组合起来进行寄存器组合起来进行间接寻址间接寻址基址加变址的寻址基址加变址的寻址 例:若例:若 BX=5000 H,SI=2000 H,DS=4000 H,SS=1000 H,BP=3100 H。MOV AX,BX+SI;EA=5000+20
5、00=7000H,AX 47001 H 47000 HAX=2A32 HEA=+BXSIBPDI相对的基址加变址的寻址:相对的基址加变址的寻址:MOV AX,BP+SI+0020 H;EA=3100+2000+0020=5120H例:设例:设 BX=0158 H,DI=10A5 H,DS=2100 H,位移量位移量=1B57 H,DS 作为操作数的段寄存器。作为操作数的段寄存器。1)直接寻址)直接寻址:MOV AX,1B57 H 有效地址有效地址=1B57 H 物理地址物理地址=21000 H+1B57 H=22B57 H2)寄存器间接寻址)寄存器间接寻址:MOV AX,BX 有效地址有效地址
6、=0158 H 物理地址物理地址=21000 H+0158 H=21158 H3)BX寄存器相对间接寻址寄存器相对间接寻址:MOV AX,BX+1B57H 有效地址有效地址=0158 H+1B57 H=1CAF H 物理地址物理地址=21000 H+1CAF H=22CAF H4)变址寻址)变址寻址:MOV AX,DI有效地址有效地址=105A H 物理地址物理地址=21000 H+105A H=220A5 H5)DI寄存器相对变址寻址寄存器相对变址寻址:MOV AX,DI+1B57H 有效地址有效地址=105A H+1B57 H=2BFC H 物理地址物理地址=21000 H+2BFC H=
7、23BFC H6)基址加变址的寻址)基址加变址的寻址:MOV AX,BX+DI 有效地址有效地址=0158 H+105A H=11FD H 物理地址物理地址=21000 H+11FD H=221FD H7)相对的基址加变址的寻址:)相对的基址加变址的寻址:MOV AX,BX+DI+1B57 H 有效地址有效地址=0158 H+105A H+1B57 H=2D54 H 物理地址物理地址=21000 H+2D54 H=23D54 H1、若、若SS=1000H,BP=2000H,DS=5000H,BX=4000H,说明下,说明下列指令的执行结果。列指令的执行结果。MOV AX,2C10H MOV A
8、X,2C10H MOV AX,BX+1C00H MOV BX,BP+0120H MOV AX,BP+SI MOV AH,BX+SI数据传送指令数据传送指令MOV LEAPUSH LDSPOP LES XCHG LAHF PUSHFXLAT SAHF POPF IN OUT 1.通用型通用型 (1).MOV传送指令传送指令 格式:格式:MOV dst,src ;dst src 例例:MOV DS,AX ;DS AX MOV CH,20 ;CH 20 MOV BL,AH ;BLAH MOV AX,BX ;AXBX MOV DX,AX ;DXAX MOV AX,BX+0060H (2)堆栈操作指令)
9、堆栈操作指令 PUSH src ;把;把src推入堆栈推入堆栈 POP src ;把;把src弹出堆栈弹出堆栈C312 01006H 01007H 01008H 01009HSP(原栈顶原栈顶)SP-2(新栈顶新栈顶)SP例例:设:设SS=0100 H,SP=0009H,AX=12C3H,BX=5070 H PUSH AX ;1 SP SP-2 2 4100841007H AX 01000009SSSP 16-2 POP AX;将栈顶两单元内容送;将栈顶两单元内容送AX ;SP SP+2 01000007SSSP 16+2C312 01006H 01007H 01008H 01009HSP+2
10、(新栈顶新栈顶)SP12C3AXSP(原栈顶原栈顶)例例:PUSH AX PUSH BX .POP BX POP AX注注:1)8086 的堆栈操作是按字进行的。的堆栈操作是按字进行的。2)每执行一条推入堆栈指令,)每执行一条推入堆栈指令,SP 减减 2。执。执行弹出指令时,刚好相反,每弹出行弹出指令时,刚好相反,每弹出 1 个字,个字,SP的值加的值加 2。3)CS 的值可以推入堆栈,但不能从堆栈中的值可以推入堆栈,但不能从堆栈中弹出弹出 1个字到个字到CS 寄存器。寄存器。4)堆栈中的内容是按后进先出的原则进行传)堆栈中的内容是按后进先出的原则进行传的。的。例例(3)、交换指令、交换指令
11、格式:格式:XCHG dst,src XCHG AX,BX XCHG AL,BH XCHG BX,1000H XCHG 2100H,DH XCHG SI,AX 注意:注意:1、dst与与 src不能同时为内存单元;不能同时为内存单元;2、不能使用、不能使用CS、IP作为操作数。作为操作数。(4)、换码指令)、换码指令 格式:格式:XLAT(无参数无参数);ALBX+AL 使累加器中的一个值变换为内存表格中的某一使累加器中的一个值变换为内存表格中的某一个值。用来实现编码制的转换。要求:个值。用来实现编码制的转换。要求:BX 寄存器指寄存器指向表的首地址,向表的首地址,AL中为位移量。中为位移量。
12、BX+0BX+1BX+2BX+AL+BX AL 十进制数十进制数 g f e d c b a 0 0 1 0 0 0 0 0 0 40H 1 0 1 1 1 1 0 0 1 79H 2 0 0 1 0 0 1 0 0 24H 3 0 0 1 1 0 0 0 0 30Haf g be cd十进制数字十进制数字09转换成七段显示码的译码表,转换成七段显示码的译码表,现在要取现在要取 3的对应的七段译码。的对应的七段译码。MOV AL,3 MOV BX,2000H XLAT 执行执行XLAT指令后指令后:AL=30H例例2000h407924301912027800102、目标地址传送指令、目标地址
13、传送指令(1)取有效地址取有效地址 LEA reg16,men16 LEA AX,1000H;AX=1000H LEA SP,0500H ;SP=0500H LEA,BX,BP+SI(2)将地址指针送将地址指针送DS和另一寄存器和另一寄存器:LDS reg16,men32 后后2个字节送个字节送DS,前,前2个字节送寄存器。个字节送寄存器。LES reg16,mem32 后后2个字节送个字节送ES,前,前2个字节送寄存器个字节送寄存器。LDS DI,2100H2100H2101H2102H2103H3104H1C H20 H21 HB5 HDI=201CHDS=B521HD7 D6 D5 D4
14、 D3 D2 D1 D0 SF ZF AF PF CFFLAG3、标志传送、标志传送1)、读标志:)、读标志:LAHF ;将标志送将标志送AH 置标志:置标志:SAHF ;将将AH送标志寄存器送标志寄存器(2)、PUSHF:把标志推入堆栈。:把标志推入堆栈。SP SP-2,FLAGH入栈入栈 (3)、POPF :把标志弹出堆栈。:把标志弹出堆栈。FLAG SP+1,SP SP SP+2例例4、输入输出指令、输入输出指令1)、直接寻址)、直接寻址 IN AL,n OUT n,AL IN AX,N OUT N,AX 寻址空间为:寻址空间为:0 255 字节字节 IN AL,20H IN AX,30
15、H OUT 46H,AL OUT 80H,AX例例2)、间接寻址)、间接寻址 IN AL,DX OUT DX,AL IN AX,DX OUT DX,AX 寻址空间为:寻址空间为:0000H FFFFH MOV DX,1000H IN AL,DX IN AX,DX OUT DX,AL数据操作指令数据操作指令算术运算指令算术运算指令 加法:加法:ADDADD、ADCADC、INCINC 减法:减法:SUBSUB、SBBSBB、DECDEC、DASDAS 乘法:乘法:MULMUL、IMULIMUL、AAMAAM 除法:除法:DIVDIV、IDIVIDIV、AAMAAM AAAAAA、DAADAA、D
16、ASDAS、AAMAAM、AAMAAM加法指令加法指令1 1)不带进位不带进位位的加法位的加法格式:格式:ADD DST,SRC DST DST+SRC例:例:(1).ADD AL,50H;AL AL+50H (2).ADD CX,1000H;CX CX+1000H (3).ADD DI,SI ;DI DI+SI (4).ADD BX+DI,AX BX=1000H,DI=2000H,AX=1234H EA=BX+DI=3000H 1234+4025H=5259H 3000H 5259H 2).带进位位的加法带进位位的加法 格式:格式:ADC DST,SRC DST DST+SRC+CF 例:例
17、:ADC AX,SI ;AX AX+SI+CF ADC DX,SI;DX DX+SI+CF ADC BX,3000H BX BX+3000H+CF ADC AL,5 AL AL+5+CF例例:有两个:有两个4 4字节无符号数放在字节无符号数放在2000H2000H和和3000H3000H单单元中,低位在前,高位在后,将两个数相加,元中,低位在前,高位在后,将两个数相加,结果放结果放2000H2000H开始的单元中。开始的单元中。1000100084328432H+2000H+20007F007F00H=H=?1).1).算法分析算法分析:1).1).可以将两个可以将两个4 4字节无符号数相加字
18、节无符号数相加 看成看成2 2个字相加个字相加;2).2).两个数的低位字相加后两个数的低位字相加后,将可能将可能 产生进位产生进位CF;CF;3).3).高位字相加高位字相加,应再加上进位位应再加上进位位;2000H3000H32840010007F0020SIDI2)2)程序程序:CLC ;清进位清进位 MOV SI,2000H;取第一个数的首地址取第一个数的首地址 MOV AX,SI ;第一个数的低第一个数的低16位送到位送到AX MOV DI,3000H;取第二个字的首地址取第二个字的首地址 ADD AX,DI;第一个数和第二个数相加第一个数和第二个数相加 MOV SI,AX ;送低送
19、低16位结果位结果2000H单元单元 MOV AX,SI+2;第二个数的高第二个数的高16位送位送AX ADC AX,DI+2;高高16位数据相加位数据相加 MOV SI+2,AX3 3).加一指令加一指令 格式:格式:INC src src src+1 将操作数内容加一,再回送操作数将操作数内容加一,再回送操作数。INC AX ;AX AX+1 INC BL ;BL BL+1 INC BYTE PTRBX+DI+500注意:注意:INCINC指令影响标志指令影响标志AFAF、OFOF、PFPF、SFSF、ZFZF,但不影响进位标志但不影响进位标志CFCF。减法指令减法指令(1)不带借位的减法
20、不带借位的减法 格式:格式:SUB DST,SRC DST DST-SRC例:例:SUB BX,CX SUB BP+2,CL SUB AL,20 SUB SI,5010H SUB WORD PTR DI,1000H (2)带借位的减法带借位的减法 格式:格式:SBB DST,SRC DST DST SRC CF 例:例:SBB AX,2030H ;执行:;执行:AX AX 2030H CF SBB WORD PTR DI+2,1000H;SBB DX,BX+20H (3)减量指令减量指令 将操作数内容减一,再回送操作数。将操作数内容减一,再回送操作数。格式:格式:DEC DST;DST DST
21、 1 例:例:DEC AX DEC BL DEC BYTE PTR DI+2 4)求补指令求补指令 格式:格式:NEG DST 对对DST求补,求补,0-DST例:例:NEG AL ;对对AL中的数求补,结果送中的数求补,结果送AL NEG CX ;对对CX中的数求补,结果送中的数求补,结果送CX 5)比较指令比较指令 格式格式:CMP DST,SRC;DST-SRC 注意:注意:CMP指令执行相减,但不回送结果,指令执行相减,但不回送结果,结果结果只影响标志位只影响标志位CF、OF、SF、ZF。二进制乘法特点二进制乘法特点:两个两个8 8位数相乘,结果为位数相乘,结果为1616位数。位数。两
22、个两个1616位数相乘,结果为位数相乘,结果为3232位数。位数。80868086乘法指令特点:乘法指令特点:一个乘数总是放在一个乘数总是放在ALAL(8 8位)或位)或AXAX (1616位)中;位)中;将将DXDX看成是看成是AXAX的扩展的扩展乘法指令:无符号数乘法指令:无符号数MULMUL 有符号数有符号数IMULIMUL例例:3 3(-2-2)=6=6 3 3 14=4214=42(2AH2AH)3 3的补码:的补码:00110011,-2-2的补码的补码 :11101110 14 14的补码:的补码:111011101 1)直接相乘:对无符号数,结果正确。直接相乘:对无符号数,结果
23、正确。00110011(3 3)1110 1110(-2-2或或1414)0010 10100010 1010(2A2A)2 2)有符号相乘:负数复原为原码,并去掉符)有符号相乘:负数复原为原码,并去掉符号位,相乘后,结果添上符号位,再取补号位,相乘后,结果添上符号位,再取补码。码。00110011(3 3)0010 0010(2 2)0000 01100000 0110(6 6)结果添上负号,结果添上负号,1 000 01101 000 0110,再取补码:再取补码:1111 1001+1=111110101111 1001+1=11111010 =0FAH=-6 =0FAH=-6 3 3(
24、-2-2)=-6=-6,结果正确,结果正确 对于对于3 3 1414,结果错误。,结果错误。(1)、)、无符号数乘法无符号数乘法 格式:格式:MUL src ;AX ALsrc,字节,字节 ;DX,AX AX src,字,字 8 8位乘法位乘法 1616位乘法位乘法AX操作数操作数DX AX(16位)位)(16位)位)(32位)位)AL操作数操作数AH AL(8位)位)(8位)位)(16位)位)MUL BL ;AX AL CLMUL CX ;DX、AX AX CXMUL BYTE PTR DI;AL与与DI所指单元的所指单元的8位位 数相乘,结果送数相乘,结果送AXMUL WORD PTR S
25、I;AX与与SI所指单元的所指单元的16位位 数相乘,低位送数相乘,低位送AX,高位送高位送DX4902H403AH,结果送,结果送0510H0513H单元。单元。MOV AX,4902H MOV BX,403AH MUL BX MOV 0510H,AX MOV 0512H,DX(2 2)、)、带符号数的乘法带符号数的乘法 格式格式 :IMULIMUL src src 字节乘字节乘:AX :AX AL AL*srcsrc,字乘字乘 :DX:DX,AX AX AX AX*srcsrc,字乘,字乘 IMUL BLIMUL BL;ALAL的内容乘以的内容乘以BLBL,结果送,结果送AXAX IMUL
展开阅读全文