《微机原理与应用教学资料》第三章(课件).ppt
《《微机原理与应用教学资料》第三章(课件).ppt》由会员分享,可在线阅读,更多相关《《微机原理与应用教学资料》第三章(课件).ppt(80页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第三章第三章 8086的寻址方式和指令系统的寻址方式和指令系统 电气学院学习部资料库2 v3-1 80863-1 8086寻址方式寻址方式指令:操作码:给出此指令应完成何种操作。告诉计算机指令:操作码:给出此指令应完成何种操作。告诉计算机 做什么做什么 操作数:该指令的操作对象。告诉计算机对谁做操作数:该指令的操作对象。告诉计算机对谁做指令格式:操作码指令格式:操作码 目的操作数,源操作数目的操作数,源操作数 源操作数:数据从何而来。操作过程中原值不变。源操作数:数据从何而来。操作过程中原值不变。目的操作数:送到哪里去。操作数原值不保留。目的操作数:送到哪里去。操作数原值不保留。寻址方式:说
2、明操作数所在地址的方法。寻址方式:说明操作数所在地址的方法。操作数来源:操作数来源:指令指令 CPU CPU内部寄存器内部寄存器 内存单元内存单元电气学院学习部资料库3v一、一、立即寻址方式立即寻址方式 指令中包含操作数,不必执行总线周期,指令执指令中包含操作数,不必执行总线周期,指令执行速度快行速度快例例1 1:MOV ALMOV AL,80H80H;80HAL80HAL,(,(ALAL)=80H=80H例例2 2:MOV AXMOV AX,1234H1234H;1234HAX1234HAX,(,(AHAH)=12H=12H,(ALAL)=34H=34H *加上(加上(),表示取寄存器或内存
3、单元的内容),表示取寄存器或内存单元的内容 一般用于赋值。源操作数和目的操作数字长一般用于赋值。源操作数和目的操作数字长应相同应相同 立即数只能做源操作数,不能做目的操作数立即数只能做源操作数,不能做目的操作数 若是以字母打头的数,例:若是以字母打头的数,例:A0HA0H在编程中必须在编程中必须表示为表示为0A0H0A0H电气学院学习部资料库4v二、寄存器寻址二、寄存器寻址操作数在寄存器中,不必执行总线周期,执行速度快操作数在寄存器中,不必执行总线周期,执行速度快例例1 1:INC AL INC AL;(;(ALAL)+1AL+1AL,若(,若(ALAL)=86H=86H,指令执行完,指令执行
4、完(ALAL)=87H=87H例例2 2:MOV AXMOV AX,CXCX;(;(CXCX)AXAX,若指令执行前,若指令执行前CX=3A68H,CX=3A68H,指令指令执行后执行后AX=3A68HAX=3A68H目的与源操作数都可用寄存器寻址目的与源操作数都可用寄存器寻址注意数据匹配,源与目的操作数的长度必须一致注意数据匹配,源与目的操作数的长度必须一致 例:例:MOV AXMOV AX,BLBL;错误。错误。可用于寄存器寻址的寄存器包括:可用于寄存器寻址的寄存器包括:4 4个通用寄存器,个通用寄存器,4 4个专用个专用寄存器寄存器 1616位操作数:位操作数:AXAX,BXBX,CXC
5、X,DXDX,SISI,DIDI,SPSP,BPBP 8 8位操作数:位操作数:AHAH,ALAL,BHBH,BLBL,CHCH,CLCL,DHDH,DLDL从第三种开始,指令的操作数都在内存中,须用不同的方法求出操作数的从第三种开始,指令的操作数都在内存中,须用不同的方法求出操作数的物理地址,来获得操作数。物理地址,来获得操作数。电气学院学习部资料库5v三、直接寻址三、直接寻址 指令中直接给出操作数的有效地址指令中直接给出操作数的有效地址EAEA,操作数在内存中,操作数在内存中,需执行总线周期需执行总线周期 有效地址有效地址EAEA:操作数的偏移地址:操作数的偏移地址 物理地址物理地址=段地
6、址段地址*16+EA16+EA默认段地址为默认段地址为DSDS,指令中有效地址,指令中有效地址EAEA加加 ,以区别于立,以区别于立即数。即数。*加上加上 ,表示里面的内容是内存中偏移地址,表示里面的内容是内存中偏移地址 例例1 1:MOV ALMOV AL,1064H 1064H;若(;若(DSDS)=1000H=1000H,则,则(11064H11064H)ALAL 例例2:2:MOV AXMOV AX,1064H 1064H;(;(11064H11064H)ALAL,(11065H11065H)AHAH 若(若(11064H11064H)=00H=00H,(,(11065H11065H)
7、=12H=12H,(,(AXAX)=1200H=1200H 电气学院学习部资料库6 一个字在存储体中相邻的两个字节存放,字单元的地址以一个字在存储体中相邻的两个字节存放,字单元的地址以低位地址表示,存入时以低位字节在低地址,高位字节在低位地址表示,存入时以低位字节在低地址,高位字节在高地址高地址段超越前缀段超越前缀:若段地址为若段地址为CSCS、SSSS、ESES,应在指令中指定段超越,应在指令中指定段超越前缀前缀 例:例:MOV AXMOV AX,ESES:1064H1064H;将;将ESES段中段中1064H1064H的内容的内容AXAX ES ES:MOV AXMOV AX,1064H
8、1064H 符号地址符号地址(给存储单元起一名字,变量名)(给存储单元起一名字,变量名)例:例:MOV AXMOV AX,AREA1AREA1;从符号地址为从符号地址为AREA1AREA1的存储单元中取的存储单元中取一个字一个字 AXAX 符号地址也允许段超越符号地址也允许段超越电气学院学习部资料库7v四、寄存器间接寻址四、寄存器间接寻址 指令中通过寄存器给出有效地址指令中通过寄存器给出有效地址EA EA,寄存器中为地址,操,寄存器中为地址,操作数在内存中,需执行总线周期作数在内存中,需执行总线周期可以用于寄存器间接寻址的寄存器有:可以用于寄存器间接寻址的寄存器有:SISI、DIDI,BXBX
9、、BPBP 变址寄存器变址寄存器 基址寄存器基址寄存器 寄存器名称外面必须加寄存器名称外面必须加 (SISI)EA=EA=(DIDI)DSDS(默认)(默认)(BXBX)(BPBP):):SSSS物理地址物理地址=段地址段地址*16+EA16+EA 电气学院学习部资料库8 例:例:MOV BX,SI;MOV BX,SI;若(若(DSDS)=1000H=1000H,(,(SISI)=2000H=2000H,(12000H12000H)=318BH=318BH。则(。则(BHBH)=31H=31H,(,(BLBL)=8BH=8BH 也可以通过指定超越前缀,改变段基地址也可以通过指定超越前缀,改变段
10、基地址 例:例:MOV BXMOV BX,DS:BPDS:BP ;(DS:BPDS:BP)BL BL,(DS:BP+1(DS:BP+1)BH BH 电气学院学习部资料库9v五、寄存器相对寻址五、寄存器相对寻址 通过基址或变址寄存器的内容与指令中指定的通过基址或变址寄存器的内容与指令中指定的8 8位或位或1616位位移量(位位移量(Displacement)Displacement)给出给出EAEA,操作数在内存中,需,操作数在内存中,需执行总线周期执行总线周期 (SISI)8 8位位 EA=EA=(DIDI)DS+dispDS+disp (BXBX)1616位位 (BPBP):):SSSS 物
11、理地址物理地址=段地址段地址*16+EA16+EA 例:例:MOV AXMOV AX,BX+1000HBX+1000H;(;(DS:BX+1000HDS:BX+1000H)ALAL,(DS:DS:BX+1001HBX+1001H)AHAH MOV AX MOV AX,1000HBX1000HBX也可以通过指定超越前缀,改变段基地址也可以通过指定超越前缀,改变段基地址 例:例:MOV AXMOV AX,ES:1000HBXES:1000HBX电气学院学习部资料库10v六、基址加变址寻址六、基址加变址寻址 由一个基址由一个基址寄存器寄存器(BXBX或或BPBP)和一个变址)和一个变址寄存器寄存器(
12、SISI或或DIDI)之和给出之和给出EAEA BX SI BX SI EA=+EA=+BP DI BP DI 物理地址物理地址=段地址段地址*16+EA16+EA 默认的段地址:只需出现默认的段地址:只需出现BPBP,即为,即为SSSS,其余为,其余为DSDS例:例:MOV AXMOV AX,BX+SIBX+SI;(;(DSDS:BX+SIBX+SI)ALAL,(,(DSDS:BX+SI+1BX+SI+1)AHAH MOV AX MOV AX,BXSIBXSI MOV AX MOV AX,SI+BPSI+BP;(;(SSSS:SI+BPSI+BP)ALAL,(,(SSSS:SI+BP+1SI
13、+BP+1)AHAH MOV AX MOV AX,BP+SIBP+SI例:例:MOV AXMOV AX,BX+BP BX+BP;错误,;错误,BXBX、BPBP均为基址寄存器均为基址寄存器电气学院学习部资料库11v七、相对基址加变址寻址七、相对基址加变址寻址 由一个基址由一个基址寄存器寄存器和一个变址和一个变址寄存器寄存器的内容,再加上一个的内容,再加上一个位移量,三者之和确定位移量,三者之和确定EAEA BX SI 8 BX SI 8位位 EA=+disp EA=+disp BP DI 16 BP DI 16位位例:例:MOV AXMOV AX,BX+SI+1000HBX+SI+1000H
14、;(;(DSDS:EAEA)ALAL,(,(DSDS:EA+1EA+1)AHAH MOV AX MOV AX,1000H BXSI1000H BXSI若若 DS=2000HDS=2000H,BX=1500HBX=1500H,SI=0300HSI=0300H,disp=1000Hdisp=1000H,(22800H)=26BFH(22800H)=26BFH则则 EA=1500H+0300H+1000H=2800HEA=1500H+0300H+1000H=2800H,物理地址物理地址=20000=20000H+2800H=22800HH+2800H=22800H,AX=26BFH AX=26BFH
15、电气学院学习部资料库12v 八、其它八、其它 隐含寻址隐含寻址 例:例:DAADAA、AAAAAA、AASAAS、DASDAS、AAMAAM、AADAAD I/O I/O端口寻址端口寻址 例:例:IN ALIN AL,63H63H;OUT 85HOUT 85H,ALAL;MOV DXMOV DX,0FF4H0FF4H;OUT DXOUT DX,ALAL;电气学院学习部资料库13课堂练习:举例:指出下列指令中目的、源操作数各采用何种寻址方式举例:指出下列指令中目的、源操作数各采用何种寻址方式 目的操作数目的操作数 源操作数源操作数 MOV SIMOV SI,1000H 1000H ;MOV SI
16、 MOV SI,AL AL ;MOV 1000H MOV 1000H,AL AL ;MOV BP MOV BP,BX BX ;MOV BP MOV BP,BX BX ;MOV AX MOV AX,AREA1 AREA1 ;AND DL AND DL,BX+SI+20H BX+SI+20H;PUSH DS PUSH DS ;ADD AX ADD AX,BX+SI BX+SI ;SUB AX SUB AX,BX+1000H BX+1000H;IN AL,05H ;IN AL,05H ;R R寻址寻址 立即数寻址立即数寻址 R R间接寻址间接寻址 R R寻址寻址 直接寻址直接寻址 R R寻址寻址 R
17、 R寻址寻址 R R寻址寻址 R R寻址寻址 R R间接寻址间接寻址 R R寻址寻址 直接寻址直接寻址 R R寻址寻址 相对基址加变址相对基址加变址 R R寻址寻址 R R寻址寻址 基址加变址基址加变址 R R寻址寻址 R R相对寻址相对寻址 R R寻址寻址 I/OI/O端口寻址端口寻址 电气学院学习部资料库143.2 80863.2 8086指令系统指令系统一、数据传送指令一、数据传送指令1 1、通用数据传送指令、通用数据传送指令(1)MOV(1)MOV传送指令传送指令 格式:格式:MOV MOV 目的,源目的,源 功能:源操作数功能:源操作数 目的操作数,可实现目的操作数,可实现R R R
18、 R,R R M M,立即数,立即数 M M的传送(参见图的传送(参见图3-123-12)受影响的标志位:无受影响的标志位:无 例:例:MOV AXMOV AX,BX BX ;BX BX AXAX,R R R R MOV AX MOV AX,1064H 1064H ;M M R R MOV 1064H MOV 1064H,AX AX ;R R M M MOV MOV WORD PTRWORD PTR1000H1000H,1000H1000H;立即数;立即数 M M电气学院学习部资料库15注意:注意:v源操作数和目的操作数字长应相同源操作数和目的操作数字长应相同v立即数只能做源操作数,且不能被直
19、接送进段寄存器立即数只能做源操作数,且不能被直接送进段寄存器vIPIP寄存器不能用作源操作数,亦不能做目的操作数寄存器不能用作源操作数,亦不能做目的操作数vCSCS寄存器不能作目的操作数寄存器不能作目的操作数v不能在两个内存单元,或两个段寄存器之间直接传送数不能在两个内存单元,或两个段寄存器之间直接传送数据据v指令中至少要有一项操作数明确说明传送的是字节还是指令中至少要有一项操作数明确说明传送的是字节还是字字电气学院学习部资料库16DATA SEGMENTDATA SEGMENT AREA1 DB 14HAREA1 DB 14H,3BH3BH;变量名;变量名 助记符助记符 AREA2 DB 3
20、 DUPAREA2 DB 3 DUP(0 0);重复;重复3 3个个0 0存入存入AREA2AREA2起始的储存单元起始的储存单元 ARRAY DW 3100HARRAY DW 3100H,01A6H01A6H STRING DB STRING DB GOODGOODDATA ENDSDATA ENDSDOOG01HA6H31H00H00H00H00H3BH14HARRAYARRAYSTRINGSTRINGAREA1AREA1AREA2AREA2DATADATA:0000H0000HDATADATA:0002H0002HDATADATA:0005H0005HD DATAATA:0009H000
21、9H段定义符段定义符电气学院学习部资料库17说明:说明:v1.1.SEGMENTSEGMENTENDS ENDS 段定义语句段定义语句 DATA DATA 数据段段名数据段段名v2.2.DBDB、DW DW 数据定义语句数据定义语句 作用作用:将操作数存入变量名指定的存储单元将操作数存入变量名指定的存储单元 格式格式1 1:变量名:变量名 伪操作符伪操作符(DBDB、DWDW)操作数,操作数,操作数,操作数,.格式格式2 2:变量名:变量名 伪操作符伪操作符(DBDB、DWDW)n DUPn DUP(操作数,操作(操作数,操作数,数,.)其中,其中,DB DB 用来定义字节变量,用来定义字节变
22、量,DWDW用来定义字变量用来定义字变量v3.3.AREA1AREA1:变量名,将此变量的助记符后的第一个字节的偏:变量名,将此变量的助记符后的第一个字节的偏移地址作为它的符号地址移地址作为它的符号地址例:例:STRING1 DB STRING1 DB OKOK STRING2 DW STRING2 DW OKOK 例:例:STRING2 DW STRING2 DW GOODGOOD;错误;错误OKKOSTRING1STRING1STRING2STRING2电气学院学习部资料库18(2)(2)堆栈、出栈指令堆栈、出栈指令 PUSHPUSH、POPPOP 格式:格式:PUSH PUSH 源源 P
23、OP POP 目的目的 功能:功能:PUSH PUSH 将源操作数压到堆栈中,将源操作数压到堆栈中,POPPOP将堆栈中数据弹出到将堆栈中数据弹出到目的操作数目的操作数 受影响的标志位:无受影响的标志位:无 说明:说明:v按按“字字”操作操作,源操作数可以是,源操作数可以是1616位通用寄存器,段寄存位通用寄存器,段寄存器或存储器中的数据字器或存储器中的数据字 PUSH PUSH:(:(SPSP)-2-2 SPSP,POPPOP:(:(SPSP)+2+2 SPSP 操作数不能是立即数操作数不能是立即数 例:例:PUSH 1000HPUSH 1000H;错误;错误v堆栈操作原则:堆栈操作原则:先
24、进后出先进后出v SPSP始终指向栈顶,且总是指向偶地址单元,其值可以从始终指向栈顶,且总是指向偶地址单元,其值可以从FFFEHFFFEH开始开始v POP POP指令中,指令中,CS CS 不能做目的操作数,即不能做目的操作数,即 PUSH CS PUSH CS 正确,正确,而而POP CS POP CS 错误错误电气学院学习部资料库19 PUSH AX PUSH AX PUSH BX PUSH BX .POP BX POP BX POP AX POP AXC000C000C000C000:0000H0000H0000H0000HS SP P11H 00H 33H 22HC000C000C0
25、00C000:C0FEHC0FEHC0FEHC0FEHC000C000C000C000:C0FCHC0FCHC0FCHC0FCHC000C000C000C000:C100HC100HC100HC100HS SP PS SP P堆栈段末地址堆栈段末地址(栈底)(栈底)堆栈段首地址堆栈段首地址栈顶栈顶 例:已知指令执行前(例:已知指令执行前(SSSS)=C000H=C000H,(,(SPSP)=C100H=C100H,(AXAX)=1100H=1100H,(,(BXBX)=3322H=3322H;该指令执行后(;该指令执行后(SPSP)=C0FEH=C0FEH;该指令执行后(;该指令执行后(SPS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机原理与应用教学资料 微机 原理 应用 教学 资料 第三 课件
限制150内