网站大量收购闲置独家精品文档,联系QQ:2885784924

第2章 微处理器的编程结构.ppt

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

第2章 微处理器的编程结构 2.1 微处理器的三种工作模式 2.5 习题(P34) 作业: 第4、5、11、12、14题 思考题:第7、8、9、13、15题 图2-5 32位CPU内部寄存器 SP BP DI SI DL DH CL CH BL BH AL AH ESP EBP EDI ESI EAX ECX EDX EBX 8 15 16 31 0 7 GS FS SS ES DS CS 0 15 1.通用寄存器 共有8个32位通用寄存器,EAX、EBX、ECX、EDX、ESP、EBP、ESI和EDI,虽然它们都可以用于存放一般的数据,但是,不同的寄存器还可能有特殊的用法,按照它们的功能差别,可以分为2组: 通用数据寄存器; 指令指针与变址寄存器。 (1)通用数据寄存器 共计有四个32位的通用数据寄存器:EAX、EBX、ECX和EDX。通用数据寄存器一般用来存放8位、16位或32位的操作数。 EAX(Accumulator),累加器:EAX可以作为通用8位寄存器(AH和AL)、16位寄存器(AX)及32位寄存器(EAX)使用。如果作为通用8位或16位寄存器使用时,则只改变EAX中低16位中相应的数据,其他位不会改变。当CPU执行乘法指令、除法指令及调整指令时,EAX有其固定的特殊用法。 EBX(Base),基址寄存器:EBX可以作为通用8位寄存器(BH和BL)、16位寄存器(BX)及32位寄存器(EBX)使用。如果作为通用8位或16位寄存器使用时,则只改变EBX中低16位中相应的数据,其他位不会改变。 ECX(Count),计数寄存器:ECX可以作为通用8位寄存器(CH和CL)、16位寄存器(CX)及32位寄存器(ECX)使用。如果作为通用8位或16位寄存器使用时,则只改变ECX中低16位中相应的数据,其他位不会改变。ECX有用于计数的固定用法,移位和循环指令一般用CL寄存器计数,重复的串操作指令一般用CX计数,LOOP/LOOPD等指令用CX或ECX计数。 EDX(Data),数据寄存器:EDX作为通用寄存器,与上述3个寄存器的使用方法相同。但是,CPU执行乘法指令时,EDX固定用来存放部分乘积,CPU执行除法指令时,EDX固定用来存放被除数及余数等。 (2)指针及变址寄存器 四个32位的通用寄存器(ESP、EBP、ESI、EDI)都可以用作一般的32位数据寄存器。也可以用作一般的16位数据寄存器(SP、BP、SI、DI),作一般的16位数据寄存器使用时,则与8086 CPU中的SP、BP、SI、DI兼容。 另外,每个寄存器都有各自的专用场合。 ESP:32位的堆栈指针,以ESP为偏移地址,访问的是堆栈存储空间,一般用它来指向堆栈的栈底或栈顶。 EBP:32位的基址指针,或称为基址寄存器。以EBP为偏移地址,默认访问的是堆栈存储空间,一般用它来存放偏移地址,以便访问堆栈区。 ESI:32位的源变址寄存器,ESI(或16位的SI)用于寻址串操作指令的源数据串。 EDI:32位的目的变址寄存器,EDI(或16位的DI)用于寻址串操作指令的目的数据串。 2.指令指针 扩展的指令指针EIP(Extended Instruction Pointer)是一个32位的专用寄存器,专用于寻址当前需要取出的指令码。当CPU从代码段取出一字节指令后,EIP就自动加1,指向下一字节的指令码。 当80386及以上的32位微处理器工作在保护模式下时, EIP的32位都有效;当工作在实模式下时,32位的EIP仅低16位(IP)有效,与8086兼容。 图2-6 80X86及Pentium系列微处理器的标志寄存器 31 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ID VIP VIF AC VM RF NT IOPL OF DF IF TF SF ZF AF PF CF Pentium/ Pentium Ⅱ 8086/8088 80286 80386DX 80486SX/80486DX 32位的标志寄存器(EFLAGS)用于指示微处理器进行算术和逻辑运算后的状态以及控制微处理器的有关操作。图2-6展示了80X86及Pentium系列微处理器标志寄存器的各位定义情况。 3.标志寄存器 EFLAGS在8086 16位FLAGS基础上扩充了高16位,其中,FLAGS b11~

文档评论(0)

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

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

1亿VIP精品文档

相关文档