第四章 8086/8088CPU指令系统
mov ax,12h
call display
Jmp 1234h
1
主要内容:
本章的重点是理解8086常用指令的功能
本章的难点是8086的各种寻址方式
同学们一定要采用调试程序DEBUG进行实践
2
调试程序DEBUG
DEBUG是常用的汇编语言调试工具,为汇编语言程序员提供了分析指令、跟踪程序的有效手段。
常用命令:
-A汇编-U反汇编
-T单步执行-G断点执行
-D数据显示-R寄存器
3
指令的基本构成
操作码
[操作数],
[操作数]
说明要执行的是什么操作
操作对象,可以有0个、1个或2个
目的
源
4
指令举例:
ADD AX,[SI+6]
MOV AX , BX
操作码操作数
INC [BX]
HLT
5
寻址方式
指令系统设计了多种操作数的来源,
寻找操作数的过程就是操作数的寻址方式。
操作数采取哪一种寻址方式,会影响机器运行的速度和效率。
如何寻址一个操作数对程序的设计来讲也很重要。
在8086指令系统中,操作数所在地址的寻址方式可分为4大类:
①立即寻址②寄存器寻址
③存储器寻址④I/O寻址
6
操作数(为一常数)直接由指令给出
(此操作数称为立即数)
立即寻址只能用于源操作数,常用来给寄存器或存储单元赋初值。
例:
MOV AX, 1C8FH
MOV BYTE PTR[2A00H], 8FH
错误例:
× MOV 2A00H, AX ; 错误!
1. 立即寻址
7
立即数
操作码
低8位
高8位
存储器
MOV操作码
02H
31H
AH
AL
代码段
代码段
立即寻址指令在存储器中的存放形式
AX
指令操作例:MOV AX,3102H ; AX 3102H
执行后,(AH) = 31H,(AL) = 02H
用途:直接给出操作数据,立即数存放在内存的代码段中
8
2. 寄存器寻址
操作数放在某个寄存器中
源操作数与目的操作数字长要相同
寄存器寻址与段地址无关
例:
MOV AX, BX
MOV [3F00H], AX
MOV CL, AL
错误例:
× MOV AX, BL ; 字长不同
× MOV ES: AX, DX ; 寄存器与段无关
9
AX
SI
2233H
2233H
指令操作例:MOV SI,AX ; SI (AX)
指令执行前:(AX)=2233H
指令执行后:(AX)=2233H,(SI)=2233H
10
指令系统(寻址方式)(精选) 来自淘豆网www.taodocs.com转载请标明出处.