《微机原理》第3章指令系统与寻址方式.ppt

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

第3章 8086/8088指令系统与寻址方式 3.1 概述 3.2 数据寻址方式 3.3 指令格式及指令执行时间 3.4 8086/8088指令系统 3.1 概 述 1. 指令 指令是计算机能够识别和执行的指挥计算机进行操作的命令。计算机是通过执行指令序列来解决问题的。 指令系统是指微处理器能执行的各种指令的集合。不同的微处理器有不同的指令系统。 计算机指令码由操作码字段和操作数字段两部分组成。操作码字段指出所要执行的操作,而操作数字段指出指令操作过程中需要的操作数。 例:一条加法指令的机器码为:02CFH = 000000 10前6个0,表示加法操作,为操作码字段,剩余部分说明操作数。该指令的助记符为:ADD CL,BH,即实现:CL← CL + BL。 操作数可以有一个、二个或更多,通常分别称为单操作数指令(一地址指令)、双操作数指令 (二地址指令)。 ADD CL,BH 是双操作数指令; INC AL 是单操作数指令。 在双操作数指令格式中,提供两个操作数,分别称为目标操作数(前面的那个)和源操作数(后面的那个)。当指令执行时,两个操作数同时参与运算,并把运算结果返回目标操作数中,也就是说,目标操作数原有内容在运算后将会改变。 2. 操作数 操作数是指令的操作对象。8086/8088指令系统中的操作数分为两类:数据操作数、转移地址操作数。 (1) 数据操作数 按存储位置,数据操作数分为:立即数、寄存器操作数、内存操作数、I/O操作数。 1) 立即数:指令中直接给出操作数本身。 2) 寄存器操作数:即操作对象是寄存器中的内容。例上述指令中AL为寄存器操作数。 3) 内存操作数:也称为存储器操作数,操作对象是内存中的数。 4) I/O操作数:指令中要操作的数据来自或送到I/O端口。 (2) 转移地址操作数 这类操作数出现在程序跳转或程序调用指令中,指出程序要转移的目的地址。它也可以分为:立即数、寄存器操作数、存储器操作数,即要转移的目标地址包含在指令中或存放在寄存器、内存储器中。 3.2 数据寻址方式 指令中关于如何求出操作数有效地址的方法称为寻址方式。计算机按照指令给出的寻址方式求出操作数有效地址的过程,称为寻址操作。 为了满足程序设计需要,8086/8088给出了多种寻址方式,根据操作数的类型及来源大致分为三类:数据寻址、转移地址寻址、I/O寻址。 1 立即寻址 2 寄存器寻址 寄存器寻址是指操作数存放在寄存器中,指令中给出寄存器名。 例:MOV DX ,AX ;DX ← AX 执行过程如图所示: 特点: (1)操作数在寄存器中,寄存器在CPU内部,指令执行时,操作就在CPU的内部进行,不需要访问存储器来取得操作数,因而执行速度快。 (2)寄存器号比内存地址短,汇编后机器码长度短。 (3)寄存器寻址方式既可用于源操作数,也可用于目标操作数,还可以两者都用寄存器寻址方式。 注意: (1)当指令中的源操作数和目标操作数均为寄存器时,必须采用同样长度的寄存器; (2)两个操作数不能同时为段寄存器; (3)目标操作数不能是代码段寄存器(CS)。 除以上两种寻址方式外,下面5种寻址方式的操作数均在存储器中,统称为内存寻址方式。当采用内存操作数时,必须注意双操作数指令中的两个操作数不能同时为内存操作数。 3 直接寻址 直接寻址即指令中给出操作数所在存储单元的有效地址,缺省的段为数据段。为了区别于立即数,有效地址用[]括起。 例:以下指令中源或目标操作数采用了直接寻址方式 (1) MOV AX,[2000H] ;AX ← (DS:2000H) (2) MOV [1200], BL ;(DS:1200H) ← BL (3) MOV ES:[0100], AL ;(ES:0100H) ← AL 说明:DS:2000表示内存单元地址; (DS:2000)表示地址是DS:2000的内存单元内容。 【例】设 DS=4000H,(42000H)=12H,(42001H)=34H,执行指令 MOV AX,[2000H]后,AX = ? ① 根据指令中给出的有效地址得到存储单元的物理地址: DS × 16 + 2000H = 42000H ② 把该内存单元开始的两个字节的内容传送到AX中。低地址单元内容传送到AL中,高地址单元内

文档评论(0)

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

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

1亿VIP精品文档

相关文档