欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

微机原理--8种寻址方式

程序员文章站 2024-01-30 23:31:04
...

微机原理–8种寻址方式

指令和指令系统

指令:控制计算机完成某种操作的命令

指令系统:处理器能识别的所有指令的集合

指令的兼容性:同一系列机的指令是兼容的

指令的包含的内容:

  • 运算数据的来源
  • 运算结果的去向
  • 执行的操作

指令格式:

[][]\quad\quad\quad\quad\quad\quad\quad操作码\quad[操作数],[操作数]

注意:[]表示可以缺省

操作码:执行何种操作

操作数:执行对象。第一个操作数 :目标操作数;第二个操作数:源操作数

指令格式

  • 零操作数指令:操作码
  • 单操作数指令:[]操作码\quad[操作数]
  • 双操作数指令:[][]操作码\quad[操作数],[操作数]

指令中的操作数

  • 立即数:是一个常数
  • 寄存器操作数:是一个地址,计算速度最快
  • 存储器操作数:是一个地址,计算速度最慢

立即数

立即数本身是参加操作的本身,可以是8位或者16位。只能作为源操作数

mov AX,1234H
mov BL,22H

寄存器操作数

参加运算的数存放在指令给出的寄存器中,可以是8位,16位。

mov AX,BX
mov DL,CH

存储器操作数

参与运算的数据存放在存储器的某一个或两个单元中

表现形式:【 】:方括号里面是地址(偏移地址)

MOV AL,[1200H]

指令的寻址方式

立即寻址

由指令直接给出运算数据。操作数为立即数

MOV AX,1200H

结果:AL=00H,AH=12H

常数1200H存放在代码段

寄存器寻址

参加的操作数在CPU的通用寄存器

mov AX,BX

存储器操作数的寻址方式

注意点:

  • 指令的操作对象在内存中。表现形式:【】
  • 方括号中的地址为偏移地址
  • 逻辑段的段基地址通过默认或者重设的方式给出
  • 存储器操作数的字长本身不确定,其字长取决于指令中另一个寄存器的操作数,或者通过其他方式指定字长

直接寻址

方括号里面直接是偏移地址

MOV AX,[1200H]

说明:源操作数为16位,AL=1200H中的数据;AH=12001H中的数据(先低位后高位)

操作数默认为数据段(DS),允许重设

MOV AX,ES: [1200H] :为段重设符

ES:附加数据段

寄存器间接寻址

  • 偏移地址为通用寄存器中的内容,换句话说:偏移地址放在通用寄存器中
  • 仅有4个通用寄存器可以用于存放数据的偏移地址,也叫间址寄存器
  • 间址寄存器:BX(数据寄存器),BP(基址指针寄存器),SI(源变址寄存器),DI(目标变址寄存器)
MOV BX,1200H
MOV AX,[BX]
  • 操作数的段地址(数据差处于哪个段)取决于选哪个间址寄存器。可以重设。
  • BX,SI,DI:默认数据段
  • BP:默认堆栈段

寄存器相对寻址

操作数的偏移地址为寄存器里面内容再加上一个偏移量(任意8bit或者16bit)

MOV AX,[BX+DATA]

MOV AX,2000H
MOV DS,AX
MOV BX,1200H
MOV AL,[BX]5    等价于MOV AL,[BX+5]

相对寻址主要用于一维数组的操作

基址,变址寻址

操作数的偏移地址=基址寄存器中的数据+变址寄存器中的数据

基址寄存器BX,BP;变址寄存器:SI,DI

基址寄存器为BX,默认在数据段

基址寄存器在BP,默认在堆栈段

MOV SI,1100H
mov BX,SI
mov AX ,[SI+BX]      等价于MOV AX,[Bx][SI]   

目前偏移地址:1100H+1100H=2200H

基址,变址,相对寻址

操作数的偏移地址=基址寄存器中的数据+变址寄存器中的数据+偏移地址

主要运用二维数组

MOV DI,1100H
MOV BP,DI;
MOV AL,[BP][DI]5

目前偏移地址=1100H+1100H+5H=2205H

隐含寻址

操作数在默认的地址中

MUL BL

指令执行:AL*BL,结果放在AX中

练习

设:DS=6000H,ES=2000H,SS=1500H,SI=00A0H,BX=0800H,BP=1200H,字符常数VAR为0050H。说明以下指令的源操作数寻址方式和如果是存储器操作数,计算物理地址

  1. MOV AX,BH 寄存器寻址

  2. MOV DL,80H 立即寻址

  3. MOV AX,VAR[BX][SI]基址,变址,相对寻址;物理地址:608F0H

  4. MOV AL,'B' 立即寻址

  5. MOV DI,ES:[BX] 寄存器间接寻址;物理地址:20800H

  6. MOV DX,[BP] 寄存器间接寻址;物理地址:16200H

  7. MOV BX,20H[BX] 寄存器相对寻址:60850H

相对寻址;物理地址:608F0H
4. MOV AL,'B' 立即寻址
5. MOV DI,ES:[BX] 寄存器间接寻址;物理地址:20800H
6. MOV DX,[BP] 寄存器间接寻址;物理地址:16200H
7. MOV BX,20H[BX] 寄存器相对寻址:60850H

更多请关注:

微机原理--8种寻址方式

相关标签: 微机原理