目录
立即数、寄存器、存储器的概念
立即数:参与操作的数据本身,8位或16位
(只能作为src,无法成为dst)
eg:MOV AX,1234H
寄存器:数据存放地址
eg:MOV AX,BX
存储器:数据存放地址
存放在存储器的某一或两个单元中
[操作数在内存中的偏移地址]
eg:MOV AL,[1200H]
数据寻址方式
立即寻址:
用于寄存器赋初值;
寄存器寻址:
AX、BX、CX、SI、DI、SP、BP任意一寄存器;
源操作数与目的操作数字长要相等;
(与段地址无关,即段寄存器不能直接赋值) 如:MOV AX,1200H;MOV DS,AX
存储器寻址:
存储器单元的逻辑地址=段地址+偏移地址,即(DS/SS/CS/ES)*16+EA
般段地址为DS(特殊:基址指针BP时,段地址为退栈段寄存器SS)
单元地址(偏移地址<EA>)由三个分量地址组合而成(位移分量<disp>、基址分量<BX、BP>、变址分量<SI、Di>)
1、直接寻址: EA=disp16/disp8
2、寄存器间接寻址: EA=BX/BP/SI/DI
3、带位移的基址/变址寻址:EA=(BX/BP/SI/DI)+disp16/disp8 如:MOV AX,4000H[BP]或MOV AX,[BP+4000H]
4、基址变址寻址: EA=(BX/BP)+(SI/DI) 如:MOV AX,[BX][DI]或MOV AX,[BX+DI]
5、带位移的基址变址寻址: EA=(BX/BP)+(SI/DI)+disp16/disp8
注意:
立即数是8位或16位的操作数,如:06H 3578H;
若x表示单元地址,则[x]表示x单元的内容;
'/'是任意一个,并非两个;
操作数(源操作数和目标操作数):只能有一个是间接寻址;
CS不能通过赋值改变,只能通过跳转指令;
寄存器常用搭配:
CS-IP 固定
DS-BX/SI/DI/位移量 默认
SS-SP 固定
SS-BP 默认
ES-DI 固定