- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章微型计算机组成及微处理器编程结构3分析
问题(续): (4)2地址单元中存放的字型数据是多少? (5)1地址单元中存放的字型数据是多少? 补充知识:内存中字的存储 结论: 任何两个地址连续的内存单元,N号单元和 N+1号单元,可以将它们看成两个内存单元 ,也可以看成一个地址为N的字单元中的高位字节单元和低位字节单元。 补充知识:内存中字的存储 34000 H 34001 H 1A H 20 H 2、以SI、DI寄存器进行数据段寻址 1) MOV AX,ES : [SI] 若 ES = 3000 H,SI = 4000 H, EA=4000H,物理地址=34000H, 执行结果: AX=201A H 寻址初探 2)MOV BX,[DI] 若 DS = 0FFF0 H,DI = 0200 H 执行结果:BX ? (?)(?) 20H 32H 00100H 00101H BX = 3220 H PA=DS x 10H + DI =0FFF00H + 0200H =100100H 最高位的 “1” 自然丢失,实际物理地址为PA=00100H 寻址初探 如何分配各个逻辑段 程序的指令序列必须安排在代码段 程序使用的SP一定在堆栈段 程序中的数据默认是安排在数据段,也经常安排在附加段,尤其是串操作的目的区必须是附加段;使用BP访问主存,则在SS段。 默认段情况 段超越前缀指令 数据的存放比较灵活,实际上可以存放在任何一种逻辑段中 默认的情况允许改变,需要使用段超越前缀指令;8088指令系统中有4个: CS: ;代码段超越,使用代码段的数 SS: ;堆栈段超越,使用堆栈段的数据 DS: ;数据段超越,使用数据段的数据 ES: ;附加段超越,使用附加段的数据 修改段=段超越 默认与段超越的示例 没有段超越的指令实例: MOV AX,[2000H] ;AX←DS:[2000H] ;从默认的DS数据段取出数据 采用段超越前缀的指令实例: MOV AX,ES:[2000H];AX←ES:[2000H] ;从指定的ES附加段取出数据 段寄存器的使用规定 访问存储器的方式 默认 可超越 偏移地址 取指令 CS 无 IP 堆栈操作 SS 无 SP 一般数据访问 DS CS ES SS 有效地址EA BP基址的寻址方式 SS CS ES DS 有效地址EA 串操作的源操作数 DS CS ES SS SI 串操作的目的操作数 ES 无 DI * CPU取指过程 执行单元(EU) 总线接口单元(BIU) 存 储 器 DB CB AB 2.5 CPU工作过程 * CPU向内存写数过程 执行单元(EU) 总线接口单元(BIU) 存 储 器 DB CB AB * EU取指、译码过程 执行单元(EU) 总线接口单元(BIU) 存 储 器 DB CB AB … * * 回归2.3.2 8086寄存器结构 * 三、 段寄存器、指令指针寄存器与专用寄存器 1、 段寄存器 段寄存器就是提供段地址的。 8086CPU有4个段寄存器: CS、DS、SS、ES 为什么需要四个段寄存器? 4个16位段寄存器 CS指明代码段的起始地址 SS指明堆栈段的起始地址 DS指明数据段的起始地址 ES指明附加段的起始地址 每种逻辑段均有各自的用途。 1、 段寄存器 每种逻辑段有什么用途? * 1.代码段用来存放程序的指令序列。 2.数据段存放运行程序所用的数据。 3.附加段是附加的数据段,也保存数据。 4.栈可以存放运行程序所用的数据,还可以存 放程序中断处的段地址和偏移地址等。 各逻辑段用途 (1) 代码段 对于8086PC机,在编程时,可以根据需要,将一组内存单元定义为一个段。 可以将长度为 N( N≤64KB )的一组代码,存在一组地址连续、起始地址为 16的倍数的内存单元中,这段内存是用来存放代码的,从而定义了一个代码段。 例如 这段长度为 10 字节的字节的指令,存在从123B0H~123B9H的一组内存单元中,我们就可以认为,123B0H~123B9H这段内存单元是用来存放代码的 ,是一个代码段 ,它的段地址为123BH,长度为10字节。 (1) 代码段 (2)数据段 我们可以将一组长度为N(N≤64K)、地址连续、起始地址为16的倍数的内存单元当作专门存储数据的内存空间,从而定义了一个数据段。 比如我们用123B0H~123B9H这段空间来存放数据: 段地址:123BH 长度:10字节 什么是栈? 栈是一种具有特殊的访问方式的存储空间。它的特殊性就在于,最后进入这个空间的数据,最先出去。 可以用一个盒子和3本书来描述 栈的操作:入栈
您可能关注的文档
- 第2章变形体的变形规律分析.ppt
- 第2章图像编辑的基本操作分析.ppt
- 瓦斯隧道施工安全专项方案解析.doc
- 第2章商业银行的资本管理分析.ppt
- 第2章土木工程材料分析.ppt
- 第2章单自由度振动系统分析.ppt
- 第2章基本数据类型、运算符与表达式分析.ppt
- 瓦楞纸废水处理工艺方案解析.doc
- 第2章基本数据类型及表达式_2分析.ppt
- 第2章基本数据类型与基本操作分析.ppt
- 剧本杀行业报告:内容创作规范与剧本市场拓展策略.docx
- 剧本杀行业区域市场区域文化特色与市场潜力分析报告.docx
- 剧本杀行业区域市场拓展实战案例研究.docx
- 剧本杀行业区域市场拓展路径与模式探索报告.docx
- 剧本杀行业区域市场竞争态势与品牌差异化策略研究报告.docx
- 剧本杀行业2025年西北区域市场市场细分领域竞争态势与品牌竞争策略分析研究报告.docx
- 剧本杀行业2025年西北市场拓展前景预测报告.docx
- 剧本杀行业2025年长沙市场发展潜力分析报告.docx
- 剧本杀行业2025年长三角市场竞争策略与布局分析.docx
- 医疗行业数据合规:2025年数据安全法实施后的合规监管挑战与应对.docx
文档评论(0)