当前位置:文档之家› 指令系统和寻址方式.ppt

指令系统和寻址方式.ppt


第3章 指令系统和寻址方式
每条指令由两部分组成:操作码字段和地址码字段。 格式如图3.1所示。
操作码
操作数(地址码)
图3.1 指令格式 操作码字段:用来说明该指令所要完成的操作。 地址码字段:用来描述该指令的操作对象。一般是直 接给出操作数,或者给出操作数存放的寄存器编号,或 者给出操作数存放的存储单元的地址或有关地址的信息。
第3章 指令系统和寻址方式
代码段
AL
OPΒιβλιοθήκη 0FFH图3.3 8位立即寻址操作示意图
第3章 指令系统和寻址方式
AX
代码段
OP 34H 12H
图3.4 16位立即寻址操作示意图
第3章 指令系统和寻址方式
由此看出,这种寻址方式不需要访问存储器而是立 即从指令中取得操作数。这正是立即寻址方式名称的 含义所在。
由于在这种寻址方式中操作数是指令的一部分,不 能修改,而一般情况下,指令所处理的数据都是在不 断变化的,比如本条指令的操作数是上一条指令的执 行结果。因此,这种寻址方式只能适用于操作数固定 的情况。例如,给某一寄存器赋初值或给某存储单元 提供常数等。
第3章 指令系统和寻址方式
此外要注意,这种寻址方式不能用于单操作数指令; 若 用于双操作数指令,也只能用于源操作数字段,不 能用于目的操作数字段。
第3章 指令系统和寻址方式
因此,人们就用一些助记符来代替这种基2码表示的指 令,这就形成了汇编指令。汇编指令中的助记符通常 用英文单词的缩写来表示,如加法用ADD,减法用 SUB,传送用MOV等等。这些符号化了的指令使得书 写程序、阅读程序和修改程序变得简单、方便,但计 算机不能直接识别和执行,在把它交付给计算机执行 之前,必须翻译成计算机所能识别的机器指令。这个 翻译过程由一个被称为“汇编程序”的工具软件自动 实现。汇编指令与机器指令是一一对应的,本书中的 指令都使用汇编指令形式书写,便于读者学习和理解。
第3章 指令系统和寻址方式
操作数及操作结果存放的地点有三处:存放在指令 的地址码字段中;存放在寄存器中;存放在存储器的 数据段、堆栈段或附加数据段中。与其对应的有三种 操作数:立即操作数、寄存器操作数和存储器操作数。 寻找这些操作数有三种基本寻址方式:立即寻址方式、 寄存器寻址方式和存储器寻址方式。其中,存储器寻 址又包括多种寻址方式。下面分别介绍这些寻址方式。
第3章 指令系统和寻址方式
3.2 8086/8088 CPU的寻址方式
3.2.1 数据寻址方式 机器执行指令的目的就是对指定的操作数完成规定
的操作,将操作结果存入规定的地方。因此,如何获 得操作数的存放地址及操作结果的存放地址就是一个 很关键的问题。8086/8088 CPU有多种方法来获取操作 数的存放地址及操作结果的存放地址,这些方法统称 为数据寻址方式。
2. 寄存器寻址 寻找的操作数放在某个寄存器中。这种寻址方式在 汇编语言格式中表示为 寄存器名 比如:AL,BX,CX,DS,IP等等。 【例3-7】 MOV AX,BX 其中,“AX”,“BX”就是寄存器寻址方式。
第3章 指令系统和寻址方式
根据地址码字段所给出地址的个数,指令格式可分 为零地址、一地址、二地址、三地址和多地址指令。 例如,停机HLT指令不需要操作数,是零地址指令; 而增量指令(INC AX)和减量指令(DEC AX)等只需要一 个操作数,是一地址指令。大多数指令需要双操作数, 对于这种指令,现代计算机多采用二地址指令,分别 称两个操作数为源操作数和目的操作数,指令运算结 果存入目的操作数的地址中去。这样,目的操作数的 原有数据将被取代。Intel 8086/8088的双操作数运算指 令就采用这种二地址指令。
第3章 指令系统和寻址方式
指令中用于确定操作数存放地址的方法,称为寻址 方式。如果地址码字段直接给出了操作数,这种寻址 方式称为立即寻址;如果地址码字段指出了操作数所 在的寄存器编号,称为寄存器寻址;如果操作数存放 在存储器中,则地址码字段通过各种方式给出存储器 地址,称为存储器寻址。
指令分为机器指令和汇编指令两种形式。前一种 形式由基2码(二进制)组成,它是机器所能直接理解和 执行的指令。但这种指令不好记忆,不易理解,难写 难读。
第3章 指令系统和寻址方式
指令 立即数
图3.2 立即寻址示意图
汇编时,汇编程序首先计算出数字表达式的值, 然后 将其写入指令的地址码字段,称其为立即数。格式如 图3.2所示。
当机器执行这种寻址方式的指令时,从指令地址 码字段中取出立即数,即是指令所需要的操作数。
第3章 指令系统和寻址方式
【例3-5】 MOV AL,0FFH 操作过程的示意如图3.3所示。 【例3-6】 MOV AX,1234H 操作过程的示意如图3.4所示。
第3章 指令系统和寻址方式
1. 立即寻址 在立即寻址方式中,寻找的操作数紧跟在指令操作 码之后。这种寻址方式在汇编语言格式中表示为 数字表达式 这个数字表达式的值可以是一个8位整数,也可以是 一个16位整数。 【例3-1】 MOV AX,267 其中,“267”就是数字表达式,也就是立即寻址方式。
第3章 指令系统和寻址方式
第3章 指令系统和寻址方式
3.1 指令系统概述 3.2 8086/8088 CPU的寻址方式 3.3 8086/8088 CPU的指令系统 3.4 80x86及Pentium CPU扩充和增加 习题3
第3章 指令系统和寻址方式
3.1 指令系统概述
程序是指令的有序集合,指令是程序的组成元素, 通常一条指令对应着一种基本操作。一个计算机能执 行什么样的操作,是由该计算机的指令系统决定的。 一个计算机的指令集合,就是该计算机的指令系统。 每种计算机都有自己固有的指令系统,互不兼容。但 同一系列的计算机其指令系统是向上兼容的。
第3章 指令系统和寻址方式
【例3-2】 MOV AL,10010011B AND 0FEH 其中,“10010011B AND 0FEH”是一个数字表达式, 是立即寻址方式。 【例3-3】 MOV AL,PORT1 其中,PORT1是一个用EQU定义的符号名,属于常 数,因此它也是立即寻址方式。 【例3-4】 MOV AX,DATA1 其中,DATA1是定义的段名,实际上就是段地址, 是一常数, 因此它也是立即寻址方式。
相关主题