指令格式

机器指令:指令的二进制代码形式。如:89D8H

汇编指令:助记符形式的指令。如:MOV AX,BX

指令由操作码和操作数两部分组成

lda和sta是什么寻址 add是什么寻址方式_寻址


操作码:由CPU设计人员定义。每一种操作唯一对应一个操作码。 例:加法操作助记符ADD;数据传送操作助记符MOV; 比较操作助记符CMP;

操作数:可由编程人员采用不同方式给出。

lda和sta是什么寻址 add是什么寻址方式_微机原理_02

寻址方式

指令中给出操作数所在地址的方法。

  • 指令中操作数可能存在的地方:
    指令中
    寄存器
    存储单元
    I/O端口
  • 对应的寻址方式:
    立即寻址
    寄存器寻址
    存储器寻址:给出EA的方式多样,5种。
    1、直接寻址
    2、寄存器间接寻址
    3、基址加变址寻址
    4、寄存器相对寻址
    5、相对基址加变址寻址
    I/O端口寻址
1、立即寻址

指令中的源操作数是立即数,即源操作数是参加操作的数据本身。
立即数可以是8位或16位的整数

lda和sta是什么寻址 add是什么寻址方式_寄存器_03

2、寄存器寻址

参加操作的操作数存放在CPU的内部寄存器中。 8/16位。

lda和sta是什么寻址 add是什么寻址方式_lda和sta是什么寻址_04

3、直接寻址方式
  • 指令中直接给出操作数的16位偏移地址
  • 直接寻址方式下,操作数默认为在数据段,段地址在DS中。
  • 但允许段超越。可在指令中增加段超越前缀指出特定段寄存器名。

lda和sta是什么寻址 add是什么寻址方式_操作数_05


lda和sta是什么寻址 add是什么寻址方式_寄存器_06

4、寄存器间接寻址
  • 操作数存放在内存中,其偏移地址在指令中指定的寄存器中。
  • 存放偏移地址的寄存器可以是:
    BX,BP,SI,DI
  • 操作数的段地址(数据处于哪个段)取决于选择哪一个寄存器:
    BX,SI,DI 默认在数据段,DS
    BP 默认在堆栈段,SS
    均可使用段超越前缀改变

lda和sta是什么寻址 add是什么寻址方式_微机原理_07


lda和sta是什么寻址 add是什么寻址方式_lda和sta是什么寻址_08

5、寄存器相对寻址

有效地址是基址或变址寄存器的内容再加上一个8/16位的位移量。

lda和sta是什么寻址 add是什么寻址方式_微机原理_09

lda和sta是什么寻址 add是什么寻址方式_操作数_10

7、基址变址寻址

有效地址由基址寄存器(BX或BP)的内容加上变址寄存器(SI或DI)的内容构成:

lda和sta是什么寻址 add是什么寻址方式_寄存器_11

lda和sta是什么寻址 add是什么寻址方式_微机原理_12

8、相对基址变址寻址

在基址-变址寻址的基础上再加上一个位移量

lda和sta是什么寻址 add是什么寻址方式_操作数_13

lda和sta是什么寻址 add是什么寻址方式_操作数_14


存储器操作数寻址时段寄存器的使用约定

lda和sta是什么寻址 add是什么寻址方式_操作数_15