单片机原理及接口技术 第4章(1).ppt_第1页
单片机原理及接口技术 第4章(1).ppt_第2页
单片机原理及接口技术 第4章(1).ppt_第3页
单片机原理及接口技术 第4章(1).ppt_第4页
单片机原理及接口技术 第4章(1).ppt_第5页
已阅读5页,还剩16页未读, 继续免费阅读

下载本文档

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

文档简介

1、单片机原理及接口技术,4 汇编语言程序设计,4.1.1 机器语言、汇编语言与高级语言,(1)机器语言 在计算机中所有的数符都是用二进制代码来表示的,指令也是用二进制代码来表示。 这种用二进制代码表示的指令系统称为机器语言系统,简称为机器语言。 直接用机器语言编写的程序称为手编程序或机器语言程序。,4.1 汇编语言程序设计基础,(2)汇编语言 助记符是根据机器指令不同的功能和操作对象来描述指令的符号,用助记符表示指令系统的语言称为汇编语言或符号语言。 汇编语言和机器语言样,都脱离不开具体的机器,因此,这两种语言均为“面向机器”的语言。 用汇编语言编写的程序称为汇编语言源程序。 由于计算机只能识别

2、和执行机器语言,因此必须将汇编语言源程序“翻译”成能够在计算机上执行的机器语言(称为目标代码程序),这个翻译过程称为汇编(assemble)。 完成汇编过程的系统程序称为汇编程序(assembler)。,汇编语言语句可分为两大类:指令性语句和指示性语句。 指令性语句是由指令组成的、由CPU执行的语句。 指示性语句不是由CPU执行,而是用来告诉汇编程序如何对程序进行汇编的指令。由于它不能生成目标代码,故又被称为伪指令语句或伪指令。,(3)高级语言 高级语言(例如:BASIC、FORTRAN、COBOL、PASCAL等)都是些参照数学语言而设计的、近似于人们日常用语的语言。 这种语言不仅直观、易学

3、、易懂,而且通用性强,易于移植到不同类型的计算机中去。 但是,汇编语言是计算机能提供给用户的最快而又最有效的语言,也是能利用计算机所有硬件特性并能直接控制硬件的唯一语言。 因而,在对于程序的空间和时间要求很高的场合,汇编语言是必不可缺的。很多需要直接控制硬件的应用场合,则更是非用汇编语言不可。,4.1.2 汇编语言的格式,汇编语言指令格式如下: 标号: 操作码 目的操作数,源操作数 ;注释 AGAIN: MOV A , #28H ; 赋值,(1)标号 标号用在指令的前边,必须跟“:”,表示符号地址。 标号通常是以字母开头的8个或8个以下的字母数字序列,标号不能是系统中的保留字符和汇编符,如“M

4、OV”、“ACC”、“SUBB”等,标号不能重复定义。,(2)操作码 操作码是指令的助记符,表示指令的性质,指示CPU执行何种操作。 (3)操作数 操作数包括源操作数和目的操作数,可以是参与运算的数或数的地址。 (4)注释 注释是对语句的说明,只是为了阅读和理解方便,汇编程序对注释部分不予理会。,4.1.3 伪指令,伪指令是不要求计算机做任何操作,也没有对应的机器码,不产生目标程序,不影响程序的执行,仅仅能够帮助进行汇编的一些指令。 伪指令只提供汇编控制信息,如指定程序或数据存放的起始位置,标号地址的具体取值,给出一些连续存放数据的地址,为源程序预留存储空间以及指示汇编语言源程序何时结束等。,

5、(1)定位伪指令ORG 格式:标号: ORG n(通常用十六进制数表示) 该伪指令的功能是规定其后面的目标程序或数据块的起始地址。 ORG n规定其后的程序或数据块从地址n开始存放。 n可以是十进制常数,也可以是十六进制常数。 ORG 1000H START: MOV R0,0AFH 在一个程序中,可以多次使用ORG伪指令,以规定不同的程序段或数据段的起始地址,地址一般应从小到大,不能重复。,(2)结束汇编伪指令END 格式:标号: END END是汇编语言源程序的结束标志,表示汇编结束。 一个源程序只能有一个END命令,否则就有一部分指令不能被汇编。 如果END前面加标号的话,则应与被结束程

