![第10章80X86和Pentium指令系统简介电子教案_第1页](http://file4.renrendoc.com/view14/M0A/07/23/wKhkGWeIk5aABft4AAFa7E6BnMw719.jpg)
![第10章80X86和Pentium指令系统简介电子教案_第2页](http://file4.renrendoc.com/view14/M0A/07/23/wKhkGWeIk5aABft4AAFa7E6BnMw7192.jpg)
![第10章80X86和Pentium指令系统简介电子教案_第3页](http://file4.renrendoc.com/view14/M0A/07/23/wKhkGWeIk5aABft4AAFa7E6BnMw7193.jpg)
![第10章80X86和Pentium指令系统简介电子教案_第4页](http://file4.renrendoc.com/view14/M0A/07/23/wKhkGWeIk5aABft4AAFa7E6BnMw7194.jpg)
![第10章80X86和Pentium指令系统简介电子教案_第5页](http://file4.renrendoc.com/view14/M0A/07/23/wKhkGWeIk5aABft4AAFa7E6BnMw7195.jpg)
kok电子竞技权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
kok电子竞技:文档简介
第十章80X86和Pentium指令系统简介第10章80X86和Pentium指令系统简介10.1指令的特点10.2寻址方式10.3指令系统第10章80X86和Pentium指令系统简介10.1指令的特点10.2寻址方式10.3指令系统第10章80X86和Pentium指令系统简介10.1指令的特点10.2寻址方式10.3指令系统10.2寻址方式80286CPU的寻址方式80386CPU的寻址方式80486CPU的寻址方式及Win32程序简介80286CPU的寻址方式10.2寻址方式80286CPU有两种工作方式:实地址方式和保护虚地址方式。在实地址方式下,80286与8086.8088地址兼容,由16位段选择字左移4位与16位的偏移地址相加得到20位物理地址,可寻址1MB的地址空间,与8086.8088的寻址方式相同。在保护虚地址方式下,可直接寻址的实存空间扩大到16MB,由A23~A0形成24位物理地址,可寻址的虚空间扩大到1GB,使用段描述符表来寻址。80386CPU的寻址方式10.2寻址方式80386CPU有三种工作方式:实模式保护模式虚拟8086模式。80386CPU的寻址方式10.2寻址方式在实地址方式下,80386与80286对内存的访问方式相同,与8086.8088地址兼容,可寻址1MB的地址空间。80386CPU的寻址方式10.2寻址方式在保护虚地址方式下,由A23~A0形成24位物理地址,可直接寻址的实存空间扩大到16MB;支持存储器的段页式结构,可寻址的虚空间扩大到4GB,访问存储器需要32位物理地址,由虚地址指示器提供48位地址指针,其中前16位是段选择字,后32位是偏移地址。DOS操作系统和16位的Windows3X操作系统工作在实地址方式下,32位的Windows操作系统工作在保护模式下。32位的Windows操作系统,将每一个Win32应用程序放到分开的虚拟地址空间中去运行,也就是每一个应用程序都拥有其相互独立的4GB地址空间,但不是拥有4GB的物理地址空间,而是能够在4GB的范围内寻址。操作系统将会在应用程序运行时完成4GB的虚拟地址和物理地址间的转换。80386CPU的寻址方式10.2寻址方式虚拟8086模式下,处理器的工作方式类似于8086.8088:寻址的地址空间是1MB;段寄存器的内容作为段基值;20位存储单元地址由段基值左移4位加偏移地址构成。在虚拟8086模式下,代码段是可写的,与实模式相同,同样数据段也是可执行的,但这可能引起异常。可见在虚拟8086模式下,可以运行DOS及其平台下的程序。但这种模式毕竟是虚拟8086的一种方式,并不完全等同于8086。80486CPU的寻址方式及Win32程序简介10.2寻址方式80486从指令系统、寄存器组和存储器管理方式等方面来看,在体系结构上与80386几乎没有多少区别。操作模式也同80386一样,有实模式,保护模式和虚拟8086模式。80486CPU的寻址方式及Win32程序简介10.2寻址方式Win32程序运行在保护模式下的32位的Windows(Win95、Win98等)操作系统环境中。Windows把每一个Win32应用程序放到分开的虚拟地址空间中去运行,每一个应用程序都拥有其相互独立的4GB地址空间,能够在4GB的地址空间范围内寻址。在DOS的实地址模式下编写汇编语言程序时,我们可以管理系统的所有资源。32位的Windows(Win95、Win98等)工作在保护模式下,系统所有的资源对应用程序来说都是被“保护”的。
Win32汇编的有关内容10.2寻址方式1.Win32ASM编译器Borland公司的MASM5.0Microsoft的MASM6.11
Win32汇编的有关内容10.2寻址方式TASM带了Import库,而MASM没有带,但SteveHutchesson为MASM建立了一个很全的Import库,基本上包括了Windows绝大部分的API函数,这些库、Include文件和其他工具还有MASM6.14kok电子竞技本一起做成了一个MASM32编译器———MASM32V5。MASM32宏汇编器有很多特色,像“invoke”,可简化对API函数的调用并对数据类型进行检查。
Win32汇编的有关内容10.2寻址方式使用32位的编译器时,首先要指定内存模式。如要生成.com文件,内存模式应指定为tiny,然后按.com文件的规范写文件;生成.exe文件,内存模式应指定为small等。要生成.com文件十分方便,用mlfilename.asm即可完成编译链接,不需要exe2bin转换。与MASM5.0相比,MASM32的伪指令功能十分强大,应用起来特别方便。
Win32汇编的有关内容10.2寻址方式2.资源编辑器BorlandResourceWorkshop推荐网址:
Win32汇编的有关内容10.2寻址方式3.文本编辑器Ultraedit网址:
Win32汇编的有关内容10.2寻址方式4.参考手册《Win32程序员参考手册》推荐网址:
Win32汇编的有关内容10.2寻址方式Win32程序框架: .386 .MODELFLAT,STDCALL .DATA <已初始化的数据>... .DATA? <未初始化的数据> ... .CONST <定义的常量> ... .CODE <label> <用户程序代码> ... end<label>第10章80X86和Pentium指令系统简介10.1指令的特点10.2寻址方式10.3指令系统10.3指令系统80286的新增指令80386的新增指令80486的新增指令80286的新增指令10.3指令系统1.普通指令共有四条: PUSHA———把8个寄存器值压入堆栈。
POPA———从堆栈中弹出数据恢复8个寄存器的值。
INS———字符串输入指令。
OUTS———字符串输出指令。
INS指令的功能是从指定的端口输入一字符串到指定内存地址中去。可以使用REP前缀。80286的新增指令10.3指令系统2.高级指令共有三条: ENTER———进入过程,为过程保留堆栈空间和确定过程嵌套级; LEAVE———退出过程,释放过程所占堆栈空间; BOUND———检查地址寄存器的值是否在数组边界内。80286的新增指令10.3指令系统3.保护方式指令 这类指令用于实地址模式和保护虚地址模式的切换,并完成保护模式下的一些专门操作。共有16条指令: ARPL———调整请求和特权级别; CLTS———清除任务切换标志位; LAR———将段描述符中的存取权限装入寄存器; LGDT———将从指定地址开始的6个字节装入全局描述符表寄存器中; LIDT———将从指定地址开始的6个字节装入中断描述符表寄存器中; LLDT———将16位值装入局部描述符表寄存器;80286的新增指令10.3指令系统 LMSW———装入机器状态字寄存器; LSL———将段描述符中的段限值装入寄存器; LTR———将16位值装入任务寄存器; SGDT———把全局描述符表寄存器的内容存放到内存6个字节单元; SIDT———把中断描述符表寄存器的内容存放到内存6个字节单元; SLDT———将局部描述符表的16位值存入内存或寄存器中; SMSW———存储机器状态字寄存器的值; VERR———校验读访问; VERW———校验写访问; STR———存储任务寄存器(与LTR方向相反)。80386的新增指令10.3指令系统1.增加的新指令(1)测试与置位类指令(2)位扫描指令(3)数的传送与扩展指令(4)双精度移位指令(5)条件设置类指令80386的新增指令10.3指令系统(1)测试与置位类指令格式1:BT寄存器.存储器地址,寄存器.立即数功能:位测试指令,用于检查指定位,并将该位复制到进位标志位中。格式2:BTR寄存器.存储器地址,寄存器.立即数功能:位测试且取反指令,用于检查指定位,将该位复制到进位标志位中,并将原指定位取反再置入位。80386的新增指令10.3指令系统(1)测试与置位类指令格式3:BTR寄存器.存储器地址,寄存器.立即数功能:位测试且复位指令,用于检查指定位,将该位复制到进位标志位中,并将原指定位复位。格式4:BTS寄存器.存储器地址,寄存器.立即数功能:位测试且置位指令,用于检查指定位,将该位复制到进位标志位中,并将原指定位置位。80386的新增指令10.3指令系统(2)位扫描指令格式1:BSF寄存器,寄存器.存储器地址功能:位扫描指令,它从源寄存器.存储器地址中的数的最低位(第0位)开始扫描直到置位位为止,并将该置位位的索引(位号)送入目的寄存器中。格式2:BSR寄存器,寄存器.存储器地址功能:位扫描指令,它从源寄存器.存储器地址中的数的最高位(第31.15位)开始扫描直到置位位为止,并将该置位位的索引(位号)送入目的寄存器中。80386的新增指令10.3指令系统(3)数的传送与扩展指令格式1:MOVSX寄存器,寄存器.存储器地址功能:传送有符号数到目的寄存器中,并将符号扩展到操作数的所有位。格式2:MOVZX寄存器,寄存器.存储器地址功能:传送无符号数到目的寄存器中,并用0进行扩展。80386的新增指令10.3指令系统(4)双精度移位指令格式1:SHLD寄存器.存储器地址,寄存器,CL.立即数功能:双精度左移指令,第一个操作数左移N(第三个操作数指出)位,其右边空出位由第二个操作数的左边N位填补,CF保持第一个操作数最后一次的移出位。格式2:SHRD寄存器.存储器地址,寄存器,CL.立即数功能:双精度右移指令,参见SHLD。80386的新增指令10.3指令系统(5)条件设置类指令 这类指令用于测试指定的标志位所处的状态,根据测试结果,将指定的一个8位寄存器或内存单元置1或0:
结果为真,8位寄存器或内存单元置1;
结果为假,8位寄存器或内存单元置0。 这类指令有:SETA.SETNBE,还有SETAE.SETNC、SETB.SETNAE.SETC、SETNA.SETBE、SETE.SETZ、SETG.SETNLE、SETGE.SETNL、SETL.SETNGE、SETLE.SETNG、SETNE.SETNZ、SETNO、SETNS、SETO、SETP.SETPE、SETPO.SETNP、SETS等。80386的新增指令10.3指令系统
格式:SETE8位寄存器.内存单元 功能:如果ZF=1则寄存器.存储器地址=1,否则寄存器.存储器地址=0。80386的新增指令10.3指令系统2.增强功能的指令(1)转换指令(2)字符串操作指令(3)整数乘指令IMUL(4)堆栈操作指令(5)中断返回指令IRETD80386的新增指令10.3指令系统(1)转换指令
CDQ:转换在EAX中带符号的双字到EDX,EAX中为带符号的四字。它把EAX中的符号位扩展到EDX中的所有位来实现转换。
CWDE:把字转换为双字。它把AX中的符号位扩展到EAX中的其他位来把AX中的字转换成EAX中的双字。80386的新增指令10.3指令系统(2)字符串操作指令 字符串操作指令CMPSD、INSD、LODSD、MOVSD、OUTSD、SCASD、STOSD
可见它们是在字符串操作指令CMPS、INS、LODS、MOVS、OUTS、SCAS、STOS各指令后加D,变成了对双字的操作,类似于加B对字节操作、加W对字操作。仍然是由寄存器DS:SI指向源串,ES:DI指向目标串。80386的新增指令10.3指令系统(3)整数乘指令IMUL
在80286中,IMUL有两种格式: IMUL16位寄存器,立即数
IMUL16位寄存器,16位存储器,立即数 在80386中,新增一种格式: IMUL寄存器,寄存器.存储器
;注意源和目标操作数位数必须相同80386的新增指令10.3指令系统(4)堆栈操作指令 在80286中,
PUSHA———把8个寄存器值压入堆栈,
POPA———从堆栈中弹出数据恢复8个寄存器的值。 上述两个指令对8个16位的寄存器进行堆栈操作,在80386中要对相应的8个32位寄存器进行堆栈操作,需使用PUSHAD、POPAD指令。在80386中要对32位的标志寄存器EFLAG寄存器进行堆栈操作,需使用PUSHFD、POPFD指令。80386的新增指令10.3指令系统(5)中断返回指令IRETD
我们前面学过的IERT指令从堆栈中弹出16位的指针,要从堆栈中弹出32位的指针,必须使用IRETD,以从堆栈中弹出一个双字的指针。80486的新增指令10.3指令系统1.字节交换指令BSWAP2.比较与交换指令CMPXCHG3.交换与相加指令XADD4.cache管理指令80486的新增指令10.3指令系统1.字节交换指令BSWAP本指令用于将32位通用寄存器的双字以字节为单位,高低字节进行交换。80486的新增指令10.3指令系统2.比较与交换指令CMPXCHG本指令将存放在8位、16位、32位寄存器或存储器中的第一操作数与累加器AL、AX、EAX的内容进行比较:如相等,则ZF=1,并将存放8位、16位、32位寄存器中的第二操作数送第一操作数的存储单元;如不相等,则ZF=0,并将第一操作数送相应累加器。80486的新增指令10.3指令系统3.交换与相加指令XADD本指令将存放在8位、16位、32位寄存器或存储器中的第一操作数与存放在8位、16位、32位寄存器中的第二操作数相加,结果存入到第一操作数,而将第一操作数存入到第二操作数。80486的新增指令10.3指令系统4.cache管理指令(1)INVD:清洗cache指令(2)WBINVD:回写和清洗cache指令(3)INVLPG:作废TLB项指令
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
kok电子竞技:最新文档
- 2025至2031年中国闪蒸干燥器行业投资前景及策略咨询研究kok电子竞技
- 2025至2031年中国记忆型条码扫描器行业投资前景及策略咨询研究kok电子竞技
- 2025年硅胶自熄管项目可行性研究kok电子竞技
- 2025年爽滑抗粘连母料项目可行性研究kok电子竞技
- 2025至2031年中国洁白牙膏行业投资前景及策略咨询研究kok电子竞技
- 2025年旋转式变阻器项目可行性研究kok电子竞技
- 2025年强化安全转化器项目可行性研究kok电子竞技
- 2025年地刮项目可行性研究kok电子竞技
- 2025至2031年中国交联聚乙烯绝缘轻型架空电缆行业投资前景及策略咨询研究kok电子竞技
- 2025年仓壁振动器项目可行性研究kok电子竞技
- 2024-2025学年第二学期学校全面工作计划
- 2025年护士资格考试必考基础知识复习题库及答案(共250题)
- 2025年中国spa行业市场全景分析及投资前景展望kok电子竞技
- 2025年人教kok电子竞技PEP二kok电子竞技英语上册阶段测试试卷
- GB 45187-2024坠落防护动力升降防坠落装置
- 施工现场临时水电布置操作手册(永临结合做法示意图)
- 2024年广西事业单位D类招聘考试真题
- 公文写作与常见病例分析
- 2025年国家电投集团有限公司招聘笔试参考题库含答案解析
- 市政质量员继续教育考试题库集(含答案)
- 2025年中国南方航空招聘笔试参考题库含答案解析
评论
0/150
提交评论