微机原理与接口技术_龚尚福_第二版_第2章_课件_第3章.ppt
文本预览下载声明
第3章 指令系统和寻址方式 ;3.1 指令系统概述; 操作码字段:用来说明该指令所要完成的操作。
地址码字段:用来描述该指令的操作对象。一般是直接给出操作数,或者给出操作数存放的寄存器编号,或者给出操作数存放的存储单元的地址或有关地址的信息。
例如: ADD AX, BX
OR AL, BL; 根据地址码字段所给出地址的个数,指令格式可分为零地址、一地址、二地址、三地址和多地址指令格式。大多数指令需要双操作数,分别称两个操作数为源操作数和目的操作数,指令运算结果存入目的操作数的地址中。这样,目的操作数的原有数据将被取代。Intel 8086/8088的双操作数运算指令就采用这种二地址指令。
指令中用于确定操作数存放地址的方法,称为寻址方式。如果地址码字段直接给出了操作数,这种寻址方式叫立即寻址;如果地址码字段指出了操作数所在的寄存器编号,叫寄存器寻址;如果操作数存放在存储器中,则地址码字段通过各种方式给出存储器地址,叫存储器寻址。; 指令有机器指令和汇编指令两种形式。前一种形式由基2码(二进制)组成,它是机器所能直接理解和执行的指令。但这种指令不好记忆,不易理解,难写难读。因此,人们就用一些助记符来代替这种基2码表示的指令,这就形成了汇编指令。
汇编指令中的助记符通常用英文单词的缩写来表示,如加法用ADD、减法用SUB、传送用MOV等等,这些符号化了的指令使得书写程序、阅读程序、修改程序变得简单方便了。但计算机不能直接识别和执行汇编指令,在把它交付给计算机执行之前,必须翻译成计算机所能识别的机器指令。汇编指令与机器指令是一一对应的,本书中的指令都使用汇编指令形式书写,便于学习和理解。;3.2 8088/8086 CPU的寻址方式; 操作数及操作结果存放的地点有三处:存放在指令的地址码字段中;存放在寄存器中;存放在存储器的数据段、堆栈段或附加数据段中。与其对应的三种操作数是:立即操作数、寄存器操作数和存储器操作数。
寻找这些操作数有三种基本寻址方式,立即寻址方式、寄存器寻址方式和存储器寻址方式。其中,存储器寻址又包括多种寻址方式。下面分别介绍这些寻址方式。;3.2.1 立即寻址方式
立即寻址方式寻找的操作数紧跟在指令操作码之后。这种寻址方式在汇编语言格式中表示为:
操作码 数字表达式
其中,这个数字表达式的值可以是一个8位整数,也可以是一个16位整数,这种寻址方式主要用于给寄存器、存储单元赋初值。
【例3-1】 MOV AX,267;常数
MOV AL AND 0FEH ;表达式
MOV AL,PORT1 ;变量名
MOV AX,DATA1;段地址; 【例3-2】 MOV AL,0FFH 操作的示意图如图3.2所示。
【例3-3】 MOV AX,1234H 操作的示意图如图3.3所示。;3.2.2 寄存器寻址方式
寄存器寻址是指寻找的操作数在某个寄存器中。这种寻址方式在汇编语言格式中表示为:
操作码 寄存器名
比如AL,BX,CX,DS、IP等等。
【例3-4】MOV AX,BX
MOV AL,BL
其中AX,BX是16位寄存器寻址方式;AL,BL是8位寄存器寻址方式。; 这种寻址方式的优点是:寄存器数量一般在几个到几十个,比存储器单元少很多,因此它的地址码短,从而缩短了指令长度,节省了程序存储空间;另一方面,从寄存器里取数比从存储器里取数的速度快得多,从而提高了指令执行速度。;3.2.3 存??器寻址方式
当操作数放在存储器中的某个单元时,CPU要访问存储器才能获得该操作数。如果存储器的存储单元地址是20位,把通过各种方法算出段内偏移地址(有效地址),结合段地址形成20位物理地址找到操作数的方法,统称为存储器寻址方式。
1. 直接寻址方式
直接寻址方式是指寻找的操作数的地址在指令中直接给出。这种寻址方式在汇编格式中表示为
● 操作码 地址表达式 (或[地址表达式])
● 操作码 [数字表达式]; 【例3-5】 假设TABLE是在数据段定义的一个字节数组的首地址标号(变量名),其偏移地址为1000H,则指令
MOV AL,TABLE 或 MOV AL,TABLE+2
或 MOV AL,[TABLE] 或 MOV AL,[TABLE+2]
显示全部