第三章80×86的指令系统和寻址方式 指令系统—组指令的集合 指令:操作码操作数操作数 寻址方式 与数据有关的寻址方式 与转移地址有关的寻址方式
• 指令系统 一组指令的集合 第三章 80x86的指令系统和寻址方式 指令: 操作码 操作数 ... 操作数 • 寻址方式 与数据有关的寻址方式 与转移地址有关的寻址方式
1.8086的寻址方式 与数据有关的寻址方式: 立即寻址 MOV AX. 3069H 寄存器寻址 MOV AL. BH 直接寻址 MOA,[2000H] 寄存器间接寻址 MOV AX,[BX] 寄存器相对寻址 MOV AX, COUNT[SI] 基址变址寻址 MOV AX,[BP][DI] 相对基址变址寻址 MOV AX,MASK[BX][SI 存储器寻址
1. 8086 的寻址方式 与数据有关的寻址方式: • 立即寻址 MOV AX , 3069H • 寄存器寻址 MOV AL , BH • 直接寻址 MOV AX , [ 2000H ] • 寄存器间接寻址 MOV AX , [ BX ] • 寄存器相对寻址 MOV AX , COUNT [ SI ] • 基址变址寻址 MOV AX , [ BP ] [ DI ] • 相对基址变址寻址 MOV AX , MASK [ BX ] [ SI ] 存储器寻址
)立即寻址方式*—操作数在指令中给出 MOV AL. 5 MOV AX. 3064H MOV ALA *只能用于SRC字段 SRC和DST的字长一致 MOV AH,3064H
(1) 立即寻址方式 * —— 操作数在指令中给出 MOV AL , 5 MOV AX , 3064H MOV AL , ‘A’ * 只能用于 SRC 字段 * SRC 和 DST 的字长一致 MOV AH , 3064H
(2)寄存器寻址方式*—操作数在指定的寄存器中 MOV AX BX MOV AL. BH MOV AX. 3064H *字节寄存器只有 AH AL BH BL CH CL DH DL SRC和DST的字长一致 MOV AH BX X *CS不能用MOV指令改变 MOV CS,AX
(2) 寄存器寻址方式 * —— 操作数在指定的寄存器中 MOV AX , BX MOV AL , BH MOV AX , 3064H * 字节寄存器只有 AH AL BH BL CH CL DH DL * SRC 和 DST 的字长一致 MOV AH , BX * CS 不能用 MOV 指令改变 MOV CS , AX
3)直接寻址方式* 有效地址EA由指令直接给出 例: MOV AX,[2000H1 EA=2000H,假设(DS)=3000H,那么PA=32000H AH AL 30 32000 50H 30H (AX)=3050H *隐含的段为数据段DS *可使用段跨越前缀 MOV AX,ES:[2000H] *操作数地址可由变量(符号地址)表示 VALUE DB 10 MOV AH. VALUE MOV AX VALUE X MOV AX. WORD PTR VALUE
(3) 直接寻址方式 * —— 有效地址 EA 由指令直接给出 例:MOV AX , [ 2000H ] EA = 2000H , 假设 (DS) = 3000H , 那么 PA = 32000H * 隐含的段为数据段DS * 可使用段跨越前缀 MOV AX , ES: [ 2000H ] * 操作数地址可由变量(符号地址)表示 VALUE DB 10 MOV AH , VALUE MOV AX , VALUE MOV AX , WORD PTR VALUE 50H 30H 32000 AH AL 30 50 (AX) = 3050H