- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]微型计算机技术及应用第四版_第三章 ppt
汇编语言指令的特点(续) 例: MOV AX,BX 第三章 Pentium的指令系统 引言 汇编语言指令的特点 语法结构符合人类语言的共同特点—— 动作+对象 指令操作码→动作:做什么? 指令操作数→对象:针对什么做动作? 汇编语言指令的特点(续) 操作码:由CPU设计人员定义,具有固定的写法和意义。 操作数:可由编程人员采用不同方式给出。 由操作数的各种给出方式确定操作数本身——寻址方式;在同一条指令中操作码、操作数的编码方式——指令格式。 §3.1 Pentium的寻址方式 给出操作数的可能的方式: 由操作码隐含地指定 由指令直接给出操作数 存放于CPU内部的寄存器中 存放于存储器单元内 来自I/O端口 Pentium寻址方式(续) Pentium寻址方式 一、立即数寻址方式 源操作数以8位、16位或32位常数的形式直接出现在指令中。一般用于赋值。 例:MOV AL,5FH MOV AX,105FH MOV EAX,10005F00H 注意: 立即数只能作为源操作数,不能作为目的操作数 立即数寻址一般用于对寄存器赋值 Pentium寻址方式 二、寄存器(直接)寻址方式 8位、16位或32位寄存器的值就是操作数本身。与其它寻址方式相比,该方式执行速度最快。 对32位可放在EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDI(8个) 对16位可放在AX、BX、CX、DX、SP、BP、SI、DI(8个) 对8位可放在AH、AL、BH、BL、CH、CL、DH、DL(8个) 例: MOV SI,DX INC CX 注意:寄存器寻址的指令执行时,操作就在CPU内部进行,不需要使用总线周期,因此执行速度快 源、目的操作数要匹配 Pentium寻址方式 三、I/O端口寻址 仅用于I/O指令IN、OUT。 I/O直接寻址(长格式I/O寻址)——端口地址在8位以内时,用端口地址直接做操作数。可寻址的I/O空间为256字节。 例: IN AX,43H OUT 0FH,AL I/O间接寻址(短格式I/O寻址)——端口地址超过8位时,固定使用DX做操作数,DX的值就是该16位端口的地址。可寻址的I/O空间为65536字节。 例: IN AL,DX OUT DX,AX 注意(1)I/O直接寻址时,寻址范围为0~255,即最大端口号为FFH (2) I/O间接寻址时,只能用DX寄存器,寻址范围为0~65535,即最大端口号为FFFFH Pentium寻址方式(续) 四、存储器寻址方式 Pentium寻址方式(续) 四、存储器寻址方式 1、直接寻址方式 操作数存放在存储器单元中,由指令直接给出该单元的有效地址EA(即16位段内偏移量)。与操作码一起存放在代码段区域 操作数一般在数据段区域中,它的地址为数据段寄存器DS加上这16位地址偏移量。 例如MOV AX,DS:[2000H];(对DS来讲可以省略成 MOV AX,[2000H], 系统默认为数据段)这种寻址方法是以数据段的地址为基础,可在多达64KB的范围内寻找操作数。 Pentium允许段超越,即还允许操作数在以代码段、堆栈段或附加段为基准的区域中。此时只要在指令中指明是段超越的,则16位地址偏移量可以与CS或SS或ES相加,作为操作数的地址。 例:MOV AX,[0016H];操作数在数据段 MOV EAX,ES:[1000H];段超越,操作数在附加段 寻址过程示意 Pentium寻址方式(续) 四、存储器寻址方式 2、寄存器间接寻址方式 操作数存放在存储器单元中,指令给出的16或32位寄存器值就是该单元的EA。 (1)用BP、SP、EBP、ESP进行间接寻址时,默认段为SS 用其他寄存器进行间接寻址默认段为DS 例: MOV [BX],CL MOV EAX,[EBX] MOV EAX,[BP] (2)如果对非默认字段进行寻址,则必须在指令
文档评论(0)