- 1、本文档共71页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 8086/8088指令系统
指令是汇编语言程序设计的基础,只有熟练掌握8086/8088各条指令的书写格式、功能及注意事项,程序设计员才能在编写汇编程序的过程中得心应手。
本章重点讲解指令执行时获取操作数的七种寻址方式以及8086/8088的指令系统。
3.1 指令系统简介
3.1.1 指令系统概述
能够被8086/8088 CPU识别并执行的指令集,称为8086/8088的指令系统。8086/8088的指令系统按照功能主要可以分为以下6类:
(1)数据传送类指令
(2)算术运算类指令
(3)逻辑类指令
(4)控制转移类指令
(5)串处理类指令
(6)其他指令
3.1.2 汇编指令格式及特点
汇编指令格式与其他微机的指令格式一样,均由以下几部分组成:
[标号:] 操作码 [操作数] [;注释]
其中,在上述指令格式中用方括号扩起来的部分是可有可无的,所以在一条指令中只有操作码是必须具备的。
例如一条完整的指令语句如下:
HERE: MOV AX,1234H ;将立即数1234H送入AX寄存器
(1)标号
标号是由英文字母、数字及其他专用字符所组成的字符串,一般由字母和下划线打头。它代表了该指令的符号地址,标号后面必须接冒号。
(2)操作码
操作码是由助记符表示的字符串,它规定了指令的操作功能。操作码和操作数之间由空格分隔。
(3)操作数
操作数是指参加操作的数据或数据的地址。如果有多个操作数,必须使用逗号分隔。
(4)注释
注释是为该条指令作的说明注解,以便于程序设计员阅读与调试。
8086/8088指令系统中,操作数可以有1、2个,也可以没有。例如:
MOV AX,CX ;双操作数指令
INC AX ;单操作数指令
NOP ;无操作数指令
8086/8088的各条指令在执行前必须转变为CPU可以识别的机器码,这是指令和伪指令之间本质的区别,因为伪指令是不会被汇编程序汇编成机器码的。伪指令在第四章中进行介绍。
例3-1编写一段汇编程序,通过DEBUG程序的U命令查看程序中各条指令所对应的机器码。
解:给出代码段,该代码段包含五条指令,然后通过上机观察这五条指令所对应的机器码。
程序代码编写如下:
CSEG SEGMENT
ASSUME CS:CSEG
START:
MOV AX,0ABCDH ;AX←0ABCDH
MOV BX,1234H ;BX←1234H
MOV CX,5678H ;CX←5678H
MOV AH,4CH
INT 21H ;返回DOS
CSEG ENDS
END START
保存该文件,名称为111.ASM后,通过MASM程序汇编成111.OBJ,再通过LINK程序连接成111.EXE,再使用DEBUG 111.EXE命令中的U查看这五条指令所对应的机器码,结果如图3-1所示。
图3-1 机器码示意图
由图3-1可知,MOV AX ,0ABCDH 指令的机器码为B8CDAB,其中B8为该指令的操作码,CDABH表示存储器的低地址存储了0CDH,高地址存储了ABH,根据高高低低原则,该数据应该为ABCDH,很明显,该数据即为指令中的立即数OABCDH。同理,MOV BX,1234H指令的机器码为BB3412;MOV CX,5678H指令的机器码为B97856。
注意:伪指令是不会被编译成机器码的。该例题中,伪指令SEGMENT、ASSUME、ENDS等伪指令均没有在机器码中出现。
3.1.3 符号说明
为了方便指令系统的讲解,下面把描述指令的一些符号作一简单约定。
(1) OPR:表示操作数;
(2) DST:表示目的操作数;
(3) SRC:表示源操作数;
(4) REG:表示16位通用寄存器或8位寄存器;
(5) Imm16:表示16位立即数;
(6) Imm8:表示8位立即数;
(7) Imm:表示8位或16位立即数;
(8) EA:表示有效地址;
(9) mem:表示存储器单元;
(10)SegReg:表示段寄存器。
(11)PORT:表示端口
§3.2 寻址方式
指令中的操作码告诉CPU执行何种操作,而指令中的操作数即为操作的对象。在编写程序的过程中,我们往往不会在指令中直接给出操作数,而是给出操作数所在寄存器的名称或操作数所在存储单元的逻辑地址。
寻址方式就是如何根据指令提供的信息寻找到操作对象。8086/8088提供了7种寻址方式用于寻找操作数,在学习的过程中请注意寻址方式的特征及操作数所在的位置。
3.2.1 立即寻址方式
如果在指令中直接给出了操作数,无需再去寻找操作数了,这种寻址方式我们称为立即寻址方式。我们把直接给出的操作数称为立即数。
立即寻址方式的特征是在指令中出现的是立即数,并且立即数是以常
您可能关注的文档
最近下载
- 2025 党校入党积极分子预备党员考试题库(含答案).docx VIP
- 2025 党校入党积极分子预备党员考试题库(含答案).docx VIP
- 边坡绿化工程施工方案.doc VIP
- 紫外线钣金灰行业报告.pptx
- 2024年江苏省高考生物试卷真题(含答案逐题解析).docx
- 2025年中国铁路武汉局集团有限公司招聘毕业生(四)【135人】笔试参考题库附带答案详解.docx
- 最新高二语文下学期期末试卷附答案一套.docx VIP
- 外研版高中《英语》(新标准)必修二Unit6 单元整体教学设计附作业设计.docx
- 毛概电子书.doc
- 外研版高中《英语》(新标准)必修二Unit5 单元整体教学设计附作业设计.doc
文档评论(0)