16位汇编 02

寻址

 

>> 立即寻址

 

操作数的值存储在指令中的方式称作立即寻址。

汇编中整数常量称作立即数。

立即数可以是8位数, 也可以是16位数

 

>> 寄存器寻址

 

操作数的值存储在寄存器的寻址方式称作寄存器寻址。

寄存器包括通用寄存器,段寄存器

注意:

段寄存器之间不能赋值。

指令指针寄存器不能用作寻址。

 

>> 直接寻址

操作数值在内存中, 机器中存储16位段内偏移的寻址方式称作直接寻址。

一般寻址格式为:段基址+段偏移, 这里直接写了段偏移, 默认为数据段段基址

 

所有立即数赋值给内存,都要指定内存的长度,指定方式如下:

 

没有从内存到内存的赋值方式

 

>> 寄存器间接寻址

 

1:操作数值在内存中, 段内偏移存储在寄存器中的寻址方式称作寄存器间接寻址。

2:间接寻址的寄存器有BX, BP, SI, DI

 

其中BP(基址指针寄存器)存储的是SS(堆栈段寄存器)的地址。

BX(基址寄存器),SI(源变址寄存器),DI(目的变址寄存器)这3个寄存器里面存储的是DS(数据段寄存器)的地址

 

 

 

>> 寄存器相对寻址

 

1:操作数值在内存中, 段内偏移存储由【寄存器+立即数】计算得来的寻址方式称作寄存器相对地址

 

2:寄存器相对寻址的寄存器有BX, BP, SI, DI.

 

3: 寄存器相对寻址的立即数可以是8位,也可以是16位

 

 

有以下不同写法:

 

 

 

>> 基址变址寻址

 

1:操作数值在内存中, 段内偏移由【寄存器+寄存器】计算得来的寻址方式称作基址变址寻址。

 

2:可用基址的寄存器有BX, BP.

 

3: BX 默认DS段, BP默认SS段。

 

4:可用作变址的寄存器有SI, DI.

 

 

 

>> 基址变址相对寻址

 

1:操作数值在内存中, 段内偏移由【基址寄存器+变址寄存器+偏移常量】计算得来的寻址方式称作基址变址寻址。

 

2:可用作基址的寄存器有BX,BP.

 

3:BX默认DS段,BP默认SS段。

 

4:可用作变址的寄存器有SI, DI.

 

5:可用作常量的数值可以是8位, 可以是16位。

 

 

 

>> 不存在的操作

 

1: 内存到内存。

 

2:段寄存器到内存

 

3:内存带段寄存器

posted @ 2022-03-03 20:43  冷酷的国度  阅读(113)  评论(0)    收藏  举报