Pentium的指令系统(1)——Pentium的寻址方式

Pentium的寻址方式

对一条汇编语言指令来说,有两个问题:
(1)需要指出进行什么操作,有指令操作符来表明;
(2)指令涉及的操作数和操作结果放在何处(即操作数的寻址方式);
两种情况下涉及寻址方式:
(1)对操作数进行寻址
(2)对转移地址和调用地址进行寻址

操作数的寻址方式

来源:
(1)直接由指令本身提供
(2)由寄存器提供
(3)由存储器提供
(3)由输入端口提供
去向:
(1)送到寄存器
(2)送到存储器
(3)送到输出端口

立即数寻址

在这里插入图片描述
注释:
MOV(指令) AL(目的操作数),80H(源操作数,8位最大255,由目的寄存器决定)

作用:
将立即数送入寄存器

注意:
(1)立即数只能作为源操作数,不能作为目的操作数(只能在右边)
(2)立即数寻址一般用于对寄存器赋值
(3)操作数可从指令中直接取得,不需要总线周期(没有从内存/IO口读取数据),所以速度快

寄存器寻址

操作数在CPU的内部寄存器中,寄存器名可在指令中指出,此为寄存器寻址方式
在这里插入图片描述
作用:
1.将CX(既是源又是目的)的内容加1
2.将AH中的内容循环左移1位
3.将EAX中的32位数送到ECX

注意:
(1)寄存器寻址的指令执行时,操作就在CPU内部进行,不需要使用总线周期,因此,执行速度快
(2)对源操作数用寄存器寻址,也可对目的操作数用寄存器寻址,还可两者都用寄存器寻址

输入/输出端口寻址

I/O直接寻址

I/O端口的地址直接在指令中提供:
在这里插入图片描述
作用:
1.82H端口中的字节输入到AL
2.将AL中的数据送80H端口,将AH中的数据送81H端口
3.将80H~83H端口中的4个字节由低到高送EAX中

注意:
(1)寻址范围为0-255,即最大端口号为FFH,大于其必须使用间接寻址
(2)仅可使用AL,AX,EAX

I/O间接寻址

需要先在DX寄存器中设置好I/O端口的地址,I/O指令用DX进行寄存器间接寻址,如事先在DX中设置好端口号为80H
在这里插入图片描述
作用:
1.将端口号80H中的1个字节读入AL
2.将AL中内容输出到端口80H,将AH中的内容输出到端口81H
3.将EAX中的4个字节由低到高分别送到80H~83H这四个端口

注意:
(1)间接寻址时,只能用DX寄存器,范围0-65535,即最大端口号FFFFH
(2)仅可使用AL,AX,EAX

存储器寻址

EA(偏移量即有效地址)=基址+变址*比例因子+位移量
在这里插入图片描述
基址:任何通用寄存器都可以作为基址寄存器,其内容是基址。
位移量:指令操作码后面的32位、16位或8位的数
变址:除了ESP寄存器外,其他通用寄存器都可作为变址寄存器,常用的有DI、SI、EDI和ESI
比例因子:变址寄存器的值可乘以一个比例因子
注:段基址在保护模式即为选择子所指的描述符中的段基址,而实地址模式下和模拟8086模式下则为段寄存器的值左移4位

1.直接寻址

在这里插入图片描述
作用:
1.将DS段的1070H和1071H两单元的内容取到AX中
2.将ES段1000H开始的4个字节的数据送到EAX中

2.寄存器间接寻址

在这里插入图片描述
作用:
1.将DS段中由BX所指地址开始的两单元的内容送AX
2.将DS段中由EBX所指地址开始的四个单元的内容送EAX
3.对SS段由BP所指单元开始的4个字节送EAX
4.将ES段由BX所指单元开始的2个字节送CX

注意:
1.用BP、SP、EBP、ESP进行间接寻址时,默认段为SS,用其他寄存器进行间接寻址时,默认段为DS
2.如果对非默认段进行寻址,则必须在指令前用前缀指出段寄存器名
3.SI、DI、ESI、EDI称为变址寄存器,用这4个寄存器间接寻址也叫变址寻址

3.寄存器相对寻址

在这里插入图片描述
作用:
若SI=2000H,将DS段2100H~2101H(每一个内存单元1个字节)中的内容送AX

4.基址加变址的寻址

在这里插入图片描述
作用:
1.将BX和SI中的内容之和所指单元开始的2字节送AX
2.将EBX和ESI共同指出的地址开始的4个字节送EDX
3.同上
4.将ES段由EBX和ESI共同指出的地址开始的4个字节送EDX

注意:
1.基址加变址的寻址方式中,有一个对段寄存器的约定规则,即如果将EBP或BP作为基址寄存器,则默认段为SS,其他情况下,默认段为DS
2.若操作段不在默认段,则要用前缀指出响应的段寄存器名

5.相对的基址加变址寻址

在这里插入图片描述
作用:
将SS段由BP和SI的内容与0050H相加作为有效地址

6.相对的带比例因子的变址寻址

在这里插入图片描述
作用:
ESI的内容*4再加7形成有效地址

注意:
1.用这种方式时,EA为变址寄存器中的值乘以比例因子再加位移量,比例因子只可为1、2、4、8,是为了便于处理长度为1、2、4、8的数组。

7.基址加比例因子的变址方式

基址加比例因子的
作用:
1.将DS段由EBX+ESI*4所指单元开始的4个字节送到EAX中
2.EDI内容乘以8再加EBX内容即为有效地址

8.相对的基址加比例因子的变址寻址

在这里插入图片描述
作用:
将EDI的内容*4,加EBP的内容,再加80即为有效地址

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值