数据处理的两个基本问题
bx,si,di和bp
只有bx,si,di和bp可以放在[ ]中进行内存单元的寻址
可以单个出现和组合出现
组合的方式:bx + si,bx + di, bp + si, bp + di,bx + si + idata,bx + di + idata, bp + si + idata, bp + di + idata
机器指令处理的数据在什么地方
数据存放的位置:CPU内部、内存、端口
汇编语言中数据位置的表达
立即数(idata):直接包含在机器指令中的数据(执行前在CPU的指令缓冲器);如:mov ax,1
寄存器:指令要处理的数据在寄存器中,在汇编指令中给出相应的寄存器名; 如:mov ax,bx
段地址(SA)和偏移地址(EA):指令需要处理的数据在内存中,在汇编指令中用 [ ]给出,EA,SA在某寄存器
段地址默认在ds中:[idata],[di],[bx + idata],[bx + si],[bx + si + idata]
段地址默认在ss中:[bp + idata],[bp +si],[bp +si + idata]
寻址方式
直接寻址 :[idata]
寄存器寻址 :[ bx ]、[ bp ]、[ si]、[ di]
寄存器相对寻址 :[ bx + idata ]、[ bp + idata ]、[ si + idata ]、[ di + idata ]
基址变址寻址 :[ bx + si ]、[ bp + di ]、[ bp + si ]、[ bp + di ]
相对基址变址寻址:[ bx + si + idata ]、[ bp + di + idata ]、[ bp + si + idata ]、[ bp + di + idata ]
指令要处理的数据又多长
以字为处理单位 mov word ptr ax, [0]
以字节为处理单位 mov byte ptr ax,[0]
寻址方式的综合应用
div指令
除数:有8位和16位两种,在一个reg或者内存单元中
被除数:默认放在AX或DX和AX,除数是8位,被除数则为16位,放在AX中,除数16位,被除数32位,则高16位在DX,低8位放在AX中
结果:除数是8位,AL存储商,AH存余数,除数16位,AX存商,DX存余数
mov ds,·1
mov ax,86a1h
mov bx,100
div bx
伪指令dd
dd表示double型数据,dd 10000占4个字节
dup
db 重复的次数 dup (重复的字节型数据)
dw 重复的次数 dup (重复的字型数据)
dd 重复的次数 dup (重复的双字型数据)