3.8086汇编语言-1

上传人:第*** 文档编号:54451034 上传时间:2018-09-13 格式:PPT 页数:17 大小:320KB
返回 下载 相关 举报
3.8086汇编语言-1_第1页
第1页 / 共17页
3.8086汇编语言-1_第2页
第2页 / 共17页
3.8086汇编语言-1_第3页
第3页 / 共17页
3.8086汇编语言-1_第4页
第4页 / 共17页
3.8086汇编语言-1_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《3.8086汇编语言-1》由会员分享,可在线阅读,更多相关《3.8086汇编语言-1(17页珍藏版)》请在金锄头文库上搜索。

1、第三讲 8086汇编语言,教学目的 理解机器语言、汇编语言、高级语言的含义极其各自特点; 掌握8086汇编指令的7 种寻址方式,进一步了解8086系统MPU各寄存器的功能及其存储器的使用; 掌握汇编指令集中一些常用指令(数据传送、加减、逻辑操作类指令); 掌握汇编语言中的符号和伪指令; 掌握汇编语言完整的框架结构; 学会INT 21系统功能调用和常用Bios功能调用。,汇编语言 是一种面向机器的符号语言,使用指令助记符、地址标号等编写程序,需编译、链接转换成机器代码(.exe文件或.com文件), 才能执行。 运行速度快,可移植性差,功能不强、难于普及,但非常利于计算机底层硬件的操作,代码效率

2、也很高。,常用计算机语言 机器语言 用二进制码“0”和“1”表示,能被计算机直接识别和执行。 编写、调试程序都很繁琐,编写的程序可移植性差,但执行速度很快。,为何需要计算机语言?实现人机对话的需要,3.1 计算机语言,如要实现“将AX 中的值送BX”的操作,只需用下列汇编指令: MOV BX,AX,将AX 中的值送BX的机器码:89C3H 若CPU从内存中的代码区读取到89C3H,则执行“将AX 中的值送BX”的操作。,是类似于自然语言和数学描述语言的程序设计语言(如C),运行效率不及汇编语言编写的程序。 可移植性好、易于理解,对底层硬件进行操作时编程复杂。,常用计算机语言 机器语言 汇编语言

3、 高级语言,3.1 计算机语言,高级语言和汇编语言最终都要编译、链接成为机器码,才能被计算机执行。,如同C语言程序的设计、开发具有Turboc2.0、VC6.0等集成开发环境(IDE)一样,可以用MASM、TASM等软件进行PC汇编语言程序的编辑、编译、链接、调试。,一、汇编指令格式 一条完整的汇编指令格式: 标号: 操作助记符 目的操作数 ,源操作数 ;注释 如:,3.2 汇编指令的寻址方式,标号: 指令在内存中存放地址(偏移地址)的符号表示; 操作助记符 指明指令的功能,即执行什么操作,如mov、add 、and等; 目的操作数 指明操作结果的存放位置; ,源操作数 指明被操作对象; ;注

4、释 注释。,一、汇编指令格式 一条完整的汇编指令格式: 标号: 操作助记符 目的操作数 ,源操作数 ;注释,3.2 汇编指令的寻址方式,标号和注释部分并不是必需的;有的指令的操作数隐含在指令中,如: DAA ;BCD数加法调整指令,源:AL;目的:AX PUSH AX ;入栈指令,源:AX;目的:SS:SP POP CX ;出栈指令,源: SS:SP ;目的: CX,汇编指令可以对各种数值、CPU中的寄存器、内存中的程序/数据进行操作,或者说,数值、寄存器、内存单元都可以成为汇编指令的操作对象。汇编指令查找操作对象的方式称为寻址方式。8086汇编共有7种寻址方式。,二、汇编指令寻址方式 1.

5、寄存器寻址 操作对象为寄存器,3.2 汇编指令的寻址方式,例:MOV CX,BX ;若执行前CX=1234H ; BX=5678H ;则执行后CX=BX=5678H 源和目的操作数都是寄存器寻址方式; 寄存器可以是8位或16位的寄存器 例:MOV BL,AH ;BL=AH 因为寄存器在CPU内部,所以采用寄存器寻址可提高运行效率。,二、汇编指令寻址方式 2. 立即数寻址 操作对象是立即数(数值常量),3.2 汇编指令的寻址方式,例:MOV CX,2009H ;CX=2009H 源操作数:2009H,立即数寻址; 目的操作数:CX,寄存器寻址; 立即数可以是8位或16位,负数用补码表示: 例:M

6、OV BL,5 ;BL = 0FBH ADD AH,125 ;AH+7DHAH MOV CX,5 ;CX = 0FFFBH 上述三指令源操作数为立即数寻址,目的操作数为寄存器寻址; 立即寻址方式只用于源操作数,主要用来给寄存器或存储单元赋初值,也可以与Reg或Mem进行算术逻辑运算。,二、汇编指令寻址方式 3. 直接寻址 操作对象为存储单元中的值,并且其逻辑地址用下列两种方式直接 给出: 段寄存器:偏移地址值,3.2 汇编指令的寻址方式,例:MOV CX,SS:2003H ;CX=(SS:2003H)=5413H 源操作数:SS:2003H,直接寻址; 目的操作数:CX,寄存器寻址;,已定义的

7、数值变量名称 例: VARY DB 33H MOV AL, VARY ;AL=(DS:VARY) = 33H 目的:寄存器寻址;源:DS:VARY代表的逻辑地址,二、汇编指令寻址方式 4. 间接寻址(地址间接 给出) 操作对象为存储单元中的值,并且其逻辑地址的偏移地址存储在指令中给出的方括号中的BX、SI、DI、BP之一中; 若以SI, DI, BX 间址,段地址缺省为DS 例:MOV AX,SI ;(DS:SI)AX ;源:间接;目的:寄存器 若以BP间址,段地址缺省为SS 例:MOV BP, AX ;AX (SS:BP) ;源:寄存器;目的:间接,3.2 汇编指令的寻址方式,只有SI,DI

