- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
80x86的指令系统和寻址方式
1.教学目的:掌握微机寻址方式和8086微处理器指令系统及Debug的使用
2.教学要求:
①掌握8种寻址方式
②熟悉指令系统的六大类指令,要求结合上机实践熟练掌握常用指令。
③结合指令举例逐步熟悉和掌握汇编语言程序的格式,以及典型程序段。
④会熟练使用Debug调试程序
3.教学重点:
①寻址方式
②8086微处理器指令系统
4.掌握难点:
①寄存器的应用
②存储器的结构
5.教学进程安排:P35~106
6.教学方法:
课堂讲授
7.教学内容摘要:
3.1 指令系统概述
机器指令:用二进制代码表示的指令
汇编指令:用助记符表示的指令
一般格式:操作码 操作数[,操作数]
如:inc si
add ax,bx
操作数的类型:
立即数:存放在指令中的操作数。
寄存器操作数:存放在寄存器中的操作数。
存储器操作数:存放在内存中的操作数。
3.2 8088/8086 CPU的寻址方式
寻找和获得操作数或操作数存放地址或指令转移地址的方法称为寻址方式。8088/8086 CPU的寻址分为两类,即数据寻址和指令寻址。
3.2.1 数据寻址方式
1、立即寻址方式
源操作数:为立即数(常数),源操作数长度与目的操作数长度一致(立即数可是8位或16位,386及后继机型可是8位或32位)
例: MOV AL,0FFH
MOV AX,1234H
2、寄存器寻址
源操作数:在寄存器中,因操作数在寄存器中,不需访问存储器,因而速度较快。
例: MOV AX,BX
MOV AL,BL
EA=基址+(变址×比例因子)+位移量
3、直接寻址方式
源操作数:是地址或符号地址。
EA=位移量。
例:假设TABLE是在数据段定义的一个字节数组的首地址标号(变量名),其偏移地址为1000H,则指令
MOV AL,TABLE
或 MOV AL,[TABLE]
或 MOV AL,[1000H]
4、寄存器间接寻址方式
EA=基址寄存器内容(或变址寄存器内容)
例:MOV AX,[BX]
MOV AX,[SI]
例:MOV AX,[BX]
如果(DS)=3000H,(BX)=1010H,(31010H)=12H,(31011H)=24H。则操作数的20位物理地址=30000H+1010H=31010H,操作的示意图如图3.1所示。
31010H存储器
31010H
存储器
AX
30000H
12H
24H
数据段
图3.1 寄存器间接寻址操作图
例:MOV AX,ES:[BX]
5、寄存器相对寻址
EA=基址寄存器(或变址寄存器)的内容+位移量。
例:TABLE是在数据段定义的一个字节数组的首地址标号(也称变量名),则:
MOV SI,5
MOV AL,TABLE[SI] ;可以写为:MOV AL,[TABLE+SI]
ABC EQU 5
LEA SI,TABLE ;LEA是取偏址指令,本句是TABLE偏址→SI
MOV AL,ABC[SI] ;可以写为:MOV AL,[ABC+SI]
如:[BX+6]、[BP-100H]、[SI+OFFSET TABLE]都是寄存器相对寻址方式。
例:TABLE是数据段中定义的一个变量,假设它在数据段中的偏移地址为0100H,有指令:
MOV AX,TABLE[SI]
6、基址变址寻址
EA=基址寄存器内容+变址寄存器内容。
例: MOV AX,[BX][SI]
或写为: MOV AX,[BX+SI]
例:MOV AX,[BX] [SI](或写为MOV AX,[BX+SI])
若(DS)=2000H,(BX)=0500H,(SI)=0010H
则偏移地址=0500H+0010H=0510H
20位物理地址=20000H+0510H
=20510H
如(20510H)=12H,(20511H)=34H,
操作的示意图如图3.2所示:
20510H
20510H
存储器
AX
20000H
12H
34H
数据段
代码段
图3.2 基址变址寻址操作示意图
7、相对基址变址寻址
EA=基址寄存器内容+变址寄存器内容+位移量
例: MOV AL,TABLE[BX][SI]
例:TABLE是数据段中定义的一个符号地址,假设它在数据段中的偏移地址是1000H。
MOV AX,TABLE[BX][DI]
若(DS)=2000H,(BX)=0100H,(DI)=0020H
则偏移地址=1000H+0100H+0020H=1120H
20位物理地址=20000
文档评论(0)