文档介绍:第 6 章
教学重点
在16位8086指令系统基础上,我们扩展到32位80x86指令系统。重点掌握:
32位编程环境
32位寻址方式
32位指令编程方法
Windows应用程序编程
IA-32结构的指令系统
整数指令集
16位整数指令集
32位整数指令集
浮点指令集
MMX指令集
SSE指令集
SSE2指令集
SSE3指令集
主要指令集
在16指令基础上形成的
32位整数指令集
32位指令的运行环境
实地址方式
保护方式
虚拟8086方式
16位逻辑段:段地址和偏移地址都是16位
——段地址左移4位加偏移地址形成20位物理地址
32位逻辑段:段地址和偏移地址都是32位
——段地址加偏移地址形成32位线性地址
实地址方式
实方式(Real Mode)与8086/80186的工作方式以及80286的实地址方式具有相同的基本结构
32位x86 CPU只能寻址1MB物理存储器空间,分段最大64KB,采用16位逻辑段
32位x86 CPU可以使用32位寄存器和32位操作数,也可以采用32位寻址方式
相当于可以进行32位处理的快速8086
第 6 章
保护方式
保护方式(Protected Mode)不仅具有段式存储管理功能,还提供页式存储管理功能,可以更好地支持虚拟存储器
在保护方式下,32位x86 CPU才能发挥其全部功能,可以充分利用其强大的存储管理和保护能力
在保护方式下,32位x86 CPU可以使用全部32条地址线,使微处理器可寻址的物理存储器达到4GB,采用32位逻辑段,其段地址和偏移量都是32位
第 6 章
虚拟8086方式
虚拟8086方式(Virtual-8086 Mode)是一种在保护方式下运行的类似实方式的工作环境
虚拟8086方式下仍然采用16位逻辑段:段寄存器的使用与实方式一样,左移4位加16位偏移量得到20位地址
多个8086程序可以利用分页机构将各自的逻辑1MB空间映射到不同的物理地址,从而实现共存于主存并行运行
虚拟8086方式的程序在最低特权层3下运行
第 6 章
寄存器组
8个32位通用寄存器:
EAX EBX ECX EDX
ESI EDI EBP ESP
6个16位段寄存器:
CS SS DS ES FS GS
32位指令指针寄存器:EIP
32位标志寄存器:EFLAGS
其他的32位系统用寄存器
在原有16位寄存器基础上扩展成为32位
寻址方式
32位有效地址=
基址寄存器+(变址寄存器×比例)+位移量
基址寄存器——任何8个32位通用寄存器之一
变址寄存器——除ESP之外的任何32位通用寄存器之一
比例——可以是1 / 2 / 4 / 8
位移量——可以是8 / 32位值
32位寻址方式
⑴ mov eax, 44332211h
⑵ mov eax, ebx
⑶ mov eax, [1234h]
⑷ mov eax, [ebx]
⑸ mov eax, [ebx+80h]
⑹ mov eax, [ebx+esi]
⑺ mov eax, [ebx+esi+80h]
⑻ mov eax, [esi*2]
⑼ mov eax, [ebx+esi*4]
⑽ mov eax, [ebx+esi*8+80h]