汇编语言总结(1).docx

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1、一个典型的CPU由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连。 区别: 内部总线实现CPU内部各个器件之间的联系。 外部总线实现CPU和主板上其它器件的联系。 8086CPU有14个寄存器 它们的名称为: ? ?AX、BX、CX、DX、SI、DI、SP、BP、 ? ?IP、CS、SS、DS、ES、PSW。 8086CPU所有的寄存器都是16位的,可以存放两个字节,一个字节8位。 AX、BX、CX、DX 通常用来存放一般性数据被称为通用寄存器。 一个16位寄存器所能存储的数据的最大值为多少?? 因为每一位存放的数据是0或1,那么最大的数值自然就是 1111 1111 1111 1111(2),也就是2^16-1。 2、通用寄存器(重点) 8086上一代CPU中的寄存器都是8位的,为保证兼容性, 这四个寄存器都可以分为两个独立的8位寄存器使用。 AX可以分为AH和AL; BX可以分为BH和BL; CX可以分为CH和CL; DX可以分为DH和DL。 AX的低8位(0位~7位)构成了AL寄存器,高8位(8位~15位)构成了AH寄存器。 AH和AL寄存器是可以独立使用的8位寄存器,如果当成是8位寄存器使用,那么他们就是独立的,没有任何关系。 一个8位寄存器所能存储的数据的最大值是多少?二进制数值 1111 1111 ,也就是?2^8-1。 3、字在寄存器中的存储 注意:在进行数据传送或运算时,要注意指令的操作数的位数要匹配。 4、物理地址的表示(重点) CPU访问内存单元时要给出内存单元的地址,所有的内存单元构成的存储空间是一个一维的线性空间。 我们将这个唯一的地址称为物理地址。 不同的CPU有不同的形成物理地址的方式。 (1)16位结构的CPU 8086内部为16位结构,它只能传送16位的地址,表现出的寻址能力却只有64K。 8086外部有20位地址总线,可传送20位地址,寻址能力为1M。 那么,8086CPU如何用内部16位的数据,转换成20位的地址呢? 8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。 段地址+偏移地址 - 地址加法器 - 20位的物理地址。 地址加法器合成物理地址的方法:段地址×16+偏移地址=物理地址。 “段地址×16”有一个更为常用的说法就是数据左移4位。(二进制位) 二进制的数据左移4位,意味着乘以2^4=16。 这样做的目的主要是为了弥补内部总线16位的缺陷而设计的。 5、关于段空间 内存没有分段,段的划分来自于CPU, 由于8086CPU用“(段地址×16)+偏移地址=物理地址”的方式给出内存单元的物理地址, 使得我们可以用分段的方式来管理内存。 以后,在编程时可以根据需要,将若干地址连续的内存单元看作一个段, 用段地址×16定位段的起始地址(基础地址),用偏移地址定位段中的内存单元。 (1)段地址×16 必然是 16的倍数,所以一个段的起始地址也一定是16的倍数; (2)偏移地址为16位,16 位地址的寻址能力为 64K,所以一个段的长度最大为64K。 CPU可以用不同的段地址和偏移地址形成同一个物理地址。 如果给定一个段地址,仅通过变化偏移地址来进行寻址,最多可以定位多少内存单元? 因为偏移地址16位,变化范围为0~FFFFH,仅用偏移地址来寻址最多可寻64K个内存单元。 比如:给定段地址1000H,用偏移地址寻址,CPU的寻址范围为:10000H~1FFFFH。 6、地址的描述 在8086PC机中,存储单元的地址用两个元素来描述。即段地址和偏移地址。 “数据在21F60H内存单元中。”对于8086PC机的两种描述: (a)数据存在内存2000:1F60单元中; (b)数据存在内存的2000段中的1F60H单元中。 可根据需要,将地址连续、起始地址为16的倍数的一组内存单元定义为一个段。 7、段寄存器就是提供段地址的。 8086CPU有4个段寄存器:?CS、DS、SS、ES。 CS和IP是8086CPU中最关键的寄存器,它们指示了CPU当前要读取指令的地址。 CS为代码段寄存器,IP为指令指针寄存器。 在 8086CPU 加电启动或复位后( 即 CPU刚开始工作时)CS和IP被设置为CS=FFFFH,IP=0000H。 即在8086PC机刚启动时,CPU从内存FFFF0H单元中读取指令执行。 FFFF0H单元中的指令是8086PC机开机后执行的第一条指令。 8、修改CS,IP mov指令不能用于设置CS、IP的值,8086CPU没有提供这样的功能。 8086CPU为CS、IP提供了另外的指令来改变它们的值:转移指令 JMP 段地址:偏移地址 JMP 2AE3:3 功能:用指令中给出的段地址修改CS,偏移地址修改IP。CS = 2AE3H, IP

文档评论(0)

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

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

1亿VIP精品文档

相关文档