微机原理课件第03章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《微机原理课件第03章.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课件 03
- 资源描述:
-
1、微机原理与接口技术李宝平计算机学院通信工程系80 x86指令系统指令系统 80 x86指令系统指令系统 指令指令 控制计算机完成指定操作的命令控制计算机完成指定操作的命令机器指令机器指令指令的二进制代码形式。例如:指令的二进制代码形式。例如:CD21H汇编指令汇编指令助记符形式的指令。例如:助记符形式的指令。例如:INT 21H指令系统指令系统CPU所有指令及其使用规则的集合所有指令及其使用规则的集合80 x86指令系统指令系统 参见 附录1 8086/8088 指令系统 P458(1)数据传送类;)数据传送类;(2)算术运算类;)算术运算类;(3)逻辑运算和移位;)逻辑运算和移位;(4)串操
2、作;)串操作;(5)控制转移类;)控制转移类;(6)处理器控制。)处理器控制。80 x86指令系统指令系统 说明要执行的是说明要执行的是什么操作什么操作操作对象,可以有操作对象,可以有0个、个、1个或个或2个个目的目的源源80 x86指令系统指令系统 指令举例:ADD AX,SI+6MOV AX , BX操作码 操作数INC BXHLT80 x86指令系统指令系统 80 x86指令系统指令系统 MOV AX,0FA00H;正确正确MOV 8000H,DX;错误错误操作数操作数数据(立即数)数据(立即数)地址地址: 寄存器寄存器(名称名称)、存储器单元(地址)、存储器单元(地址) I/O接口的端
3、口(地址)接口的端口(地址)80 x86指令系统指令系统 放在放在8个个通用寄存器通用寄存器或或4个个段寄存器段寄存器中的操作数中的操作数1 6 位位B XB HB L1 6 位位C XC HC L1 6 位位D XD HD L表示参加运算的数存放在指令给出的寄存器中,可以是表示参加运算的数存放在指令给出的寄存器中,可以是16位或位或8位。位。80 x86指令系统指令系统 只能存放字操作数只能存放字操作数段寄存器存放段寄存器存放当前操作数的当前操作数的段基地址段基地址可可作为源或目的操作数作为源或目的操作数(但但CS不作为目的操作数不作为目的操作数), 不允许将不允许将立即数传送到段寄存器立即
4、数传送到段寄存器, 可通过某个通用寄存器传递改变可通过某个通用寄存器传递改变SIDIBPSPCSDSESSS80 x86指令系统指令系统 存储器操作数存储器操作数字节字节字字双字双字124类型类型存储单元个数存储单元个数一般不允许一般不允许两个两个操作数同时为存储器操作数操作数同时为存储器操作数Flags 标志寄存器: 仅有个别指令可用它作为操作数 IP 不能用指令指针寄存器: 它作为操作数, 顺序执行时它自动加1,跳转执行时自动会跳转表示当前参加运算的数存放在存储器的某表示当前参加运算的数存放在存储器的某1/2/4个单元中个单元中80 x86指令系统指令系统 存储单元的存储单元的物理地址物理
5、地址 = 段基地址段基地址16 + 偏移地址偏移地址若指令中没有指明所涉及的段寄存器,CPU就采用默认的段寄存器来确定操作数所在的段。表表3.3 段寄存器使用的一些基本约定段寄存器使用的一些基本约定80 x86指令系统指令系统 存储器操作数的存储器操作数的偏移地址偏移地址(也称(也称有效地址有效地址EA)要要用用“EA”方括方括号括起来号括起来, 它它可以通过不同的寻址方式由指令给出可以通过不同的寻址方式由指令给出; 存储器操作数的存储器操作数的段基地址段基地址(也称也称段段头地址头地址)一般省去,按隐含规一般省去,按隐含规则确定它们,也可直接给出进行段超越。则确定它们,也可直接给出进行段超越
6、。例如例如 若若(BX)=2000H, (SI)=0A00H, (DI)=2A00H, 则以下指令的结果是一样的:则以下指令的结果是一样的:MOV AL, 2A00H ;隐含段头为隐含段头为DS,直接寻址,直接寻址MOV AL, BX+0A00H ;隐含段头为隐含段头为DS ,寄存器相对寻址,寄存器相对寻址MOV AL, BXSI ;隐含段头为隐含段头为DS,基址,基址-变址寻址变址寻址MOV AL, DI ;隐含段头为隐含段头为DS,寄存器间接寻址,寄存器间接寻址但但 MOV AL, ES:2A00H ; 段超越,段头为段超越,段头为ES,与前,与前4条不同条不同存储单元的存储单元的物理地址
7、物理地址 = 段基地址段基地址16 + 偏移地址偏移地址注意:注意:存储器数据表示形式:存储器数据表示形式: 地址值或寄存器地址值或寄存器80 x86指令系统指令系统 I/O接口操作数接口操作数字节字节字字12类型类型 存储单元个数存储单元个数一般不允许一般不允许两个两个操作数同时为操作数同时为I/O接口接口操作数操作数I/O接口地址为接口地址为16位位,一般采用,一般采用DX寄存器间接寻址给出;有时寄存器间接寻址给出;有时I/O接口地址仅用接口地址仅用8位位,这时可采用直接寻址。,这时可采用直接寻址。例如:IN AL,DX; 括号习惯都省去写为 IN AL,DX OUT 80H,AL;括号习
8、惯都省去写为 OUT 80H,AL注意:注意:不要理解为:MOV AL, DX 和MOV 80H,AL ,它们完全不同。表示当前参加运算的数存放在表示当前参加运算的数存放在I/O接口的某接口的某1/2个端口中个端口中80 x86指令系统指令系统 取指令取指令取操作数取操作数执行指令执行指令传送结果传送结果单位用时钟周期数单位用时钟周期数T表示表示常用指令执行时间常用指令执行时间 P458P458计算偏移地址计算偏移地址EAEA所需时间所需时间结论:结论: 1)尽量使用寄存器作为操作数)尽量使用寄存器作为操作数 2)若有可能,用移位代替乘除法)若有可能,用移位代替乘除法 3)尽量使用简单的寻址方
9、式)尽量使用简单的寻址方式执行执行80 x86指令系统指令系统 80 x86指令系统指令系统 l 操作数操作数(为一常数为一常数)直接直接由指令给出由指令给出 (此操作数称为此操作数称为立即数立即数)l 立即寻址只能用于源操作数立即寻址只能用于源操作数l 例:例: MOV AX, 1C8FH MOV BYTE PTR2A00H, 8FH 错误例:错误例: MOV 2A00H, AX ; 错误!错误! 80 x86指令系统指令系统 立即数立即数操作码操作码低低8位位高高8位位存储器存储器MOV操作码操作码02H31HAHAL代码段代码段立即寻址指令在存立即寻址指令在存储器中的存放形式储器中的存放
10、形式AX指令操作例:指令操作例:MOV AX,3102H ; AX 3102H 执行后,执行后,(AH) = 31H,(AL) = 02H用途:用途:直接给出操作数据,立即数存放在内存的代码段中80 x86指令系统指令系统 l 操作数放在某个寄存器中操作数放在某个寄存器中l 源操作数与目的操作数字长要相同源操作数与目的操作数字长要相同l 寄存器寻址与段地址无关寄存器寻址与段地址无关l 例:例: MOV AX, BX MOV 3F00H, AX MOV CL, AL 错误例:错误例: MOV AX, BL ; 字长不同字长不同 MOV ES: AX, DX ; 寄存器与段无关寄存器与段无关80
11、x86指令系统指令系统 AXSI2233H2233H指令操作例:指令操作例:MOV SI,AX ; SI (AX) 指令执行前:(AX)=2233H 指令执行后:(AX)=2233H,(SI)=2233H用途:用途:操作数存放在寄存器中,根据寄存器名称寻找寄存器里面的数据。80 x86指令系统指令系统 l 指令指令中直接给出中直接给出存储器操作数的存储器操作数的16位位偏移地址偏移地址 或或I/O接口接口仅仅8位端口地址位端口地址 存储器偏移地址也称为存储器偏移地址也称为有效地址有效地址(EA, Effective Address)l存储器存储器默认默认的段寄存器为的段寄存器为DS, 但也可以
12、显式地指定其他段寄存器但也可以显式地指定其他段寄存器称为称为段超越段超越前缀前缀l存储器偏移地址也可用存储器偏移地址也可用符号地址符号地址来表示,如来表示,如ADDR、VARl 例:例: MOV AX , 2A00H; 段头隐含为段头隐含为DS MOV DX , ES: 2A00H;段超越;段超越 MOV SI , TABLE_PTR; 段头隐含为段头隐含为DS还有:还有: IN AL,90H;括号可以省去;括号可以省去 OUT 85H,AL;括号可以省去;括号可以省去80 x86指令系统指令系统 例:例:MOV AX,3102H ;AL (3102H) , AH (3103H)如果(DS)=
13、2000H, (23102H) = CDH, (23103H) = ABH则操作数的物理地址为: 20000H+3102H = 23102H指令执行后:(AX) = ABCDHMOV操作码操作码02H31HAHAL23102HCDHABH存储器存储器代码段数据段.23103H用途:用途:用于操作数存放在存储器单元中 或I/O接口地址仅为8位的的端口中80 x86指令系统指令系统 EA = (BX)(BP)(SI)(DI)80 x86指令系统指令系统 44H33H60001200DSSI6000061200 61200HAX存储器存储器数据段 +) 120044H33H用途:用途:操作数存放在存
14、储器或I/O接口地址为16位的的寻址80 x86指令系统指令系统 l EA=间址寄存器的内容间址寄存器的内容 + 8/16位的位移量位的位移量寄存器相对寻址寄存器相对寻址常用于存取表格或一维数组中的常用于存取表格或一维数组中的元素元素把把表格的起始地址作为位移量表格的起始地址作为位移量,元素的下元素的下标值放在间址寄存器中标值放在间址寄存器中(或反之)(或反之)EA = (BX)(BP)(SI)(DI)+ 8位16位位移量 80 x86指令系统指令系统 80 x86指令系统指令系统 操作码操作码00 偏移量低2A 偏移量高DS 60000BX 1000 + DATA 2A0063A0063A0
15、0HAHALAX代码段数据段.66H55HMOV AX,DATABX用途:用途:操作数存放在存储器地址指定的单元中80 x86指令系统指令系统 l 若操作数的偏移地址:若操作数的偏移地址: 由由基址寄存器基址寄存器( (BXBX或或BPBP) )给出给出 基址寻址方式基址寻址方式 由由变址寄存器变址寄存器( (SISI或或DIDI) )给出给出 变址寻址方式变址寻址方式l 由一个基址寄存器由一个基址寄存器的内容和一个变址寄存器的内容和一个变址寄存器的内的内容相加而形成操作数的偏移地址容相加而形成操作数的偏移地址,称为称为基址基址-变址寻变址寻址址。EA = (BX)(BP)+ (SI)(DI)
16、l 同一组内的寄存器不能同时出现同一组内的寄存器不能同时出现。基址寄存器基址寄存器变址寄存器变址寄存器80 x86指令系统指令系统 用途:用途:操作数存放在存储器地址指定的单元中80 x86指令系统指令系统 83000操作码操作码DS 80000BX 2000 + SI 100083000HAHALAX代码段数据段.YYXX指令操作例:指令操作例:MOV AX,BXSI假定:假定:(DS)=8000H, (BX)=2000H, SI=1000H则物理地址则物理地址 = 80000H + 2000H + 1000H = 83000H= 80000H + 2000H + 1000H = 83000
17、H指令执行后指令执行后: (: (AL)AL)=83000H83000H ( (AH)AH)=83001H83001H 80 x86指令系统指令系统 l 在基址在基址-变址寻址的基础上再加上一个相对位变址寻址的基础上再加上一个相对位移量移量l 注意事项同注意事项同基址基址-变址寻址变址寻址EA = (BX)(BP)+ (SI)(DI)+ 8位16位位移量 l 例:例:MOV AX,BASE SI BXMOV AX,BX+BASE SIMOV AX,BX+SI+BASEMOV AX,BX BASE SIMOV AX,BX+SI BASE基址基址变址变址用途:用途:操作数存放在存储器地址指定的单元
18、中80 x86指令系统指令系统 指令指令操作例:操作例:MOV AX,DATADIBX若(DS)=8000H, (BX)=2000H, (DI)=1000H, DATA=200H则指令执行后(AH)=83021H, (AL)=83020H8320083200HAHALAX+ DATA 0200操作码操作码代码段数据段.YYXXDS 80000BX 2000DI 100080 x86指令系统指令系统 使用相对的基址使用相对的基址-变址寻址方式可以很方便地访变址寻址方式可以很方便地访问二维数组问二维数组。基址寄存器基址寄存器数组首地址数组首地址变址寄存器变址寄存器数组元素数组元素行行址址位移量位移
19、量数组元素数组元素列列址址(偏移地址)(偏移地址)二维数组例:内存图示(按行存储)二维数组例:内存图示(按行存储)(行位移地址)(行位移地址)(行内元素下标)(行内元素下标)1 8 32 5 24 0 9A = 80 x86指令系统指令系统 80 x86指令系统指令系统 l 指令操作数是隐含的,在指令中未显式地指明。指令操作数是隐含的,在指令中未显式地指明。l 例:例:MUL BL 指令隐含了被乘数指令隐含了被乘数AL及乘积及乘积AXl 类似的指令还有:类似的指令还有:XLAT、DIV、CBW、MOVS等等(AL)()(BL)AX用途:用途:操作数存放在寄存器或存储器地址指定的单 元中80 x
20、86指令系统指令系统 80 x86指令系统指令系统 80 x86指令系统指令系统 80 x86指令系统指令系统 80 x86指令系统指令系统 80 x86指令系统指令系统 JMP NEAR PTR PROGIA; (IP)(IP)当前当前+16位位移量位位移量 段内直接寻址JMP NEAR PTR PROGIAOPOP00H00H12H12H.OPOP03H03HPROGIA=3172AHPROGIA=3172AH(IP)IP)当前当前 = = 3052AH3052AH1616位的位移量位的位移量3172AH-3052AH3172AH-3052AH存储器存储器跳转跳转80 x86指令系统指令系
21、统 80 x86指令系统指令系统 80 x86指令系统指令系统 80 x86指令系统指令系统 80 x86指令系统指令系统 80 x86指令系统指令系统 OPOP34H34H12H12H00H00H50H50H.存储器存储器2000:1000H2000:1000HJMP FAR CCCJMP FAR CCCCCC:CCC:5000:1234H5000:1234H.2000H2000H段段5000H5000H段段80 x86指令系统指令系统 80 x86指令系统指令系统 80 x86指令系统指令系统 l指令由(指令由( )和()和( )构成)构成l如何取得操作数如何取得操作数称为(称为( )操作
22、码操作码 操作数操作数寻址方式寻址方式80 x86指令系统指令系统 l寻址方式可分寻址方式可分8种种立即寻址立即寻址直接寻址直接寻址 - 针对针对M、I/O寄存器相对寻址寄存器相对寻址 - 针对针对M寄存器寻址寄存器寻址 - 针对针对R基址基址-变址寻址变址寻址 - 针对针对M基址基址-变址相对寻址变址相对寻址- 针对针对M寄存器间接寻址寄存器间接寻址 - 针对针对M、I/O隐含寻址隐含寻址 - 针对针对R、M80 x86指令系统指令系统 80 x86指令系统指令系统 80 x86指令系统指令系统 80 x86指令系统指令系统 80 x86指令系统指令系统 80 x86指令系统指令系统 80
23、x86指令系统指令系统 80 x86指令系统指令系统 80 x86指令系统指令系统 80 x86指令系统指令系统 80 x86指令系统指令系统 l应用举例:将1000H开始的100个存储单元 全部填充为ASCII码2AH(*)。程序段如下( (例例001)001) MOV DI,1000H MOV CX,64H MOV AL,2AH;*AGAIN:MOV SI,AL INC SI DEC CX JNZ AGAIN HLT80 x86指令系统指令系统 上程序段存放在代码段代码段中,设(CS)=109EH,则各条指令存放地址如下: CS : IP CS : IP 指令指令109E : 0100 M
24、OV DI,1000H109E : 0103 MOV CX,64H109E : 0106 MOV AL,2AH109E : 0108 MOV DI,AL109E : 010A INC DI109E : 010B DEC CX109E : 010C JNZ 0108109E : 010E HLT109E : 011080 x86指令系统指令系统 写入2AH(*)后,数据段中相应存储单元的内容改变如下:DS:1000DS:1000 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2ADS:1010DS:1010 2A 2A 2A 2A 2A 2A 2A 2
25、A 2A 2A 2A 2A 2A 2A 2A 2ADS:1020DS:1020 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2ADS:1030DS:1030 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2ADS:1040DS:1040 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2ADS:1050DS:1050 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2ADS:1060DS:1060 2A 2A 2A 2A8
展开阅读全文