第3章80x86的指令系统和寻址方式.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章80x86的指令系统和寻址方式.ppt

第3章 80x86的指令系统和寻址方式 § 3.1 80x86的寻址方式 § 3.2 80x86的指令系统 § 3.3 80x86的机器语言指令概况 基本概念—指令的构成 指令由操作码和操作数两部分组成 操作码说明计算机要执行哪种操作,如传送、运算、移位、跳转等操作,它是指令中不可缺少的组成部分 操作数是指令执行的参与者,即各种操作的对象 有些指令不需要操作数,通常的指令都有一个或两个操作数,也有个别指令有3个甚至4个操作数 基本概念—与数据有关的寻址方式 在指令中为了取得操作数地址所使用的方式 寻找操作数的过程就是操作数的寻址 不同的指令系统都规定一些寻址方式供编程时选用 操作数采取哪一种寻址方式,会影响机器运行的速度和效率 一个简单的汇编指令 传送指令 格式:MOV DST , SRC 操作:(DST)←(SRC) 例:MOV AX,BX 执行指令前:(AX)=1234H, (BX)=4321H 执行指令后:(AX)=4321H, (BX)=4321H 操作数的类型 寄存器(R):字节、字、双字 存储单元(M):字节、字、双字 立即数(imm):字节、字、双字 § 3.1 80x86的寻址方式 一、与数据有关的寻址方式 1.立即(数)寻址 操作数直接包含在指令中,紧跟在操作码之后的寻址方式,称为立即寻址方式,这种操作数被称为立即数(imm) 它可以是8位数值i8(00H~FFH) 也可以是16位数值i16(0000H~FFFFH) 立即数寻址方式常用来给R/M赋值 立即数只能用于源操作数 立即寻址 例3.1 MOV AL, 9 ;(AL)= 09H 例3.2 MOV AX, 3064H ;(AX)= 3064H 2. 寄存器寻址 操作数存放在CPU的内部寄存器(reg)中,这些寄存器可以是: 8位寄存器: AH、AL、BH、BL、CH、CL、DH、DL 16位寄存器: AX、BX、CX、DX、SI、DI、BP、SP 4个段寄存器seg: CS、DS、SS、ES 寄存器寻址 MOV  AX, BX ; 如指令执行前(AX)= 1234H,(BX)= 5678H ;则指令执行后(AX)= 5678H,(BX)保持不变。 注意:源寄存器和目的寄存器的位数必须一致。 MOV AX,BL (×) 这里先引入有效地址EA(Effective Address)的概念: 在8086里,把操作数的偏移地址称为有效地址,下面五种计算EA的方法体现了五种寻址方式。 3、直接寻址方式(Direct addressing) 在这种寻址方式中,操作数存放在存储单元中,而这个存储单元的有效地址就在指令的操作码之后 直接寻址方式 MOV AX, [2000H] 如果(DS)= 3000H,则执行情况如下图所示,最后的执行结果为(AX)= 3050H。 直接寻址方式 跨越段前缀 MOV AX,[2000h] MOV AX,ES:[2000h] 符号地址 MOV AX,VALUE MOV AX,[VALUE] MOV AX,ES:VALUE MOV AX,ES:[VALUE] 4. 寄存器间接寻址 有效地址存放在基址寄存器BX,BP中或变址寄存器SI、DI中 所使用的寄存器相当于地址指针,当修改其内容后可指向不同的存储单元 书写时用[]括住寄存器名,以区别于寄存器寻址 若以BX、SI、DI间接寻址,操作数默认在数据段;若以BP间接寻址,操作数默认在堆栈段; 寄存器间接寻址 寄存器间接寻址 使用跨越段前缀改变段 MOV AX,[SI] ← → MOV AX, DS:[SI] MOV CL,[BX] ← → MOV CL, DS:[BX] MOV BL,[BP] ← → MOV BL, SS:[BP] MOV AX,ES:[SI] MOV CL,SS:[BX] MOV BL,DS:[BP] 5.寄存器相对寻址方式 有效地址是寄存器内容与有符号8位或16位位移量之和,寄存器可以是BX、BP或SI、DI 寄存器相对寻址方式 MOV AX, COUNT[SI] (也可表示为MOV AX,[COUNT+SI]) 寄存器相对寻址方式 MOV AX,10H[SI] ← → MOV AX,DS:10H[SI] MOV AX,ARRAY[BX] ← → MOV AX,DS:ARRAY[BX] MOV TABLE[DI],AL ← → MOV DS:TABLE[DI],AL MOV TAB

文档评论(0)

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

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

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档