知识预备
1: AX (数据存储器)
2: ES (段寄存器)
3:EA(有效地址)
4:有效地址=段地址的偏移地址,因为段地址已知,知道偏移地址就能有效找到实际地址
5:物理地址=有效地址 + 16*段地址
6:ES:[3000H]可以把ES段地址(固定已知):省去
一&指令系统
什么是指令 | 计算机能执行的功能 |
---|---|
格式 | 操作码 操作数1 操作数2 … |
寻址方式
数据寻址 | 根据人直接找人 |
---|---|
立即寻址 操作数:整数,浮点,字符…直接在指令中给出 | MOV AX , 3069H |
存储器寻址 | 根据门牌号找房间 |
---|---|
直接寻址: 1)指令直接被给出物理地址EA | MOV AX ,[2000H] |
寄存器寻址 1)操作数由寄存器给出 2)寄存器(H=high / L=low): AH / BH / CH / DH / AL / BL / CL / DL | MOV AL , BH |
寄存器间接寻址 1)EA在基址寄存器( BX / BP )中 或EA在变址寄存器( SI / DI )中 2)指令给的是(段地址的偏移地址/有效地址),所以也叫间接寻址 | MOV AX , [ BX ] |
寄存器相对寻址 1)指令给的是2部分偏移地址,其中只有一个偏移地址被基地址寄存器保存,另一个COUNT被指令直接给出 2)有效地址=( BX / BP / SI / DI ) + 偏移量 | MOV AX , COUNT [ SI ] |
基址变址寻址 1)指令给的有效地址由2部分偏移地址构成一个完整的偏移地址,并且这2个部分偏移地址被基地址储存 2)与寄存器相对寻址不同的是,寄存器相对寻址只有一部分偏移地址被放入了基地址寄存器进行保存了 | MOV AX , [ BP] [ DI ] |
相对基址变址寻址 1指令给的有效地址由3部分偏移地址构成一个完整的偏移地址,并且有2个部分偏移地址被基地址储存,一个偏移地址MASK被指令直接给出) | MOV AX , MASK [ BX ] [ SI ] |