寄存器的使用与寻址方式.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
三、寄存器的使用与寻址方式 一、 CS+IP:指令寻址 DS+偏移地址:数据寻址 二、 几个常用指令 三、 寻址方式 问题一: 寄存器和存储器有什么不同? 1.位置不同 2.速度不同 3.访问方式不同 4.空间大小不同 问题二: 内存被划分成了一个一个的段,每一个段有一个段地址? 内存并没有分段,段的划分来自于CPU,由于8086CPU用“(段地址×16)+偏移地址=物理地址”的方式给出内存单元的物理地址,使得我们可以用分段的方式来管理内存。 问题三: 8086 CPU寻址使用 段地址+偏移地址原因是什么? 8086 CPU具有以下几个方面特征: 1、运算器一次最多可以处理16位的数据。 2、寄存器的最大宽度为16位。 3、寄存器和运算器之间的通路是16位的。 4、8086有20位地址总线,可传送20位地址,寻址能力为1M。 5、8086内部为16位结构,它只能传送16位的地址,表现出的寻址能力却只有64K 问题四: 如果给定一个段地址,仅通过变化偏移地址来访问内存,最多可以访问(定位)多少内存单元? 偏移地址为16位, 16 位地址的寻址能力为:2 = 64K, 所以一个段的长度最大为64K。 问题五: 物理地址为:22345H,请写CPU访问该单元时可能使用的段地址和偏移地址? 物理地址 段地址 偏移地址 22345 2234 5 22345 2230 45 22345 2231 35 22345 2232 25 22345 2200 345 22345 2000 2345 22345 1F00 3345 …… …… …… 问题六: CPU如果找到要执行指令在内存中的位置? 指示了CPU当前要读取指令的地址。 CS为代码段寄存器; IP为指令指针寄存器 从CS:IP指向内存单元读取指令,读取的指令进入指令缓冲器; IP = IP + 所读取指令的长度,从而指向下一条指令; 执行指令。 转到步骤 (1),重复这个过程。 问题七: 在DUBUG中如果让CPU执行内存中自己编写的程序? 用DUBUG的R命令修改CS和IP的值,使其指向自己程序的第一行指令。 修改CS:指向自己程序的段地址 修改IP :指向自己程序的第一行指 令的偏移地址 T :单步每行。 问题八: 如果将数据123456H存放在内存地址为10000H空间中,数据是如何存放的? 问题九: 8086 CPU 寄存器共有多少个?名字是什么? 问题十: 8086 标志寄存器空间有多大?功能是什么? 二、几个常用指令 通用数据传送指令:MOV 加法指令: ADD 减法指令: SUB 无条件跳转指令:JMP 循环指令: LOOP 演示MOV指令使用 问题 指令:MOV AX,[2000] 中: 数字2000表示什么? [2000]表示什么?类型(或长度)是什么? MOV AX,[2000]含义是什么? 指令MOV AX,2000含义是什么? 数字2000表示什么? 指令含义是什么? 与指令MOV AX,[2000] 有什么不同? 指令MOV AL,[2000]含义是什么? 与指令MOV AX,[2000]有什么不同? 寄存器中哪几个寄存器可以拆开使用? 段寄存器的功能与其它寄存器有什么不同? 如果DS=3000, (AX) =FFEE,内存中数据如图所示,则执行下列指令后,AX, AL内数据是什么? ① MOV AX, 2000; ② MOV AX, [2000]; ③ MOV AL,[2000]; ④ MOV [2000], AX ⑤ MOV [2000], AL MOV 指令 已学mov指令的几种形式:  mov 寄存器,数据  mov 寄存器,寄存器  mov 寄存器,内存单元  mov 内存单元,寄存器  mov 段寄存器,寄存器 例题一 1.在DEBUG中编写程序,将0B23:0000处写入26个大写的英文字符。 要求:将程序代码写在数据段地址后偏移 8K处。 例题二 1.在DEBUG中编写程序,将0B50:0000处写入26个大写的英文字符。 要求:将程序代码写在数据段地址后偏移 8KH处。 2.将上题中的26个字符复制到0B80:1200处,程序代码写在数据段地址后偏移10KH处。 * 12 34 56 10007 10006 10005 10004 10003 10002 10001 10000 (10000H)= 123456H 8086寄存器组: 数据寄存器: 指针及变址寄存器:SP、BP、SI、DI 段寄存器: CS、DS、SS、ES 控制寄存器:

文档评论(0)

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

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

1亿VIP精品文档

相关文档