汇编语言课件(2)

2019-03-16 13:26

汇编语言程序设计

- 5 -

汇编语言程序设计

第三章 80x86的指令系统和寻址方式

教学目的和要求:

? 熟练掌握8086的寻址方式 ? 熟练掌握8086的指令系统 教学重点:

? 8086的指令系统和寻址方式 教学难点:

? 寻址方式的理解,各指令的用法 教学方式:课堂讲授与编程环境演示相结合 教学过程:

指令系统的一般格式:

操作码 操作数,操作数,……,操作数 一地址指令:只有一个操作数

二地址指令:有二个操作数,常见格式为:操作码 目的操作数,原操作数 三地址指令:有三个操作数

3.1 80x86的寻址方式

操作数可存放的位置: ? 立即数 ? 寄存器中 ? 存储器中 一、与数据有关的寻址方式 1、立即寻址方式

操作数直接存放在指令中。

如:MOV AX,10A7H ;源操作数的寻址方式为立即寻址 MOV AL,87H

注:常用来表示常数,只能用于源操作数,不能用于目的操作数。 2、寄存器寻址方式

操作数存放在CPU内部的寄存器中,指令指定寄存器号。 如:MOV AX,BX INC CX

ADD BL,7 ;目的操作数的寻址方式为寄存器寻址方式

注:16位操作数,可用AX,BX,CX,DX,SP,BP,SI,DI 8位操作数,可用AL,AH,BL,BH,CL,CH,DL,DH

(除了上述两种寻址方式外,其他的寻址方式中操作数均保存在存储器中,介绍之前先学习几个定义)

有效地址(EA:Effective Address):即偏移地址

- 6 -

汇编语言程序设计

可由以下四部分组成:

位移量:存放在指令中的一个8位,16位或32位的数或符号地址。 基址:存放在基址寄存器中的内容。(常用于指向数据段中数组或字符串的首地址) 变址:存放在变址寄存器中的内容。(常用于访问数据段中数组的某个元素或字

符串的某个字符)

比例因子:用于386及以后机型,可以是1,2,4,8,常用于访问数组。 8086~80286有效地址的组成部分:

位移量 基址寄存器 变址寄存器 比例因子 8,16位 BX,BP SI,DI 无

有效地址的计算公式:

EA=基址+变址+位移量

386以后:EA=基址+变址×比例因子+位移量

3、直接寻址方式

数据在存储器中,有效地址由指令直接给出。 EA=位移量

注:有效地址就是偏移地址。 如:MOV AX,[1008H]

则:执行完后: (AX)=1234H 注:

1. 可用符号地址代替数值地址。如

MOV AX,VALUE 或者 MOV AX,[VALUE] 2. 有效地址直接给出,段地址默认为数据段。若访问其他段的数据,需加段跨越前缀。 3. 字数据存放在存储器中时,高地址存放在高字节,低地址存放在低字节。

- 7 -

汇编语言程序设计

4、寄存器间接寻址 基址寄存器:BX,BP 变址寄存器:SI,DI

操作数在存储器中,有效地址为基址寄存器或变址寄存器的内容。即:EA=基址/变址

如:MOV AX,[BX] 设(DS)=3000H,(BX)=2000H,(32000H)=12H,(32001H)=34H 则:

EA=(BX)=2000H 物理地址=32000H 执行后:(AX)=3412H

注:当基址寄存器用BP时,默认段为SS,否则为DS。该规则在以后的几种寻址方式中同样适用。

如:MOV AX,[BP] (DS)=3000H,(SS)=2000H,(BP)=2000H 则:物理地址=22000H

5、寄存器相对寻址 EA=基址/变址+位移量 如:

MOV AX,[BP+1000H]

MOV AX,COUNT[BX]或MOV AX,[BX+COUNT] COUNT为位移量。 如果(DS)=3000H,(SS)=2000H,(BP)=2000H,(BX)=3120H,COUNT=0040H 则:(1)物理地址=23000H (2)物理地址=33160h

6、基址变址寻址方式 EA=基址+变址

如:MOV AX,[BX][SI] 或 MOV AX,[BX+SI]

7、相对基址变址寻址方式 EA=基址+变址+位移量

如:MOV AX,COUNT[BX][DI]或MOV AX,[BX+DI+COUNT] (注意:教材43-44,8-10的寻址方式为386以后机型增加的寻址方式,在此不再介绍。)

二、与转移地址有关的寻址方式(略)

3.2 程序占用的空间和执行的时间

- 8 -

汇编语言程序设计

补充:汇编语言的编写及调试运行过程

1、汇编语言源程序的基本格式

注:

1. 程序必须有代码段,而数据段、附加段、堆栈段只有必要时才有。 2. 用ASSUME将我们定义的各段与段寄存器相对应。

3. 在程序开始时,应将除代码段以外的其余各段的段地址赋给相应的段寄存器。 4. 程序结束时要有返回DOS的语句。

2、程序调试过程

1、编辑.ASM汇编语言源程序。(在DOS下可用EDIT编写) EDIT A.ASM

2、用MASM对源程序汇编,产生.OBJ的目标文件。 MASM A.ASM 或 MASM A;

注:如果提示有语法错误,则不产生.OBJ文件,此时我们要返回第1步修改源程序。 3、用LINK对.OBJ文件进行连接,产生.EXE的可执行文件。 LINK A.OBJ 或 LINK A;

4、执行.EXE可执行文件,或者用DEBUG对.EXE文件进行调试。 执行:A

调试:DEBUG A.EXE

3、DEBUG常用指令简介 1、U (反汇编)命令

- 9 -


汇编语言课件(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:浅谈待定系数法在中学数学中的应用

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: