第2章 80x86计算机寄存器.ppt

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 80x86计算机寄存器

Include Irvine32.inc .data x dd 10,20,30,40,50,60,70,80,10,100 .code main PROC mov ecx, 0 mov eax, x next: cmp eax, x[4*ecx] ja LL1 mov eax, x[4*ecx] LL1: inc ecx cmp ecx,10 jb next * call writeint exit main ENDP END main Include Irvine32.inc .data x dd 10, 20,30,40,150,60,70,80,10 .code Main PROC mov ecx,10 mov esi, 0 mov eax, x next: cmp eax, x[4*esi] ja LL1 mov eax, x[4*esi] LL1: inc esi loop next call writeint exit main ENDP END main * * * 数据寄存器习惯用法(2/2) CX:计数寄存器 用于在循环或串操作指令中存放循环次数或重复次数; DX:数据寄存器 在32位乘除法运算时,存放高16位数 在间接寻址的I/O指令中存放I/O端口地址 * 地址指针寄存器 SP:堆栈指针寄存器 其内容为栈顶的偏移地址 BP:基址指针寄存器 常用于在访问内存时存放内存单元的偏移地址 * BX与BP在应用上的区别 均可用于存放数据 作为基址寄存器 BX通常用于寻址数据段,BX一般与DS或ES搭配使用 BP则通常用于寻址堆栈段 * int add(int x,int y); int main(int argc, char* argv[ ]) { int x,y,z; x=3; y=10; z=add(x,y); printf(3+10 = %d \n, z); return 0; } int add(int x,int y){ int z; z=x+y; return z; } * * * * * * * 变址寄存器 SI:源变址寄存器 DI:目标变址寄存器 用于指令的间接寻址或变址寻址。 在串操作指令中 用SI存放源操作数的偏移地址, 用DI存放目标操作数的偏移地址。 * 从80386起8个32位通用寄存器: EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP,既可以存放数据也可以存放地址。 AX、BX、CX、DX、SI、DI、BP和SP分别对应于EAX、EBX、ECX、EDX、ESI、EDI、EBP和ESP的低16位。 32位寄存器以字或字节被访问时,不被访问的部分不受影响。 * 段寄存器 存放逻辑段的段基地址 CS:代码段寄存器 用于存放指令代码 DS:数据段寄存器 ES:附加段寄存器 数据段和附加段用来存放操作数 SS:堆栈段寄存器 存放返回地址,保存寄存器内容 ,传递参数 FS、GS:从80386起增加两个附加的数据段寄存器。 * 专用寄存器 IP(16位)、EIP(32位) 指令指针寄存器,其内容为下一条要执行的指令的偏移地址,其中IP为EIP的低16位。 FLAGS (16位)、EFLAGS(32位) 标志寄存器,其中FLAGS为EFLAGS的低16位 6个状态标志位(CF,SF,AF,PF,OF,ZF):存放运算结果的特征 3个控制标志位(IF,TF,DF):控制某些特殊操作 * 80x86的标志寄存器 * 1.实模式 与8086兼容的工作模式,只有低20位地址线起作用,仅能寻址第一个1MB的内存空间。MS DOS运行在实模式下。 2.保护模式 32位80x86 CPU的主要工作模式,提供对程序和数据进行安全检查的保护机制。Windows 9x/NT/2000运行在保护模式下。 3.虚拟8086模式 在Windows 9x下,若打开一个MS DOS窗口,运行一个DOS应用程序,那么该程序就运行在虚拟8086模式下。 三、 80x86 CPU的三种工作模式 * 四、实模式下存储器寻址 1. 内存分段 80x86采用分段内存管理机制,主要包括下列几种类型的段: 代码段:用来存放程序的指令序列。 数据段:用来存放程序的数据。 堆栈段:作为堆栈使用的内存区域,用来存放过程返回地址、过程参数等。 一个程序可以拥有多个代码段、多个数据段甚至多个堆栈段。 * 物理地址 8086/88: 20根地址线,可寻址 220(1MB)个存储单元 CPU送到A

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档