0380X86指令系统导论.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 80X86指令系统 本章主要内容 本章将主要介绍80X86微处理器的指令格式、寻址方式、指令系统、DOS系统功能调用和BIOS功能调用。 其中,寻址方式和基本指令的学习是重点。 通过本章的学习,读者可以了解和掌握80X86指令系统,为后续的80x86汇编语言程序设计奠定基础。 3.1 80x86微处理器的指令格式 程序是使计算机完成一个任务的一组命令或指令序列。 指令是规定微处理器执行某种特定操作的“命令”。 指令系统是CPU机器指令的集合。 不同类型和型号的CPU的机器指令、指令系统是不一样的。 Intel 80x86指令集的发展 机器指令由二进制数组成,计算机硬件只能识别﹑存储和运行机器指令。 机器指令无论是在书写、阅读和记忆都是非常困难的,为此,产生了符号化的机器指令,即助记符/符号指令/汇编指令。 80X86汇编语言的指令是一种符号语言,用助记符表示操作码,用符号或符号地址表示操作数或操作数地址,它与机器指令基本上是一一对应的。 机器指令由操作码字段和操作数字段两部分组成。 操作码字段:说明CPU完成何种操作。在机器指令中对每个操作指定一个确定的二进制代码。 如果指令比较长需要用多个连续的存储单元来存储,通常第一个存储单元的字节表示,不够可以占第二个字节中的某几个二进制位。 操作数字段:说明参加操作的数据对象或其所在的存储单元地址。操作数字段可以有一个,二个或三个操作数或者操作数所在存储单元的地址。 80X86 CPU指令系统采用变长的指令格式(根据指令的使用频率) 。 一条指令可以由1~16个字节组成。较长的指令需要占用连续多个的存储单元。 指令在多个存储单元中连续存放,其中,存放指令的第一个存储单元地址称为指令地址。 一条指令可能包含需要操作的对象即操作数,也可能占用内存的多个存储单元。一个操作数如果占用连续多个的存储单元,也是进行连续存放。 其中,操作数的低位存放在低地址存储单元中,高位存放在高地址部分。 存放数据的第一个存储单元地址称为操作数的地址。 3.1.1 80x86微处理器的指令编码格式 80X86机器指令编码的一般形式,如图所示。 表3-1 reg域及其说明 表3-2 mod(方式)域及说明 表3-3 mod与r/m域所组成的寻址方式 【例3-1】写出:符号指令 MOV AH , [BX+SI+88H] 所对应的机器指令编码。 3.1.2 80x86微处理器的指令书写格式 与机器指令相同,符号指令同样由操作码字段和操作数字段组成: 根据操作数地址码部分所给出的地址个数,分为: 零地址指令 格式: 指令中只有操作码没有操作数,所有地址均隐含约定,也叫无操作数指令。 通常有以下情况: ①无需任何操作数,如空操作指令、CPU控制指令等。 ②所需的操作数是隐含约定的。如字符串指令中的源、目的操作数都是隐含默认的;堆栈指令中,所需操作数默认在堆栈中由SP隐含指出;对默认寄存器内容进行操作等。 一地址指令 格式: ⑴ 只有目的操作数的单操作数指令 功能:OP(D1)→D1 ⑵隐含目的操作数的双操作数指令 功能:(D1)OP(A)→A 二地址指令 格式: 功能:(D1)OP(D2)→D1 注意,两操作数运算指令中,目的操作数原来的内容将被新的执行结果所替代。 三地址指令 格式: 功能:(D1)OP(D2)→D3 该指令表示操作数D1、D2执行OP指定的操作,将结果存入D3所指定的地址中。 总的来说,零地址、一地址和二地址指令都具有指令短、执行速度快、硬件实现简单等优点,一般在结构简单、字长较短的小型机和微型机中采用。 而两地址以上的指令具有功能强、便于编程等优点多为字节较长的中型、大型机采用。 此外,并非所有计算机有具有以上介绍的全部指令格式。 3.2 80X86的寻址方式 寻址方式:一般的,是指在指令中寻找操作数的方式。 思考:为什么指令无需专门考虑寻址问题? 操作数的存放位置包含四种情况: (1)操作数包含在CPU的一个内部寄存器中。 例:INC CX 对应的机器指令中的操作数字段是CPU内部寄存器的一组机器编码。这种操作数称为寄存器(直接)寻址。 (2)操作数在内存数据区。(“存储程序”的概念) 绝大多数操作数存放在内存单元中。 一个操作数占用一个或者连续多个存储单元中。机器指令中操作数字段包含着此操作数所在的第一个存储单元的逻辑地址。 这种操作数称之为存储器操作数或者内存操作数。 (3)操作数在接口电路的I/O端口寄存器中。 (4)操作数包含在指令中 即指令的操作数字段包含操作数本身。这种操作数为立即数。例:MOV CX ,100 立即数寻址方式 立即数(Immediate Address) :操作数直接存放在指令中,紧跟

文档评论(0)

过各自的生活 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档