80X86指令系统PPT课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
▪ 8086的指令格式: 操作码(指令助记符)+ 操作数
MOV dst , src ; (dst) (src)
百度文库

↑↑
助记符 目的操作数 源操作数
❖ 无操作数指令 NOP ; HLT
❖ 单操作数指令 DEC AX ;INC BX
❖ 双操作数指令 MOV AX ,1000H ; ADD DI ,SI
▪ 操作数类型
包括
有效地址 =三部(分BX:) 基+址寄(S存I) 器+ 、8变位址寄位存移器量和位移量。
(BP)
(DI) 16位
• BX (DS) • BP (SS)
•例如: MOV AX , MASK [BX] [SI] •必须是一个基址寄存器和一个变址寄存器的组合
MOV AX, 2[BX][BP] MOV AX , 2[SI][DI]
PA = 16d (SS) + (BP)
MOV AX , ES:[BX]
PA = 16d (ES) + (BX)
9
3.2.5、变址寻址* * —操作数在存储器中,偏移地址包括两
部分
(BX)
偏移地址 =
(SI) + 8位 位移量
(DI)
16位
(BP)
• BX, SI, DI (DS)
• BP (SS)
例:MOV AX, [2000H] 假设(DS)=3000H 物理地址 PA = 30000H + 2000H = 32000H
• 也可用符号地址(变量名或标号)代替数值地址。
例: MOV AH , DATA1
•也允许段超越方式使用其它段寄存器
5
例:MOV AX, ES:[2000H]
(1)直接寻址方式(Direct Addressing) 直接寻址方式是指: 操作码 。。。位移量
❖ 立即数
MOV AX ,1000H
❖寄存器操作数 ADD DI ,SI
❖ 存储器操作数 必须找到操作数所在的存储器的物理地址
MOV AL ,[2000H]
MOV AL ,[SI]
3
3-2 8086的寻址方式
3.2.1、立即寻址* * —— 操作数在指令中给出
MOV AL , 5
MOV AX , 3064H
偏移地址在寄存器 BX、BP、SI、DI 中
• BX, SI, DI (DS)
(BX)
物理地址 PA = 16 (DS) + (SI)
• BP (SS)
(DI)
物理地址 PA = 16 (SS) + (BP)
• 例如:
MOV AX , [BX]
PA = 16d (DS) + (BX)
MOV DL , [BP]
DS);如果操作数不是存放在数据段中,则必须给出段寄存器 名。例如:
MOV BX,VAR ;
MOV DA_BYTE,0FH ; DS
MOV CL,DA+3 ;
BX
上述3条指令分别等价于:
VAR EA FFH 00H
00FFH
M○V BX,DS:VAR
MOV DS:DA_BYTE,0FH
MOV CL,DS:DA+3
11
3.2.7、串寻址* * — 字符串操作指令使用隐含的变址寄存
器寻址 例: 源串操作数用SI,段地址用DS; 目的串操作数用DI,段地址用ES。
12
3.2.8、端口寻址* * ——CPU寻址外设设备
• 直接端口寻址:外设端口地址(端口号)为8位立即数
例: IN AX , 28H ; IN AL ,35H
• 间接端口寻址 :外设端口地址(端口号)为16位立即
数时,先将它放在DX寄存器中。
{ { 例: MOV DX, 278H
MOV DX, 280H
OUT DX , AL
OUT DX , AX
• IN和OUT指令是累加器专用传送指令,进行字节
操作时采用AL,进行字操作时采用AX。
13
3.2.9、隐含寻址* * ——— 指令中没有操作数,但隐含着
7
3.2.3、寄存器寻址* * —— 操作数在指定的寄存器中
MOV AX , BX
MOV AL , BH
• 操作数可以在任一个通用寄存器中。
• 字节寄存器只有 AH AL BH BL CH CL DH DL
• 源与目的的字长一致。
MOV AH , BX
8
3.2.4、寄存器间接寻址* * —— 操作数在存储器中,
第三章 80X86指令系统
熟练掌握 8086的九种寻址方式的含义以及 实现过程。
熟练掌握8086常用指令的功能。 了解80X86的寻址方式和指令集的特点。
1
整体 概述
一 请在这里输入您的主要叙述内容

请在这里输入您的主要 叙述内容
三 请在这里输入您的主要叙述内容
3-1 8086指令格式和操作数类型
• 立即数只能用于源操作数字段 MOV 5, AL
• 传送大于寄存器位数的数值时将引起错误。
MOV AH , 3064H
✓ MOV BX , 64H
3.2.2、直接寻址* * — 操作数在存储器中(默认操作数在数据
段中)
偏移地址由指令直接给出
• 隐含使用数据段寄存器
物理地址 PA = 16d (DS) + EA
EA
直接寻址方式可以用数值地址或符号地址来表示。
MOV BX,DS:[1000H]
操作码 MOD/RM
00H 10H
DS
BX
1234H
34H 12H
6
位移量
1000H
EA
用.符用号符地号址地表址示表的示直接寻址方式来存取操作数。操作数知果存 放在数据段中,则指令中不必给出数据段寄存器名(即隐含使用
• 例:MOV AX, 2[SI] MOV BL ,2[SI]
假设 (DS) = 3000H, (SI) = 2000H , (32002H)=12H, (32003H)=34H
那么 PA = 32002H 则 (AX)= 3412H ,(BL)=12H
3.2.6、基址变址寻址* * — 操作数在存储器中,偏移地址
对 固定对象的操作,也称固定寻址。
例: AAA(加法的ASCII调整指令) ;隐含对AL操作
14
寻址方式
立即寻址
寻址方式小结 操作数地址(PA)
操作数由指令给出
直接寻址
操作数的有效地址由指令直接给出
寄存器寻址 操作数在寄存器中
寄存器 间接寻址
变址寻址
PA=(DS)×16+(BX)或(SI)或(DI) PA=(SS) ×16+(BP)
PA=(DS)×16+(BX)或(SI)或(DI)+位移量 PA=(SS) ×16+(BP)+位移量
指令格式举例
MOV DX, 100H MOV AX , [100H] MOV AX, VAR MOV AX, BX MOV AX, [BX]
相关文档
最新文档