微机原理与接口技术汇编语言程序教案

上传人:tia****nde 文档编号:36870304 上传时间:2018-04-03 格式:DOC 页数:6 大小:59.50KB
返回 下载 相关 举报
微机原理与接口技术汇编语言程序教案_第1页
第1页 / 共6页
微机原理与接口技术汇编语言程序教案_第2页
第2页 / 共6页
微机原理与接口技术汇编语言程序教案_第3页
第3页 / 共6页
微机原理与接口技术汇编语言程序教案_第4页
第4页 / 共6页
微机原理与接口技术汇编语言程序教案_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《微机原理与接口技术汇编语言程序教案》由会员分享,可在线阅读,更多相关《微机原理与接口技术汇编语言程序教案(6页珍藏版)》请在金锄头文库上搜索。

1、课课程教案程教案讲讲稿用稿用纸纸 第 15 次课教学课型:理论课实验课习题课实践课技能课其它 主要教学内容(注明:*重点#难点): 讲授过程: 1.汇编语言程序基本格式 2.汇编语言基本语法 3.伪指令* 重点 汇编语言程序基本格式和伪指令的概念 # 难点 伪指令的应用和理解教学目的要求:了解: 汇编语言程序基本格式和汇编语言的基本语法; 掌握: 伪指令的应用教学方法和教学手段:讲课思路: 从汇编语言程序基本格式开始介绍,接着讲解汇编语言基本语法,最后介绍了常用的伪指令 讲授方法:口头讲授结合例子,并采用电子投影的形式。 讲授过程: 1. 汇编语言程序基本格式 2. 汇编语言基本语法 3. 伪

2、指令讨论、思考题: 1.执行性指令和伪指令的区别是什么?参考书目:讲授内容讲授内容教教 学学 设设 计计 备备 注注 第 4 章 汇编语言程序设计 4.1 汇编语言程序基本格式汇编语言程序基本格式 4.1.1 汇编语言格式汇编语言格式 机器语言是计算机能直接识别和执行的语言,用一串“0” 、 “1”数字代码表示。 汇编语言是一种符号语言,它用某种容易记忆的英文缩写去表示机器指令操作码(指令助 记符) ,用人们熟悉的数码及数学符号等表示操作数、地址。 4.1.2 汇编语言源程序和汇编程序汇编语言源程序和汇编程序 用汇编语言编写的程序称为汇编语言源程序,或简称为源程序。对程序员来讲,符号语言 简单

3、直观、便于记忆,比二进制数表示的机器语言方便了许多。但计算机只“认识”机器语言 而不认识这些文字、数字、符号,为此人们创造了一种程序,叫汇编程序。如同英汉之间对话 需要“翻译”一样,汇编程序的作用相当于一个“翻译员” ,自动地把汇编语言源程序翻译成 机器语言。该过程称为汇编,完成汇编任务的程序称为汇编程序,相应形成的机器语言程序称 为目标程序。汇编后形成的目标程序虽然是二进制代码,但还不能直接上机运行,必须经过连 接程序(LINK)连接,将库文件或其它目标文件连接到一起形成可执行文件后,才能送入计 算机执行。汇编语言程序从建立到汇编、连接形成可执行程序的整个过程如图所示。4.1.3 汇编语言的

4、特点汇编语言的特点 1. 执行速度快 2. 程序短小 3. 可以直接控制硬件 4. 可以方便地编译 5. 辅助计算机工作者掌握计算机体系结构 4.1.4 一般汇编语言程序的结构形式一般汇编语言程序的结构形式4.2 汇编语言基本语法汇编语言基本语法 4.2.1 常量、变量与标号常量、变量与标号 1. 常量 数值常量 汇编语言中的数值常量可以是二进制、八进制、十进制或十六进制数,书写时用加后缀的 方式标明即可,对于十进制数可以省掉后缀。对于十六进制数,当以 AF 开头时,前面加数 字 0,以避免和名字混淆。 字符串常量 包含在单引号中的若干个字符形成字符串常量,字符串在计算机中存储的是相应字符的

5、ASCLL 码。如A的值是 41H, AB的值是 4142H 等。 符号常量 常量用符号名来代替就是符号常量。 用 COUNT EQU 3 或 COUNT=3 定义后 COUNT 就是一个符号常量,与数值常量 3 等价。 2. 变量 变量在数据段、附加数据段或堆栈段中定义,后面不跟冒号。它也可以用 LABEL 或 EQU 伪操作来定义。变量经常在操作数字段出现。它也有段、偏移及类型三种属性。 段属性:定义变量的段起始地址,此值必须在一个段寄存器中。 偏移属性:变量的偏移地址是从段的起始地址到定义变量的位置之间的字节数。对于 16 位段,是 16 位无符号数;对于 32 位段,则是 32 位无符

6、号数。在当前段内给出变量的偏移值 等于当前地址计数器的值,当前地址计数器的值可以用$来表示。 类型属性:变量的类型属性定义该变量所保留的字节数。如 BYTE(DB,1 个字节长)、 WORD(DW,2 个字节长)、DWORD(DD,4 个字节长)、FWORD(DF,6 个字节长)、 QWORD(DQ,8 个字节长)、TBYTE(DT,10 个字节长),这一点在数据定义伪操作中已作了说 明。 在同一个程序中,同样的标号或变量的定义只允许出现一次,否则汇编程序会指示出错。 3. 标号 标号在代码段中定义,后面跟着冒号:,它也可以用 LABEL 或 EQU 伪操作来定义。此 外,它还可以作为过程名定

7、义。标号经常在转移指令或 CALL 指令的操作数字段出现,用以表 示转向地址。标号有 3 种属性:段、偏移及类型。 段属性:定义标号的段起始地址,此值必须在一个段寄存器中,而标号的段则总是在 CS 寄存器中。 偏移属性:标号的偏移地址是从段起始地址到定义标号的位置之间的字节数。对于 16 位 段是 16 位无符号数;对于 32 位段则是 32 位无符号数。 类型属性:用来指出该标号是在本段内引用还是在其他段中引用的。如是在段内引用的, 则称为 NEAR。对于 16 位段,指针长度为 2 字节;对于 32 位段,指针长度为 4 字节。如在段 外引用,则称为 FAR。对于 16 位段,指针长度为

8、4 字节(段地址 2 字节,偏移地址 2 字节); 对于 32 位段,指针长度为 6 字节(段地址 2 字节,偏移地址 4 字节)。 4.2.2 运算符与表达式运算符与表达式 1. 算术运算符 算术运算符有:(加) 、(减) 、*(乘) 、/(除) 、MOD(取余除) 。 MOV AL,4*85 ;数值表达式 MOV SI,OFFSETBUF12 ;地址表达式 2. 逻辑运算符 逻辑运算符有:AND(与) 、OR(或) 、XOR(异或) 、NOT(非) 。 逻辑运算符只能用于数值表达式中,不能用于地址表达式中。逻辑运算符和逻辑运算指令 是有区别的。逻辑运算符的功能在汇编阶段完成,逻辑运算指令的

9、功能在程序执行阶段完成。 在汇编阶段,指令 AND AL,78H AND 0FH 等价于指令 AND AL,08H。 3. 关系运算符 关系运算符有:EQ(相等) 、LT(小于) 、LE(小于等于) 、GT(大于) 、GE(大于等于) NE(不等于) 。 关系运算符要有两个运算对象。两个运算对象要么都是数值、要么都是同一个段内的地址。 运算结果为真时,表示为 0FFFFH,运算结果为假时,表示为 0000H。指令 MOV BX,32 EQ 45 等价于 MOV BX,0指令 MOV BX,56 GT 30 等价于 MOV BX,0FFFFH 4. 取值运算符 变量和标号具有段属性、偏移属性和类

10、型属性等,要从变量和标号中析出它们的段地址、 偏移地址,变量的类型、元素的个数和占用内存的大小等,就要使用取值运算符(又称分析运 算符) 。这些运算符是 SEG、OFFSET、TYPE、LENGTH、SIZE。 例如:SCORE DW 30 DUP(0)定义了一个变量,TYPE SCORE 为 2,LENGTH SCORE 是 30,而 SIZE SCORE 是 60。 5. 合成运算符 也称为修改属性运算符,它能修改变量或标号的原有的类型属性并赋予新的类型。这类运 算符是 PTR 和 THIS。 PTR 的格式: 类型 PTR 表达式 其中类型可以是 BYTE、WORD、DWORD、NEAR

11、、FAR,表达式是被修改的变量或标 号。 例如 NUM 被语句 NUM DB 1,3,5,7 定义为字节类型,若要将 NUM 开始两个字节的数据装入 AX,指令 THIS 的格式: 新符号名 EQU THIS 类型 原符号名 类型 参数, THIS 的功能与 PTR 相同,只是格式不同。THIS 语句中建立一个新的符号名并指定它有 THIS 后的类型,而新符号名指向下一语句的原符号名的内存地址。例如前面用 PTR 修改 NUM 类型可用下面的 THIS 语句代替。 DNUM EQU THIS WORD NUM DB 1,3,5,7 其中 DNUM 是字型并指向 NUM 所指的内存单元,DNUM

12、 的存取以字为单位,而 NUM 仍是字节类型。 4.3 伪指令伪指令 1. 符号定义伪指令 等值伪指令 EQU 格式:EQU 例如:CONSTANTEQU256 ;将数 256 赋以符号名BEQUBP+8 ;变址引用赋以符号名 B 等号伪指令 = 例如:EMP=6 或 EMP EQU 6 定义符号名伪指令 LABEL: LABEL 伪指令可以定义变量或标号。格式: LABEL 解除定义伪指令 PURGE:解除指定符号的定义。格式:PURGE解除符号定义后,可用 EQU 重新定义。例如:Y1EQU7;定义 Y1 的值为 7PURGE Y1;解除 Y1 的定义Y1EQU36;重新定义 Y1 的值为

13、 36 2. 数据定义伪指令 格式: 变量 助记符 操作数,操作数 ;注释 助记符字段说明所用伪指令的助记符,也即伪指令,说明所定义的数据类型。常用的有以 下几种: DB 伪指令用来定义字节,其后的每个操作数都占有一个字节(8 位)。 DW 伪指令用来定义字,其后的每个操作数占有一个字(16 位,其低位字节在第一个字 节地址中,高位字节在第二个字节地址中) 。 DD 伪指令用来定义双字,其后的每个操作数占有两个字(32 位) 。 DF 伪指令用来定义 6 个字节的字,其后的每个操作数占有 48 位,可用来存放远地址。 这一伪指令只能用于 386 及其后继机型中。DQ 伪指令用来定义 4 字,其

14、后的每个操作数占有 4 个字(64 位) ,可用来存放双精度浮 点数。 DT 伪指令用来定义 10 个字节,其后的每个操作数占有 10 个字节,形成压缩的 BCD 码。3. 段定义伪指令 SEGMENT 和 ENDS段定义伪指令。该指令能对程序分段。其格式为:段名 SEGMENT 定位类型组合类型类别段名 ENDS ASSUME段寄存器指派伪指令。格式为:ASSUME 段寄存器:段名,段寄存器:段名 ORG移动地址指针的伪指令。其格式为:ORG 常量表达式 4. 过程定义伪指令 PROC 和 ENDP 过程名 PROC NEAR/FAR过程名 ENDP 5. 程序标题伪指令 TITLE 格式:

15、TITLE 文本 其中,文本是用户给出的字符串,要求长度不超过 6 个字符。 6. 地址计数器与对准伪指令 地址计数器$ 例如:ARRAYDW 1,2,$+4,3,4,$+4 如汇编时 ARRAY 分配的偏移地址为 0074,则汇编后的存储区将如图 4.2 所示。 ORG 伪指令 ORG 伪指令用来设置当前地址计数器的值,其格式为: ORGCONSTANTEXPRESSION 如常量表达式的值为 N,则 ORG 伪指令可以使下一个字节的地址成 为常量表达式的值 N。 例如:VECTORSSEGMENTORG10VECT1 DW 47A5HVECT2DW 0C596H ORG20VECTORS ENDS 则 VECTL 的偏移地址值为 0AH,而 VECT2 的偏移地址值为 14H。7. 基数控制伪指令 二进制数 由一串 0 和 1 组成其后跟以字母 B,如 00101100B。 十进制数由 09 的数字组成的数。一般情况下,后面不必加上标记,在指定其它基数的情况下, 后面可跟字母 D,例如 178D。 十六进制数 由 09 及 AF 组成的数,后面跟字母 H。这个数的第一个字符必须是 09,所以如果 第一个字符是 AF 时,应在其前面加上数字 0,如 0FFFFH。 八进制数 由数字 07 组成的数,后面可跟字母 O 或 Q,如 1777O。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 试题/考题

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