第4章汇编语言程序设计基本方法1
- 格式:ppt
- 大小:1.19 MB
- 文档页数:3
汇编语⾔程序设计第4章汇编语⾔程序设计§4.1 汇编语⾔的模式⼀、汇编语⾔源程序的⼀般模式[Name 模块名][Title 标题][定义宏][定义数据段][定义附加段][定义堆栈段]定义代码段源程序结束中括号括起的部分可以省略,可见在⼀个汇编语⾔源程序中必须要定义代码段,并且必须有源程序结束指令。
⼆、8086汇编语⾔程序的⼀个例⼦Pg90。
§4.2 语句⾏的构成汇编语⾔中的语句⼀般分为两种类型:指令性语句和指⽰性语句。
指令性语句的格式为:[标号:] 助记符 [操作数1[,操作数2]] [;注释]指⽰性语句的格式为:[名称] 助记符 [参数1,参数2,……] [;注释]标号和名称都是编程⼈员根据需要和⼀定的规则任意取的。
也可以认为汇编语⾔的语句⾏是由标记和分隔符(空格)构成。
⼀、标记1.IBM宏汇编的字符集(1)字母(2)数字符(3)特殊字符2.界符⽤于定界⼀个标记的结束或⼀个标记的开始,本⾝具有⼀定的意义。
3.常量出现在汇编语⾔源程序中的固定值称为常量。
(1)数值常量①⼆进制:以字母B结束。
②⼗进制:以字母D或⽆字母结束。
③⼋进制:以字母Q(或O)结束。
④⼗六进制:以字母H结束。
(2)字符常量指⽤单引号或双引号引起的字符或字符串。
4.标识符由程序员⾃⼰建⽴的字符序列(标号或名称)。
⼀个标识符不能超过31个字符,不能以数字开头。
5.保留字汇编语⾔中具有特殊意义的字符序列。
6.注释⼀⾏中分号以后的部分。
⽤于对⼀段或⼀⾏程序进⾏说明,便于阅读和理解。
⼆、符号具有⼀定意义的字符序列。
1.寄存器名2.变量段属性、偏移属性、类型属性3.标号段属性、偏移属性、类型属性4.常数5.其它三、表达式由操作数和运算符组合⽽成的序列。
1.操作数(1)⽴即数(2)寄存器操作数(3)存储器操作数2.运算符(1)算术运算符+、-、*、/、MOD(求余)(2)逻辑运算符AND、OR、NOT、XOR(3)关系运算符EQ、NE、LT、LE、GT、GE结果为“假”时,返回0,结果为“真”时,返回⼆进制全1。
第四章汇编语言程序设计本章的汇编语言程序设计的主要容有:汇编语言程序设计概述、汇编语言程序的结构形式、汇编语言的伪指令。
(一个单片机应用系统和其它计算机系统一样,在完成一项具体工作的时候,它要按照一定的次序,去执行操作,这些操作实际上就是由设计人员,以单片机能够接受的指令编制的程序,那么无论计算机也好,单片机也好,实际上编制程序的过程,就是用计算机来反映设计者的编程思想,那么这一章中,我们将向大家介绍怎样使用单片机指令系统来编制一些应用程序。
在介绍之前,我们还是来学习汇编语言的一些基础知识)4.1 汇编语言程序设计概述1、计算机的汇编语言以助记符表示的指令,每一条指令就是汇编语言的一条语句。
(汇编语言程序设计实际上就是使用汇编指令来编写计算机程序。
汇编语言的语句有严格的格式要求)2、汇编语言的语句格式MCS-51汇编语言的语句格式表示如下:[<标号>]: <操作码> [<操作数>]; [<注释>]标号:指令的符号地址,有了标号,程序中的其它语句才能访问该语句。
①标号是由1~8个ASCII字符组成,但头一个字符必须是字母,其余字符可以是字母、数字或其它特定字符。
②不能使用汇编语言已经定义了的符号作为标号,如指令助记符、伪指令记忆符以及寄存器的符号名称等。
(同一个标号在程序中只能定义一次,不能重复定义;一条语句可以有标号,也可以没有标号,所以是否有标号,取决于程序中是否需要访问该语句。
)操作码:规定语句执行的操作容,操作码是以指令助记符表示的,是汇编指令格式中唯一不能空缺的部分。
操作数:给指令的操作提供数据或地址。
注释:是对语句或程序段的解释说明。
(在单片机中,这四个部分怎么加以区分呢?使用分界符)分界符(分隔符):用于把语句格式中的各部分隔开,以便于编译程序区分不同的指令段。
冒号(:)用于标号之后空格()用于操作码和操作数之间逗号(,)用于操作数之间,分割两个以上的操作数分号(;)用于注释之前。
mcs-51第四章答案汇编语言程序设计第四章汇编语言程序设计1 题若晶振为12MHz,试编制延时2ms和1s子程序。
答:延时2ms:DELY: MOV R7, #10DLY0: MOV R6, #98NOPDLY1: DJNZ R6, DLY1DJNZ R7, DLY0RET延时1s:DELY: MOV R0, #50LP11: MOV R1, #100LP22: MOV R2, #100LP33: DJNZ R2, LP33DJNZ R1, LP22DJNZ R0, LP11RET4 题试求20H和21H单元中16位带符号二进制补码数的绝对值,并送回20H和21H单元,高位在先,低位在后。
答:方法一:先判断符号位,若为0则不作任何处理(因为正数的补码数与原数相同,而0的补码数就是0)。
若符号位为1,则用0减去该数即可。
编程如下:ORG 1000HMOV A, 20HJNB ACC.7, DONECLR CCLR ASUBB A, 21HMOV 21H, ACLR ASUBB A, 20HMOV 20H, ADONE: SJMP $END方法二:可用变反加“1”来完成。
ORG 1000HMOV A, 20HJNB ACC.7, DONECPL AMOV 20H, AMOV A, 21HCPL AMOV 21H, ACLR CMOV A, 21HADD A, #1MOV 21H, AMOV A, 20HADDC A, #0MOV 20H, ADONE: SJMP $END5题试求内部RAM 30~37H单元8个无符号数的算术平均值,结果存入38H单元。
答:方法一:相加后和放在R3:38H中,然后将结果整体右移3位,得数放在38H单元中。
ORG 1000HSTART: MOV R7, #07HMOV R3, #00HMOV A, 30HMOV R0, #31HLOOP: ADD A, @R0JNC NEXTINC R3NEXT: INC R0DJNZ R7, LOOPMOV 38H, AMOV R7, #3LOOP1: CLR CMOV A, R3RRC AMOV R3, AMOV A, 38HRRC AMOV 38H, ADJNZ R7, LOOP1SJMP $END方法二:相加后和放在R3:38H中,然后将R3中的数乘以25,将38H中的数除以23,然后将两个结果相加,放入38H单元中。
第四章教学实施计划3课堂教学实施计划第 8 课教学过程设计:复习 0 分钟;授新课 100 分钟讨论 0 分钟;其它 0 分钟授课类型(请打√):理论课√讨论课□实验课□习题课□其它□教学方式(请打√):讲授√讨论□示教□指导□其它□教学手段(请打√):多媒体√模型□实物□挂图□音像□其它□4.1 汇编语言程序设计概述程序实际上是一系列计算机指令的有序集合。
我们把利用计算机的指令系统来合理地编写出解决某个问题的程序的过程,称为程序设计。
程序设计是单片机应用系统设计的重要组成部分,单片机的全部动作都是在程序的控制下进行的。
随着芯片技术的发展,很多标准的或功能型的硬件电路都集成到了芯片中,所以,软件设计在单片机应用系统开发中占的比重越来越大。
一、汇编语言和高级语言汇编语言:用助记符表示的指令称为汇编语言,用汇编语言编写的程序称为汇编语言源程序汇编语言也是面向机器的,它仍是一种低级语言。
汇编语言离不开具体计算机的硬件,与硬件紧密相关。
高级语言:高级语言不受具体“硬件”的限制,具有通用性强,直观、易懂、易学,可读性好等优点。
多数的51单片机用户使用C语言来进行程序设计。
C语言已经成为人们公认的高级语言中高效、简洁而又贴近51单片机硬件的编程语言。
二、汇编语言的特点•助记符指令和机器指令一一对应,所以用汇编语言编写的程序效率高,占用存储空间小,运行速度快,因此汇编语言能编写出最优化的程序。
•使用汇编语言编程比使用高级语言困难,因为汇编语言是面向计算机的,汇编语言的程序设计人员必须对计算机硬件有相当深入的了解。
•汇编语言能直接访问存储器及接口电路,也能处理中断,因此汇编语言程序能够直接管理和控制硬件设备。
•汇编语言缺乏通用性,程序不易移植,各种计算机都有自己的汇编语言,不同计算机的汇编语言之间不能通用。
三、汇编语言的语句格式•指令语句:每一条指令语句在汇编时都产生一个指令代码(也称机器代码),执行该指令代码对应着机器的一种操作。