6、序段的起始点的标号一致,以表示结束的是哪一个程序段。,(3)定义字节伪指令DB 格式:标号: DB X1,X2,Xn 该伪指令的功能是将X1,X2,Xn存入从标号开始的连续单元中。其中Xi为8位二进制数据(2位十六进制数据)或ASCII码,表示ASCII码时应使用 。 当Xi为数值常数时,取值范围为00HFFH;为字符串常数时,其长度不应超过80个字符。例如: ORG 1000H DB 10H,20H,30H ORG 1100H TABA: DB 11H,12H,13H DB A,BCD,1,以上伪指令经汇编后 (1000H)10H (1001H)20H (1002H)30H (1100H)1

7、1H (1101H)12H (1102H)13H (1103H)41H;41H是字母A的ASCII码 (1104H)42H;B42H (1105H)43H;C43H (1106H)44H;D44H (1107H)31H;131H,(5)预留存储单元伪指令DS 格式:标号: DS 表达式 该伪指令的功能是从标号地址开始,保留若干个字节单元的存储空间备用。保留的字节单元数由表达式的值决定。 ORG 1000H DS 10H DB 30H,40H,50H 该伪指令定义10H个存储单元(1000H100FH)备用,然后从1010H开始,按照下一条DB指令赋值 (1010H)30H (1011H)40H

8、 (1012H)50H,(6)赋值伪指令EQU 格式:标号 EQU 表达式 该伪指令的功能是将伪指令EQU后面的表达式的值赋给前面的标号。例如: K1 EQU 10H ;K1与10H等值 MOV R1,K1 ;(R1)(10H) 使用该伪指令应注意以下几点: 指令中的标号不是转移指令中出现的标号,而是出现在操作数中的标号。 指令中的名称必须先定义后使用,因此它总是出现在程序的开头。 使用赋值伪指令给程序的编制、调试和修改带来方便。,(7)数据地址赋值伪指令DATA 格式:标号 DATA 表达式 该伪指令的功能是将数据地址或代码地址赋予规定的标号。 DATA伪指令的功能与EQU有些类似,可以将一

9、个表达式的值赋给一个标号,但它与EQU伪指令有如下区别: 表达式可以是数据或地址,但不可以是汇编符号(如R0等) DATA定义的标号可以先使用后定义,故该指令可以放在程序的开头或末尾。 例如: MOV R1,K1 ;(R1)(10H) K1 DATA 10H,(8)位地址定义伪指令BIT 格式:标号 BIT 位地址 该伪指令的功能是将位地址赋予BIT前面的标号,经赋值后可用该标号代替BIT后面的位地址。例如: F12 BIT P1.2 经过以上伪指令定义后,在程序中就可以把F12作为位地址来使用。,4.1.4 汇编语言程序设计的步骤,汇编语言设计可以分为以下几个步骤: (1)明确设计任务 (2

10、)确定算法找出合理的计算方法及适当的数据结构,从而确定解题步骤。 (3)根据算法画出程序流程图,(4)根据流程图编写源程序 采用汇编语言编写程序应注意以下几点: 应该合理分配存储空间和工作单元。 将多次使用的程序段写成子程序。 尽可能用标号或变量来代替绝对地址或常数。 (5)上机调试程序 (6)程序优化,测验题 1.已知(PSW)=90H,执行下列程序后,分析寄存器A和PSW的值。 MOV A, # 9CH ADDC A, # 8BH (A)= ; (PSW)= 。 2.已知(A)=81H,(R0)=17H,(17H)=35H,指出执行完下列程序段后A的内容。 ANL A , # 17H ORL 17H, A XRL A , R0 CPL A (A)= 。,3.已知:(A)=7AH,(R0)=30H,(30H)=0A5H,(PSW)=80H,执行下列指令(10分) (1)SUBB A, 30H (A)= (CY)= (AC)= (OV)= (P)= 。 (2)XCHD

温馨提示

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

评论

0/150

提交评论