8、,BX,BP 可作为间址寄存器,如 MOV AX,CX 是错误的。 间址寻址主要用于连续存取存储单元中的数据,将DS:0000开始的字节 数据累加: MOV SI ,0000H MOV AL,00H ADC AL,SI INC SI ADC AL,SI INC SI ADC AL,SI INC SI ,二、汇编指令寻址方式 5. 基址寻址(地址间接 给出) 操作对象为存储单元中的值,并且其偏移地址是BX或BP中的内容与指令中给出的8位或16位偏移量之和; 若以BX 基址,段地址缺省为DS 例: MOV 2BX,CL ; CL (DS:BX+2) 或 MOV BX+2, CL ; 源:寄存器;目

9、的:基址 若以BP为基址,段地址缺省为SS 例:MOV BX,6BP ; 源:基址;目的:寄存器 或 MOV BX,BP+6 ;(SS:BP+6)BL ;(SS:BP+7)BH,3.2 汇编指令的寻址方式,只有BX,BP可用来基址寻址,所以BX,BP称为基址寄存器,二、汇编指令寻址方式 6. 变址寻址(地址间接 给出) 操作对象为存储单元中的值,并且其偏移地址是SI或DI中的内容与指令中给出的8位或16位偏移量之和; 以SI、DI变址寻址,段地址缺省为DS 例: MOV AX,2SI 或 MOV AX,SI2 ;(DS:SI2) AL ;(DS:SI1) AH ;源:变址;目的:寄存器,3.2

10、 汇编指令的寻址方式,只有SI,DI可用来变址寻址,所以SI,DI称为变址寄存器,二、汇编指令寻址方式 7.基址变址寻址(地址间接 给出) 操作对象为存储单元中的值,并且其偏移地址是指令中指定的基址寄存器的内容,变址寄存器内容及8位或16位偏移量之和,即前两种方式的组合。 例: MOV AX,4BXDI 或 MOV AX,BX+DI+4 ;(DS:BX+DI+4)AL ;(DS:BX+DI+5)AH ;源:基址变址 以BX为基址,段地址缺省为DS; 以BP为基址,段地址缺省为SS。 MOV BP+DI+4 ,CX ;目的:基址变址,3.2 汇编指令的寻址方式,二、汇编指令寻址方式 课堂练习:,

11、3.2 汇编指令的寻址方式,(1) MOV AX,1000H (2) MOV AX,ES:1000H (3) MOV BX,AL (4) MOV DI,SI (5) ADD AX,BX+4 (6) SUB AX,BX+DI+4 (7) MOV DI+2,AX (8) ADD AX,BP+DI-7,立即数寻址 寄存器寻址 直接寻址 寄存器寻址 寄存器寻址 间接寻址 间接寻址 寄存器寻址 基址寻址 寄存器寻址 基址变指寻址 寄存器寻址 寄存器寻址 变指寻址 基址变指寻址 寄存器寻址,源操作数 目的操作数,(6) 源操作数的段地址缺省为DS(因用BX) (8) 源操作数的段地址缺省为SS(因用BP)

12、,二、汇编指令寻址方式 寻址方式实质对数值、CPU中的寄存器、内存中的程序/数据进行操作 立即数寻址操作对象为立即数(数值常量) 寄存器寻址操作对象为为CPU寄存器 直接寻址操作对象为为为存储单元中的值,且存储单元的地址直接在指令中给出 间接寻址操作对象为为为存储单元中的值,但存储单元的地址借助CPU寄存器间接给出: 间址:地址为指令中的某一个CPU寄存器BX/BP/SI/DI中的值; 基址:地址为一个寄存器BX/BP中的值再加一个偏移量; 变址:地址为一个寄存器SI/DI中的值再加一个偏移量; 基址变址:地址为两个regs中(BX/BP、SI/DI)的值之和再加一个偏移量,3.2 汇编指令的

13、寻址方式,二、汇编指令寻址方式 8.寻址方式中的段地址确定 间接寻址、基址寻址、变址寻址、基址变址寻址指令中段的缺省约定关系:P46,表2-1,3.2 汇编指令的寻址方式,访问存储器 约定 可更 偏移 的方式 段 换段 地址 取指令 CS 无 IP 堆栈操作(PUSH, POP,CALL,RET 等) SS 无 SP 数 通用数据存取 据 (直接寻址, BX, DS CS,SS,ES EA 存 SI,DI,间址) 取 以BP间址,基址 SS CS,DS,ES EA 字符串源地址 DS CS,SS,ES SI 字符串目的地址 ES 无 DI,二、汇编指令寻址方式 8.寻址方式中的段地址确定 跨段

14、或段超越 当要改变以上的段默认状态,到其它段寻找操作数时,必须用跨段前缀指明操作数所在段的段寄存器名。例: MOV CX, SS:0000H ;(SS:0000H) CX MOV AX, DS:BP; (DS:BP) AL, (DS:BP+1) AH MOV AX, CS:BX; (CS:BX) AL, (CS:BX+1) AH,3.2 汇编指令的寻址方式,8086指令系统中共使用115个指令助记符代表91种操作,可分六大类: 数据传送指令 算术运算指令 逻辑运算 (位操作)指令 串操作指令 控制转移指令 处理机控制指令。 学习时注意指令格式及功能 本节先介绍:传送,算术运算,逻辑运算指令,3.3 常用汇编指令,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号