汇编语言程序设计-第10章80X86和Pentium指令系统简介

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

80386的新增指令
1.增加的新指令 (1)测试与置位类指令 (2)位扫描指令 (3)数的传送与扩展指令 (4)双精度移位指令 (5)条件设置类指令
10.3 指令系统
80386的新增指令
10.3 指令系统
(1)测试与置位类指令 格式1: BT 寄存器.存储器地址,寄存器.立即数 功能: 位测试指令,用于检查指定位,并将该位复制到进
到进位标志位中,并将原指定位复位。
格式4: BTS 寄存器.存储器地址,寄存器.立即数 功能: 位测试且置位指令,用于检查指定位,将该位复制
到进位标志位中,并将原指定位置位。
80386的新增指令
10.3 指令系统
(2)位扫描指令
格式1: BSF 寄存器,寄存器.存储器地址
功能: 位扫描指令,它从源寄存器.存储器地址中的数的最 低位(第0位)开始扫描直到置位位为止,并将该置位 位的索引(位号)送入目的寄存器中。
相同。在保护虚地址方式下,可直接寻址的实
存空间扩大到16MB,由A23 ~A0 形成24位物 理地址,可寻址的虚空间扩大到1GB,使用段 描述符表来寻址。
80386 CPU的寻址方式
80386CPU有三种工作方式: 实模式 保护模式 虚拟8086模式。
10.2 寻址方式
80386 CPU的寻址方式
汇编语言程序设计-第10章80X86和Pentium指令系统简介
单击此处输入你的副标题,请尽量言 简意赅的阐述观点。
第10章80X86和Pentium指令系统简介
10.1 指令的特点 10.2 寻址方式 10.3 指令系统
第10章80X86和Pentium指令系统简介
10.1 指令的特点 10.2 寻址方式 10.3 指令系统
80286的新增指令
10.3 指令系统
2.高级指令 共有三条: ENTER———进入过程,为过程保留堆栈空间和确定过 程嵌套级; LEAVE———退出过程,释放过程所占堆栈空间; BOUND———检查地址寄存器的值是否在数组边界内。
80286的新增指令
10.3 指令系统
3.保护方式指令
这类指令用于实地址模式和保护虚地址模式的切换,并 完成保护模式下的一些专门操作。共有16条指令:
10.2 寻址方式
Win32汇编的有关内容
Win32程序框架:
.386 .MODEL FLAT,STDCALL .DATA
<已初始化的数据> ... .DATA?
<未初始化的数据> ... .CONST <定义的常量> ... .CODE <label> <用户程序代码> ... end<label>
10.2 寻址方式
Win32汇编的有关内容
10.2 寻址方式
TASM带了Import库,而MASM没有带,但Steve Hutchesson为MASM建立了一个很全的Import 库,基本上包括了Windows绝大部分的API函数, 这些库、Include文件和其他工具还有 MASM6.14版本一起做成了一个MASM32编译 器———MASM32V5。MASM32宏汇编器有很多 特色,像“invoke”,可简化对API函数的调用并 对数据类型进行检查。
数的所有位。
格式2: MOVZX 寄存器,寄存器.存储器地址 功能:传送无符号数到目的寄存器中,并用0进行扩展。
80386的新增指令
10.3 指令系统
(4)双精度移位指令
格式1:SHLD 寄存器.存储器地址,寄存器,CL.立即数
功能:双精度左移指令,第一个操作数左移N(第三个操作 数指出)位,其右边空出位由第二个操作数的左边N位 填补,CF保持第一个操作数最后一次的移出位。
80386的新增指令
10.3 指令系统
格式:SETE 8位寄存器.内存单元
功能:如果ZF=1则寄存器.存储器地址=1,否则寄存器. 存储器地址=0。
80386的新增指令
2.增强功能的指令 (1)转换指令 (2)字符串操作指令 (3)整数乘指令IMUL (4)堆栈操作指令 (5)中断返回指令IRETD
这类指令有: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等。
第10章80X86和Pentium指令系统简介
10.1 指令的特点 10.2 寻址方式 10.3 指令系统
10.2 寻址方式
80286 CPU的寻址方式 80386 CPU的寻址方式 80486 CPU的寻址方式及Win32程序简介
80286 CPU的寻址方式
10.2 寻址方式
80286CPU有两种工作方式:实地址方式和保护 虚地址方式。在实地址方式下,80286与 8086.8088地址兼容,由16位段选择字左移4位 与16位的偏移地址相加得到20位物理地址,可 寻址1MB的地址空间,与8086.8088的寻址方式
10.3 指令系统
80386的新增指令
10.3 指令系统
(1)转换指令
CDQ:转换在EAX中带符号的双字到EDX,EAX中为带符 号的四字。它把EAX中的符号位扩展到EDX中的所有位 来实现转换。
码段是可写的,与实模式相同,同样数据段也
是可执行的,但这可能引起异常。可见在虚拟
8086模式下,可以运行DOS及其平台下的程序。 但这种模式毕竟是虚拟8086的一种方式,并不 完全等同于8086。
10.2 寻址方式
80486 CPU的寻址方式及Win32程序简介
80486从指令系统、寄存器组和存储器管理方式 等方面来看,在体系结构上与80386几乎没有多 少区别。
Win32汇编的有关内容
2.资源编辑器 Borland Resource Workshop 推荐网址:crackstore
10.2 寻址方式
Win32汇编的有关内容
3.文本编辑器 Ultraedit 网址: ultraedit
10.2 寻址方式
Win32汇编的有关内容
4.参考手册 《Win32程序员参考手册》 推荐网址:crackstore
在DOS的实地址模式下编写汇编语言程序时, 我们可以管理系统的所有资源。
32位的Windows(Win95、Win98等)工作在保 护模式下,系统所有的资源对应用程序来说都 是被“保护”的。
Win32汇编的有关内容
1.Win32ASM编译器 Borland公司的MASM5.0 Microsoft的MASM6.11
格式2:SHRD 寄存器.存储器地址,寄存器,CL.立即数 功 能:双精度右移指令,参见SHLD。
80386的新增指令
10.3 指令系统
(5)条件设置类指令
这类指令用于测试指定的标志位所处的状态,根据 测试结果,将指定的一个8位寄存器或内存单元置1或0:
结果为真,8位寄存器或内存单元置1;
结果为假,8位寄存器或内存单元置0。
操作模式也同80386一样,有实模式,保护模式 和虚拟8086模式。
10.2 寻址方式
80486 CPU的寻址方式及Win32程序简介
Win32程序运行在保护模式下的32位的 Windows(Win95、Win98等)操作系统环境中。 Windows把每一个Win32应用程序放到分开的虚 拟地址空间中去运行,每一个应用程序都拥有 其相互独立的4GB地址空间,能够在4GB的地址 空间范围内寻址。
ARPL———调整请求和特权级别;
CLTS———清除任务切换标志位;
LAR———将段描述符中的存取权限装入寄存器;
LGDT———将从指定地址开始的6个字节装入全局描述 符表寄存器中;
LIDT———将从指定地址开始的6个字节装入中断描述 符表寄存器中;
LLDT———将16位值装入局部描述符表寄存器;
80286的新增指令
10.2 寻址方式
第10章80X86和Pentium指令系统简介
10.1 指令的特点 10.2 寻址方式 10.3 指令系统
10.3 指令系统
80286的新增指令 80386的新增指令 80486的新增指令
Βιβλιοθήκη Baidu 80286的新增指令
10.3 指令系统
1.普通指令 共有四条: PUSHA———把8个寄存器值压入堆栈。 POPA———从堆栈中弹出数据恢复8个寄存器的值。 INS———字符串输入指令。 OUTS———字符串输出指令。 INS指令的功能是从指定的端口输入一字符串到指定内 存地址中去。可以使用REP前缀。
的虚拟地址空间中去运行,也就是每一个应用程序都拥
有其相互独立的4GB地址空间,但不是拥有4GB的物理 地址空间,而是能够在4GB的范围内寻址。操作系统将 会在应用程序运行时完成4GB的虚拟地址和物理地址间 的转换。
80386 CPU的寻址方式
10.2 寻址方式
虚拟8086模式下,处理器的工作方式类似于 8086.8088:寻址的地址空间是1MB;段寄存器的 内容作为段基值;20位存储单元地址由段基值左 移4位加偏移地址构成。在虚拟8086模式下,代
格式2:BSR 寄存器,寄存器.存储器地址
功能:位扫描指令,它从源寄存器.存储器地址中的数的最 高位(第31.15位)开始扫描直到置位位为止,并将该 置位位的索引(位号)送入目的寄存器中。
80386的新增指令
10.3 指令系统
(3)数的传送与扩展指令 格式1: MOVSX 寄存器,寄存器.存储器地址 功能:传送有符号数到目的寄存器中,并将符号扩展到操作
10.3 指令系统
LMSW———装入机器状态字寄存器; LSL———将段描述符中的段限值装入寄存器; LTR———将16位值装入任务寄存器; SGDT———把全局描述符表寄存器的内容存放到内存6 个字节单元; SIDT———把中断描述符表寄存器的内容存放到内存6 个字节单元; SLDT———将局部描述符表的16位值存入内存或寄存器 中; SMSW———存储机器状态字寄存器的值; VERR———校验读访问; VERW———校验写访问; STR———存储任务寄存器(与LTR方向相反)。
10.1 指令的特点
8086.8088的指令向上与80286及后来的80386、 80486、各类Pentium兼容,即8086.8088的程 序代码可以在更新的80286上运行,类似地, 在低档CPU上的程序代码可以在更新的高档 CPU上运行。在实地址方式下,80286与 8086.8088的程序代码可直接在80286上运行; 在保护的虚地址方式下,8086.8088的程序要 经过重新汇编之后,才能在80286上运行。
位标志位中。
格式2: BTR 寄存器.存储器地址,寄存器.立即数 功能: 位测试且取反指令,用于检查指定位,将该位复制
到进位标志位中,并将原指定位取反再置入位。
80386的新增指令
10.3 指令系统
(1)测试与置位类指令 格式3: BTR 寄存器.存储器地址,寄存器.立即数 功能: 位测试且复位指令,用于检查指定位,将该位复制
10.2 寻址方式
在实地址方式下,80386与80286对内存的访问 方式相同,与8086.8088地址兼容,可寻址1MB 的地址空间。
80386 CPU的寻址方式
10.2 寻址方式
在保护虚地址方式下,由A23 ~A0 形成24位物理地址, 可直接寻址的实存空间扩大到16MB;支持存储器的段页 式结构,可寻址的虚空间扩大到4GB,访问存储器需要 32位物理地址,由虚地址指示器提供48位地址指针,其 中前16位是段选择字,后32位是偏移地址。DOS操作系 统和16位的Windows3X操作系统工作在实地址方式下, 32位的Windows操作系统工作在保护模式下。32位的 Windows操作系统,将每一个Win32应用程序放到分开
Win32汇编的有关内容
10.2 寻址方式
使用32位的编译器时,首先要指定内存模式。 如要生成文件,内存模式应指定为tiny,然后按 文件的规范写文件;生成.exe文件,内存模式应 指定为small等。要生成文件十分方便,用ml filename.asm即可完成编译链接,不需要 exe2bin转换。与MASM5.0相比,MASM32的伪 指令功能十分强大,应用起来特别方便。
相关文档
最新文档