最新微机原理第三章课件PPT课件.ppt
《最新微机原理第三章课件PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新微机原理第三章课件PPT课件.ppt(175页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微机原理第三章课件微机原理第三章课件3.1 3.1 指令系统的概述及寻址方式指令系统的概述及寻址方式 一条指令需要指出两部分内容:一条指令需要指出两部分内容:1 1、要进行什么操作(由操作码指出)、要进行什么操作(由操作码指出)2 2、指令所涉及的操作数和操作结果存放的位置、指令所涉及的操作数和操作结果存放的位置 1)161)16位寄存器为位寄存器为AX,BX,CX,DX,SI,DI,SP,BPAX,BX,CX,DX,SI,DI,SP,BP;2)8 2)8位寄存器为位寄存器为AH,AL,BH,BL,CH,CL,DH,DLAH,AL,BH,BL,CH,CL,DH,DL;3)3)源操作数,目的操作
2、数都(同时)可以使用源操作数,目的操作数都(同时)可以使用 寄存器寻址寄存器寻址说明:说明:例:例:MOV SS,AXMOV SS,AX指令执行前指令执行前(AX)=3064H(AX)=3064H (SS)=1234H (SS)=1234H指令执行后指令执行后(SS)=3064H(SS)=3064H (AX)(AX)保持不变保持不变3.3.存储器寻址方式存储器寻址方式1 1)直接寻址方式)直接寻址方式 操作数在存储器中,存储单元的地址由操作数在存储器中,存储单元的地址由指令直接给出指令直接给出格式:格式:操作码操作码 地址表达式或地址表达式或 地址表达式地址表达式 或或 数字表达式数字表达式
3、例:例:MOV AL,TABLEMOV AL,TABLE MOV AL,TABLE MOV AL,TABLE MOV AL,1000H MOV AL,1000HTABLE TABLE 是在数据段定义的一个字节数组的首地址标号是在数据段定义的一个字节数组的首地址标号(变量名),其偏移地址为(变量名),其偏移地址为1000H1000H例如:例如:MOV AX,1000HMOV AX,1000H指令执行前指令执行前:(DS)=3000H:(DS)=3000H,(31000)=12H,(31000)=12H,(31001)=34H (31001)=34H3412H3412H指令执行后指令执行后:(AX
4、)=?:(AX)=?31000H31000H31001H31001H12H12H34H34HAXAX 默认的段寄存器位默认的段寄存器位DSDS,如果不是,如果不是DSDS,则需要,则需要用前缀说明用前缀说明说明:说明:MOV AX,ES:1000HMOV AX,ES:1000H将将ESES段中段中1000H1000H和和1001H1001H两个单元的内容送到两个单元的内容送到BXBX中中MOV AX,1000HMOV AX,1000H 基址寄存器:基址寄存器:BX,BPBX,BP;变址寄存器:;变址寄存器:SI,DISI,DI操作数在存储器中,存储单元的有效地址在寄存器中。操作数在存储器中,存
5、储单元的有效地址在寄存器中。2 2)寄存器间接寻址方式)寄存器间接寻址方式格式:格式:操作码操作码 基址寄存器名或者变址寄存器名基址寄存器名或者变址寄存器名 例:例:MOV AX,BX MOV AX,BX MOV AX,SI MOV AX,SI例如:例如:MOV AX,BXMOV AX,BX假设指令执行前假设指令执行前:(DS)=3000H(DS)=3000H,(BX)=1010H,(BX)=1010H,(31010)=12H(31010)=12H(31011)=24H(31011)=24H2412H2412H指令执行后指令执行后:(AX)=?:(AX)=?AXAX31010H31010H31
6、011H31011H12H12H24H24H存储器存储器 若指令中指定的寄存器是若指令中指定的寄存器是BX,SI,DIBX,SI,DI,则操作数,则操作数默认在数据段中,即在默认在数据段中,即在DSDS中为段基址;中为段基址;若指令中指出寄存器为若指令中指出寄存器为BPBP,则操作数默认在堆栈段,则操作数默认在堆栈段,即在即在SSSS中为段基址中为段基址说明:说明:1)1)以以SI,DI,BXSI,DI,BX为寄存器间接寻址为寄存器间接寻址默认段寄存器为默认段寄存器为DSDS如使用其它段寄存器需要加前缀说明如使用其它段寄存器需要加前缀说明MOV AX,ES:BXMOV AX,ES:BX2)2)
7、以以BPBP为寄存器间接寻址为寄存器间接寻址默认段寄存器为默认段寄存器为SSSS如使用其它段寄存器需要加前缀说明如使用其它段寄存器需要加前缀说明MOV AX,ES:BPMOV AX,ES:BP3 3)寄存器相对寻址方式)寄存器相对寻址方式 操作数在存储器中,存储单元的有效地址是寄存器操作数在存储器中,存储单元的有效地址是寄存器的值与一个的值与一个整数整数之和。之和。格式:格式:操作码操作码 变量名变量名 基址寄存器名或者变址寄存器名基址寄存器名或者变址寄存器名 操作码操作码 变量名变量名+基址寄存器名或者变址寄存器名基址寄存器名或者变址寄存器名 操作码操作码 符号名符号名 基址寄存器名或者变址
8、寄存器名基址寄存器名或者变址寄存器名 操作码操作码 变量名变量名+基址寄存器名或者变址寄存器名基址寄存器名或者变址寄存器名 操作码操作码 数字表达式数字表达式基址寄存器名或者变址寄存器名基址寄存器名或者变址寄存器名 例:例:TABLE TABLE 是在数据段定义的一个字节数组的是在数据段定义的一个字节数组的首地址标号(也成变量名)则:首地址标号(也成变量名)则:MOV SI,5 MOV SI,5 MOV AL,TABLESI MOV AL,TABLESI或者或者 MOV AL,TABLE+SI MOV AL,TABLE+SI 若指令中指定的寄存器是若指令中指定的寄存器是BX,SI,DIBX,S
9、I,DI,则操作数,则操作数默认在数据段中,即在默认在数据段中,即在DSDS中为段基址;中为段基址;若指令中指出寄存器为若指令中指出寄存器为BPBP,则操作数默认在附加,则操作数默认在附加数据段中,即在数据段中,即在ESES中为段基址中为段基址说明:说明:4 4)基址变址寻址方式)基址变址寻址方式MOV AX,BXSIMOV AX,BXSI或或MOV AX,BX+SIMOV AX,BX+SI操作数的偏移地址是两个指定寄存器之和操作数的偏移地址是两个指定寄存器之和格式:格式:操作码操作码 基址寄存器名基址寄存器名变址寄存器名变址寄存器名 操作码操作码 基址寄存器名基址寄存器名+变址寄存器名变址寄
10、存器名 例:例:MOV AX,BXSIMOV AX,BXSI用途:用途:5 5)相对基址变址寻址方式)相对基址变址寻址方式 操作数偏移地址在指定寄存器的值和相对操作数偏移地址在指定寄存器的值和相对偏移量之和偏移量之和格式:格式:操作码操作码 变量名变量名 基址寄存器名基址寄存器名变址寄存器名变址寄存器名 操作码操作码 变量名变量名+基址寄存器名基址寄存器名+变址寄存器名变址寄存器名-MOV AX,MASKBXSIMOV AX,MASKBXSI或或MOV AX,MASKBX+SIMOV AX,MASKBX+SI或或MOV AX,MASK+BX+SIMOV AX,MASK+BX+SI例:例:MOV
11、 AX,MASKBXDIMOV AX,MASKBXDI 若指令中指定的基址寄存器是若指令中指定的基址寄存器是BXBX,则操作数,则操作数默认在数据段中,即在默认在数据段中,即在DSDS中为段基址;中为段基址;若指令中指定的基址寄存器为若指令中指定的基址寄存器为BPBP,则操作数默认在,则操作数默认在附加数据段中,即在附加数据段中,即在ESES中为段基址中为段基址说明:说明:用途:用途:小结小结综观综观8086/80888086/8088寻址方式,其操作数有三种类型:寻址方式,其操作数有三种类型:立即操作数立即操作数寄存器操作数寄存器操作数存储器操作数存储器操作数指令寻址有以下四种:指令寻址有以
12、下四种:1.1.段内直接寻址段内直接寻址2.2.段间寻址方式段间寻址方式3.3.段内间接寻址段内间接寻址4.4.段间间接寻址段间间接寻址确定下一条要执行指令的地址的方法确定下一条要执行指令的地址的方法1.1.段内直接寻址段内直接寻址格式:格式:指令名指令名 SHORT SHORT 转移目标地址标号转移目标地址标号指令名指令名 转移目标地址标号转移目标地址标号指令名指令名 NEAR PTR NEAR PTR转移目标地址标号转移目标地址标号JMP SHORT NEXTJMP SHORT NEXT这种指令只改变这种指令只改变IPIP寄存器的值,而不改变寄存器的值,而不改变CSCS的值的值位移量位移量
13、指令指令IPIP寄存器寄存器IPIP寄存器寄存器段内寻址示意图段内寻址示意图2.2.段间直接寻址段间直接寻址格式:格式:指令名指令名 FAR PTR FAR PTR 转移目标地址标号转移目标地址标号指令名指令名 段地址段地址:段内偏移量段内偏移量JMP FAR PTR NEXT1JMP FAR PTR NEXT1这种指令不仅改变这种指令不仅改变IPIP寄存器的值,而且改变寄存器的值,而且改变CSCS的值的值地址地址指令指令段间寻址示意图段间寻址示意图段地址段地址IPIP寄存器寄存器CSCS寄存器寄存器3.3.段内间接寻址段内间接寻址格式:格式:指令名指令名 16 16寄存寄名寄存寄名指令名指令
14、名 WORD PTR WORD PTR 存储器寻址方式存储器寻址方式JMP WORD PTR TABLEBXJMP WORD PTR TABLEBX这种指令只改变这种指令只改变IPIP寄存器的值,而不改变寄存器的值,而不改变CSCS的值的值寄存器编号寄存器编号指令指令段内间接寻址示意图段内间接寻址示意图IPIP寄存器寄存器转移目标地址转移目标地址的偏移地址的偏移地址1616位寄位寄存器存器存储器寻址方存储器寻址方式式指令指令IPIP寄存器寄存器转移目标地址转移目标地址的偏移地址的偏移地址存储器存储器计算物理地址计算物理地址4.4.段间间接寻址段间间接寻址格式:格式:指令名指令名 DWORD P
15、TR DWORD PTR 存储器寻址方式存储器寻址方式JMP DWORD PTR TABLEBXJMP DWORD PTR TABLEBX这种指令不仅改变这种指令不仅改变IPIP寄存器的值,而且改变寄存器的值,而且改变CSCS的值的值段间间接寻址示意图段间间接寻址示意图存储器寻存储器寻址方式址方式指令指令IPIP寄存器寄存器转移目标地址转移目标地址的偏移地址的偏移地址存储器存储器计算物理地址计算物理地址CSCS寄存器寄存器3.2 8086/8088CPU3.2 8086/8088CPU的指令系统的指令系统3.2.1 3.2.1 数据传送指令数据传送指令3.2.2 3.2.2 算术运算指令算术运
16、算指令3.2.3 3.2.3 逻辑运算和移位指令逻辑运算和移位指令3.2.4 3.2.4 串操作指令串操作指令3.2.5 3.2.5 控制转移指令控制转移指令3.2.6 3.2.6 处理器控制指令处理器控制指令3.2.1 3.2.1 数据传送指令数据传送指令u通用传送指令通用传送指令u累加器传送指令累加器传送指令u地址传送指令地址传送指令u标志传送指令标志传送指令1.1.通用传送指令通用传送指令1)1)最基本的传送指令最基本的传送指令MOVMOV格式:格式:MOV MOV 目的操作数目的操作数 源操作数源操作数功能功能:将源操作数存入目的操作数的寄存器或存储单元:将源操作数存入目的操作数的寄存
17、器或存储单元 寄存器寄存器内存内存实现实现:寄存器:寄存器寄存器寄存器 内存内存/寄存器寄存器立即数立即数 寄存器寄存器段寄存器段寄存器 内存内存段寄存器段寄存器例:例:MOV AX,BX MOV AX,BX MOV AX,1010H MOV AX,1010H 说明:说明:1 1、目的操作数不能是立即数、目的操作数不能是立即数2 2、不能在两个内存单元之间直接传送数据、不能在两个内存单元之间直接传送数据3 3、不能将立即操作数送给段寄存器、不能将立即操作数送给段寄存器4 4、段寄存器之间不能相互传送数据、段寄存器之间不能相互传送数据5 5、CS,IP,PSWCS,IP,PSW不能作为目的操作数
18、,但可以作为不能作为目的操作数,但可以作为 源操作数源操作数6 6、源操作数和目的操作数字长必须相等、源操作数和目的操作数字长必须相等7 7、MOVMOV指令不影响标志位指令不影响标志位1.MOV MEM2,MEM11.MOV MEM2,MEM1修改为:修改为:MOV AX,MEM1 MOV AX,MEM1 MOV MEM2,AX MOV MEM2,AX2.MOV DS,2000H2.MOV DS,2000H修改为:修改为:MOV AX,2000H MOV AX,2000H MOV DS,AX MOV DS,AX3.MOV ES,DS3.MOV ES,DS修改为:修改为:MOV AX,DS M
19、OV AX,DS MOV ES,AX MOV ES,AX例题:例题:2)2)数据进栈指令数据进栈指令PUSHPUSH和出栈指令和出栈指令POPPOP 堆栈是一段内存区域,可以用于保护中间数据、堆栈是一段内存区域,可以用于保护中间数据、运算结果或某些寄存器的值,需要时可以从堆栈中运算结果或某些寄存器的值,需要时可以从堆栈中将数据取出来。将数据取出来。堆栈按照先进后出的原则来保存数据堆栈按照先进后出的原则来保存数据 微机一般把内存的一段区间作为堆栈使用,即微机一般把内存的一段区间作为堆栈使用,即堆栈段堆栈段SSSS。段内物理地址由。段内物理地址由SSSS和和SPSP决定,决定,SPSP始终指始终指
20、向栈顶。对于数据的的保存和恢复需要有由堆栈指向栈顶。对于数据的的保存和恢复需要有由堆栈指令来完成令来完成格式:格式:PUSH PUSH 操作数操作数 POP POP 操作数操作数假设假设(SSSS)=9000H=9000H,堆栈段位堆栈段位64KB64KB(SP)=0E200H(SP)=0E200H则:则:整个堆栈段的物理地址整个堆栈段的物理地址范围为:范围为:90000H9FFFFH堆栈物理地址为:堆栈物理地址为:9E200H9E200H举例:举例:PUSH AX;PUSH AX;将将AXAX内容压入堆栈内容压入堆栈POP BX;POP BX;将堆顶内容弹出到将堆顶内容弹出到BXBX(1)(
21、1)(2)(2)说明:说明:1 1、80868086的堆栈操作总是按字进行的;的堆栈操作总是按字进行的;2 2、每推入一个字,、每推入一个字,SPSP减减2 2,一个字的高字节放,一个字的高字节放在堆栈的较高地址,低字节放在较低地址;弹在堆栈的较高地址,低字节放在较低地址;弹出一个字,出一个字,SPSP加加2 2;3 3、堆栈的内容按先进后出的原则;、堆栈的内容按先进后出的原则;4 4、不能使用立即寻址方式;、不能使用立即寻址方式;5 5、PUSHPUSH和和POPPOP指令不影响标志位;指令不影响标志位;6 6、CSCS可以压入堆栈,但栈中的值出断点的之可以压入堆栈,但栈中的值出断点的之外外
22、 不能弹入到不能弹入到CSCS3)3)标志进栈指令标志进栈指令PUSHFPUSHF和出栈指令和出栈指令POPFPOPF将将1616位堆栈数据压入或弹出到位堆栈数据压入或弹出到标志寄存器标志寄存器(PSW)(PSW)中中PUSHPUSH执行的操作:执行的操作:(SP)(SP)(SP)-2(SP)-2(SP)+1,(SP)(SP)+1,(SP)PSWPSWPOPPOP执行的操作:执行的操作:(SP)+1,(SP)(SP)+1,(SP)PSWPSW(SP)+2(SP)+2(SP)(SP)设置设置TF=1TF=1则:则:PUSHFPUSHFPOP AXPOP AXOR AH,01HOR AH,01HP
23、USH AXPUSH AXPOPFPOPF4)4)数据交换指令数据交换指令XCHGXCHG格式:格式:XCHG XCHG 目的操作数,源操作数目的操作数,源操作数实现:实现:寄存器寄存器 寄存器,寄存器寄存器,寄存器 内存内存功能:功能:实现源和目的操作数的存放位置实现源和目的操作数的存放位置说明:说明:1 1、目的操作数和源操作数不能为立即数或段寄存器,、目的操作数和源操作数不能为立即数或段寄存器,并且不能同时为内存单元;并且不能同时为内存单元;2 2、CSCS和和IPIP不能为交换指令的源或目的操作数;不能为交换指令的源或目的操作数;3 3、目的和源操作数的取值范围应相同,即同为、目的和源
24、操作数的取值范围应相同,即同为8 8位位或同为或同为1616位;位;XCHG BL,DLXCHG BL,DLXCHG AX,SIXCHG AX,SIXCHG DI,ALXCHG DI,AL XCHG BX,DI XCHG BX,DI XCHG DS,AX XCHG DS,AX例题:例题:错错错错2.2.累加器专用指令累加器专用指令1)1)累加器输入累加器输入/输出指令输出指令ININ,OUTOUT输入指令用于输入指令用于CPUCPU从外设端口接收数据从外设端口接收数据输出指令用于输出指令用于CPUCPU从外设端口发送数据从外设端口发送数据实现:实现:AL 8 AL 8位位I/OI/O端口,端口
25、,AX 16AX 16位位I/OI/O端口端口端口:端口:端口端口:CPUCPU与外设之间通过接口进行数据交换,一个端口与外设之间通过接口进行数据交换,一个端口通常对应接口中的一个或一组寄存器。每个通常对应接口中的一个或一组寄存器。每个8 8位端口有一位端口有一个地址,叫端口号,两个相邻的个地址,叫端口号,两个相邻的8 8位端口可以组成一个位端口可以组成一个1616位地址位地址端口数端口数:外部设备最多可以有外部设备最多可以有6553665536个(个(64KB64KB)个)个 由由A A0 0A A1616译码形成译码形成端口号端口号:即:即外部设备端口地址,为外部设备端口地址,为00000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 微机 原理 第三 课件 PPT
限制150内