汇编语言程序设计及上机指导第2章寄存器与存储器.pptVIP

汇编语言程序设计及上机指导第2章寄存器与存储器.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 寄存器与存储器 2.1 寄存器组织 寄存器是CPU内部重要的数据存储资源,是汇编程序员能直接使用的硬件资源之一。 Intel系列微处理器从早期的16位8086开始,到Pentium系列,以至于现在的CORE(酷睿)系列,虽然CPU内部结构和功能变化很大,但其寄存器的组织情况却是有规律的。 2.1.2 标志寄存器 Intel的16位CPU中设置了16位的标志寄存器FLAGS,其中定义了9个标志位,主要用来反映CPU的状态和运算结果的特征。 后来在32位和64位环境下,FLAGS又分别被扩展到了32位和64位(即EFLAGS和RFLAGS),同时又增加一些新的标志位定义。 1、进位标志CF(Carry Flag) 如果运算结果的最高位产生了一个进位或借位,其值为1,否则其值为0。 2、奇偶标志PF(Parity Flag) 运算结果中最低8位中“1”的个数为偶数,则PF的值为1,否则其值为0。 3、辅助进位标志AF(Auxiliary Carry Flag) 在字操作时,发生低字节向高字节进位或借位,或者在字节操作时,发生低4位向高4位进位或借位,则AF的值被置为1,否则其值为0。 4、零标志ZF(Zero Flag) 如果运算结果为0,则其值为1,否则其值为0。 5、符号标志SF(Sign Flag) 符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。 6、溢出标志OF(Overflow Flag) 如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0。 7、追踪标志TF(Trap Flag) 当追踪标志TF被置为1时,CPU进入单步执行方式,即每执行一条指令,产生一个单步中断请求。 8、中断允许标志IF(Interrupt-enable Flag) 中断允许标志IF是用来决定CPU是否响应CPU外部的可屏蔽中断发出的中断请求。 (1)当IF=1时,CPU可以响应CPU外部的可屏蔽中断发出的中断请求; (2)当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。 9、方向标志DF(Direction Flag) 方向标志DF用来决定在串操作指令执行时有关指针寄存器发生调整的方向。 2.2 存储器的管理模式 Intel的80X86系列CPU基本上采用内存分段的管理模式。它把内存和程序分成若干个段,每个段的起点用一个段寄存器来保存。 2.2.1 实地址方式内存管理 目前的Intel系列CPU都能工作在实地址方式或保护地址方式下。实地址方式下只能访问1MB的内存空间,只能单任务运行,8086只有这一种工作方式,80286以后的系列CPU的可以运行在保护地址方式。 如果工作在实地址模式,则任何高档处理器只相当于快速的8086,因此寻址方法与8086一样,在这种方式下处理器没有充分发挥处理器的性能。只有在保护方式下,处理器才真正发挥应有的作用。 1.段地址与偏移地址 在实地址方式下,段地址定义了段起始地址的高16位,并存放在段寄存器中。逻辑段的起始地址(通常简称为:段地址)必须是16的倍数,即最低4位二进制必须全为0。 1M内存最多可分成64K个段,即65536个段(段之间相互重叠),至少可分成16个相互不重叠的段。 偏移地址描述目的地址在该段中的相对位置,即离段基址的偏移量,它指示在64KB段内任何一个单元。偏移地址保存在16位寄存器中,因此段的大小最大为64KB。 2. 默认段地址与偏移地址寄存器 3. 逻辑地址与物理地址 逻辑地址是段地址与偏移地址的合称,用“段地址:偏移地址”表示, 如1234H:1200H表示段地址为1234H,段内偏移地址为1200H。 物理地址是存储器的实际地址,在实地址方式下物理地址通过段地址乘以16加上偏移地址得到。而16位的段地址乘以16等同于左移4位二进制位,这样变成20位的段基地址,最后段基地址加上段内偏移地址就是物理地址。 【例2.1】有一逻辑地址为1200H:0340H,求物理地址。 解:由逻辑地址知段地址=1200H,偏移地址=0340H,因此物理地址=12000H+0340H=12340H。 【例2.2】已经DS=1000H,CS=2200H,指令MOV [2000H],AX在代码段中的偏移量是IP=0150H,求(1)该指令所在的物理地址。(2)目的操作数对应的物理地址。 解:(1)指令对应的物理地址=CS*16+IP=22000H+0150H=22150H。 (2)该指令指示的目的操作数对应段地址默认存在DS中,偏移地址已由指令给出2000H,因此该指令指示的目的操作数所在

文档评论(0)

beoes + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档