微机原理与接口技术汇编语言程序教案.doc_第1页
微机原理与接口技术汇编语言程序教案.doc_第2页
微机原理与接口技术汇编语言程序教案.doc_第3页
微机原理与接口技术汇编语言程序教案.doc_第4页
微机原理与接口技术汇编语言程序教案.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程教案讲稿用纸第15次课教学课型:理论课实验课习题课实践课技能课其它主要教学内容(注明:*重点#难点):讲授过程:1.汇编语言程序基本格式2.汇编语言基本语法3.伪指令* 重点汇编语言程序基本格式和伪指令的概念# 难点伪指令的应用和理解教学目的要求:了解: 汇编语言程序基本格式和汇编语言的基本语法;掌握: 伪指令的应用教学方法和教学手段:讲课思路:从汇编语言程序基本格式开始介绍,接着讲解汇编语言基本语法,最后介绍了常用的伪指令讲授方法:口头讲授结合例子,并采用电子投影的形式。讲授过程:1. 汇编语言程序基本格式2. 汇编语言基本语法3. 伪指令讨论、思考题:1. 执行性指令和伪指令的区别是什么?参考书目:讲授内容教学设计备注第4章 汇编语言程序设计4.1 汇编语言程序基本格式4.1.1 汇编语言格式机器语言是计算机能直接识别和执行的语言,用一串“0”、“1”数字代码表示。汇编语言是一种符号语言,它用某种容易记忆的英文缩写去表示机器指令操作码(指令助记符),用人们熟悉的数码及数学符号等表示操作数、地址。4.1.2汇编语言源程序和汇编程序用汇编语言编写的程序称为汇编语言源程序,或简称为源程序。对程序员来讲,符号语言简单直观、便于记忆,比二进制数表示的机器语言方便了许多。但计算机只“认识”机器语言而不认识这些文字、数字、符号,为此人们创造了一种程序,叫汇编程序。如同英汉之间对话需要“翻译”一样,汇编程序的作用相当于一个“翻译员”,自动地把汇编语言源程序翻译成机器语言。该过程称为汇编,完成汇编任务的程序称为汇编程序,相应形成的机器语言程序称为目标程序。汇编后形成的目标程序虽然是二进制代码,但还不能直接上机运行,必须经过连接程序(LINK)连接,将库文件或其它目标文件连接到一起形成可执行文件后,才能送入计算机执行。汇编语言程序从建立到汇编、连接形成可执行程序的整个过程如图所示。4.1.3汇编语言的特点1. 执行速度快2. 程序短小3. 可以直接控制硬件4. 可以方便地编译5. 辅助计算机工作者掌握计算机体系结构4.1.4一般汇编语言程序的结构形式4.2汇编语言基本语法4.2.1常量、变量与标号1. 常量 数值常量汇编语言中的数值常量可以是二进制、八进制、十进制或十六进制数,书写时用加后缀的方式标明即可,对于十进制数可以省掉后缀。对于十六进制数,当以AF开头时,前面加数字0,以避免和名字混淆。 字符串常量包含在单引号中的若干个字符形成字符串常量,字符串在计算机中存储的是相应字符的ASCLL码。如A的值是41H,AB的值是4142H等。 符号常量常量用符号名来代替就是符号常量。用COUNT EQU 3或COUNT=3定义后COUNT就是一个符号常量,与数值常量3等价。2. 变量变量在数据段、附加数据段或堆栈段中定义,后面不跟冒号。它也可以用LABEL或EQU伪操作来定义。变量经常在操作数字段出现。它也有段、偏移及类型三种属性。段属性:定义变量的段起始地址,此值必须在一个段寄存器中。偏移属性:变量的偏移地址是从段的起始地址到定义变量的位置之间的字节数。对于16位段,是16位无符号数;对于32位段,则是32位无符号数。在当前段内给出变量的偏移值等于当前地址计数器的值,当前地址计数器的值可以用$来表示。类型属性:变量的类型属性定义该变量所保留的字节数。如BYTE(DB,1个字节长)、WORD(DW,2个字节长)、DWORD(DD,4个字节长)、FWORD(DF,6个字节长)、QWORD(DQ,8个字节长)、TBYTE(DT,10个字节长),这一点在数据定义伪操作中已作了说明。在同一个程序中,同样的标号或变量的定义只允许出现一次,否则汇编程序会指示出错。3. 标号标号在代码段中定义,后面跟着冒号:,它也可以用LABEL或EQU伪操作来定义。此外,它还可以作为过程名定义。标号经常在转移指令或CALL指令的操作数字段出现,用以表示转向地址。标号有3种属性:段、偏移及类型。段属性:定义标号的段起始地址,此值必须在一个段寄存器中,而标号的段则总是在CS寄存器中。偏移属性:标号的偏移地址是从段起始地址到定义标号的位置之间的字节数。对于16位段是16位无符号数;对于32位段则是32位无符号数。类型属性:用来指出该标号是在本段内引用还是在其他段中引用的。如是在段内引用的,则称为NEAR。对于16位段,指针长度为2字节;对于32位段,指针长度为4字节。如在段外引用,则称为FAR。对于16位段,指针长度为4字节(段地址2字节,偏移地址2字节);对于32位段,指针长度为6字节(段地址2字节,偏移地址4字节)。4.2.2运算符与表达式1. 算术运算符算术运算符有:(加)、(减)、*(乘)、/(除)、MOD(取余除)。MOV AL,4*85 ;数值表达式MOV SI,OFFSETBUF12 ;地址表达式2. 逻辑运算符逻辑运算符有:AND(与)、OR(或)、XOR(异或)、NOT(非)。逻辑运算符只能用于数值表达式中,不能用于地址表达式中。逻辑运算符和逻辑运算指令是有区别的。逻辑运算符的功能在汇编阶段完成,逻辑运算指令的功能在程序执行阶段完成。在汇编阶段,指令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. 取值运算符变量和标号具有段属性、偏移属性和类型属性等,要从变量和标号中析出它们的段地址、偏移地址,变量的类型、元素的个数和占用内存的大小等,就要使用取值运算符(又称分析运算符)。这些运算符是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、FAR,表达式是被修改的变量或标号。例如NUM被语句NUM DB 1,3,5,7 定义为字节类型,若要将NUM开始两个字节的数据装入AX,指令 THIS的格式: 新符号名 EQU THIS 类型原符号名 类型 参数,THIS的功能与PTR相同,只是格式不同。THIS语句中建立一个新的符号名并指定它有THIS后的类型,而新符号名指向下一语句的原符号名的内存地址。例如前面用PTR修改NUM类型可用下面的THIS语句代替。DNUM EQU THIS WORDNUM DB 1,3,5,7其中DNUM是字型并指向NUM所指的内存单元,DNUM的存取以字为单位,而NUM仍是字节类型。4.3伪指令1. 符号定义伪指令 等值伪指令EQU格式:EQU例如: CONSTANTEQU256 ;将数256赋以符号名 BEQUBP+8 ;变址引用赋以符号名B 等号伪指令 = 例如: EMP=6 或 EMP EQU 6 定义符号名伪指令LABEL: LABEL伪指令可以定义变量或标号。 格式: LABEL 解除定义伪指令PURGE:解除指定符号的定义。 格式:PURGE 解除符号定义后,可用EQU重新定义。 例如: Y1EQU7;定义Y1的值为7 PURGEY1;解除Y1的定义 Y1EQU36;重新定义Y1的值为362. 数据定义伪指令格式:变量 助记符 操作数,操作数 ;注释助记符字段说明所用伪指令的助记符,也即伪指令,说明所定义的数据类型。常用的有以下几种:DB伪指令用来定义字节,其后的每个操作数都占有一个字节(8位)。DW伪指令用来定义字,其后的每个操作数占有一个字(16位,其低位字节在第一个字节地址中,高位字节在第二个字节地址中)。DD伪指令用来定义双字,其后的每个操作数占有两个字(32位)。DF伪指令用来定义6个字节的字,其后的每个操作数占有48位,可用来存放远地址。这一伪指令只能用于386及其后继机型中。DQ伪指令用来定义4字,其后的每个操作数占有4个字(64位),可用来存放双精度浮点数。DT伪指令用来定义10个字节,其后的每个操作数占有10个字节,形成压缩的BCD码。3. 段定义伪指令 SEGMENT和ENDS 段定义伪指令。该指令能对程序分段。其格式为: 段名 SEGMENT 定位类型组合类型类别 段名 ENDS ASSUME 段寄存器指派伪指令。格式为: ASSUME 段寄存器:段名,段寄存器:段名 ORG 移动地址指针的伪指令。其格式为: ORG 常量表达式4. 过程定义伪指令PROC和ENDP 过程名 PROC NEAR/FAR 过程名 ENDP 5. 程序标题伪指令TITLE格式:TITLE 文本其中,文本是用户给出的字符串,要求长度不超过6个字符。6. 地址计数器与对准伪指令 地址计数器$例如:ARRAYDW 1,2,$+4,3,4,$+4如汇编时ARRAY分配的偏移地址为0074,则汇编后的存储区将如图4.2所示。 ORG伪指令ORG伪指令用来设置当前地址计数器的值,其格式为:ORGCONSTANTEXPRESSION如常量表达式的值为N,则ORG伪指令可以使下一个字节的地址成为常量表达式的值N。例如:VECTORSSEGMENT ORG10 VECT1DW 47A5H VECT2DW 0C596H ORG20 VECTORS ENDS则VECTL的偏移地址值为0AH,而VECT2的偏移地址值为14H。7. 基数控制伪指令 二进制数由一串0和1组成其后跟以字母B,如00101100B。 十进制数由09的数字组成的数。一般情况下,后面不必加上标记,在指定其它基数的情况下,后面可跟字母D,例如178D。 十六进制数由09及AF组成的数,后面

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论