- 1、本文档共61页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 8086微机机器语言指令
教学目标:掌握数据操作数的寻址方
式;掌握数据传送指令、加减运算指
令、位操作指令的功能与用法;了解
其它指令的作用。
教学重点:常用指令的功能与用法。
教学难点:指令的应用。
3.1.1 指令格式
一条指令是一个有意义的二进制代码序列,它是机器语言的一个语句,
其基本格式为:操作码字段OP 地址码字段A
操作码字段OP 地址码字段A
操作码字段OP 地址码字段A
——操作码表明了指令的功能及操作,
——地址码又称操作数字段,指明了参与操作运算的操作数地址。
1. 指令操作码
指令系统中每条指令都有唯一确定的操作码。操作码的位数越多,所能
表达的操作种类就越多。
(1) 规整型
操作码字段的长度和位置固定,又称定长编码,编码最简单。
◆定长编码多用在大中型计算机上,如IBM 370机指令操作码都为8bit(位) 。
RISC指令集采用定长编码。
◆定长编码有利于简化硬件设计、减少指令译码时间;
但往往造成资源浪费(冗余)。
(2) 非规整型
非规整型操作码的长度不定,且分散在指令字的不同位置上,因此又称
变长编码。
变长编码广泛用在小型、微型计算机上,如PDP小型机。
CISC指令集是非规整型编码。
1. 指令操作码(续)
扩展操作码法:灵活充分利用指令的各个字段,在不增加指令长度的情况下,扩展
操作码能表示更多的指令。80x86微处理器采用扩展操作码法。
变长编码增加指令译码的难度,控制器的设计较复杂。
2. 指令地址码
每条指令必须包括CPU执行所需的全部信息。
对双操作数指令,除了操作码OP(Operate)外,还必须包含:第一源操作数地址
A1(Address1) 、第二源操作数地址A2 、操作结果的存放地址A3 ,以及下条指令在内
存中的存放地址A4 。
程序计数器PC(Program counter)来指向要执行指令的地址,
现代计算机地址码字段有四种结构:三地址、双地址、单地址和零地址。
三地址指令格式:OP A1 A2 A3
OP A1 A2 A3 ;操作为:[A1] OP [A2] →A3 ,
OP A1 A2 A3
PC+1→PC (隐含)
三地址指令在小型、微型计算机中很少使用。
双地址指令格式:OP A1 A2 ;操作为:[A1] OP [A2] →A1 ,PC+1→PC (隐含)
执行前,A1和A2 中各存放一个源操作数,执行后结果存放到A1 中,A1 中原先的源
操作数被冲掉。因此[A2]称源操作数,[A1]称目标操作数(又称目的操作数)。
3.1.2 基本寻址方式
1. 寄存器寻址
操作数就存放在CPU通用寄存器中,存取操作数无需访问内存,指令执
行速度快。
8086/8088CPU有8个通用寄存器,指令中只用3bit即可表示,如下表所示。
2. I/O端口寻址
(1) 直接寻址
指令中用8位无符号数直接表示I/O端口地址号。
如: IN AL,n ;输入:AL ←[n],n在0~255之间,表示端口号
(2) 间接寻址
DX指向I/O端口,即用DX 内容(16位无符号数)表示I/O端口地址编
号,范围在0~65535之间。
如: OUT DX,AL ;输出:[DX]←AL
3. 存储器寻址
(1) 立即寻址
指令地址码字段就是操作数本身。立即数只能作为源操作数。
(2) 直接寻址
指令地址码字段直接给出操作数在段内的偏移量,段基址隐含给出或由段前缀指
明。指令语句中,直接地址(一般为16位无符号数)用方括号括起来。
段隐含:
EA =DS ×16
+偏移地址
段显式:
EA =段寄存器×16
+偏移地址
(3) 寄存器间接寻址
操作数在段内的地址在基址寄存器BX 、BP或变址寄存器SI、DI 中,根据寄存器的
内容(段内的偏移地址值)到存储器中寻找操作数;段基址可用段前
文档评论(0)