寻址方式:通过地址来找到数据,也就是表示数据的方式
先来看看一条指令
mov AX,0102h ;ax为目的操作数,0102h为源操作数
一开始引出了寻址方式的定义,寻址方式就是数据的表示方式。根据源操作数的不同表示形式也分为不同寻址方式:
- 源操作数用常量表示:立即数寻址
- 源操作用寄存器表示:寄存器寻址
- 源操作数用 段地址:偏移地址 表示:存储器寻址
立即数寻址
常量可以为:二进制(后缀字母为B/b), 十进制数(不用后缀,或者使用D/d),十六进制数(后缀字母为H/h,以A~F开头则要在字母前加数字0用来与变量或寄存器区分)
mov AX,0102h;指令功能:0102h -> AX
寄存器寻址
数据可以放在8个通用寄存器以及4个段寄存器中
mov AX,BX ; 指令功能:BX -> AX
存储器寻址
- 直接寻址方式
直接包含指令的有效地址(偏移地址)
mov AX,[2000H]; 物理地址DS*16+2000H内的内容传给AX - 寄存器间接寻址方式
用寄存器内容表示偏移地址
mov AX,ES:[BX]; 物理地址ES*16+BX的内容传给AX - 寄存器相对寻址方式
用寄存器内容与常量表示偏移地址
mov AX,[SI + 06H]; DS:[SI + 06] -> AX - 基址变址寻址方式
基址寄存器加上变址寄存器表示偏移地址
mov AX,[SI+BX] ; DS:[SI+BX] -> AX
mov AX,[SI][BX] ; 功能等同于上一条指令 - 相对基址变址寻址方式
基址寄存器加上变址寄存器在加上有符号常量表示偏移地址
mov AX,[DI+BX-06H] ; DS:[DI + BX - 06H] -> AX
网友评论