用汇编语言编写的程序求程序

第4章 89C51用汇编语言编写的程序程序嘚设计与调试,本章主要介绍程序设计的基本知识及如何使用用汇编语言编写的程序来进行基本的程序设计 4.1 用汇编语言编写的程序程序设計概述 程序是若干指令的有序集合,单片机的运行就是执行这一指令序列的过程编写这一指令序列的过程称为程序设计。 4.1.1 机器语言、用彙编语言编写的程序和高级语言 用于程序设计的语言基本上分为3种:机器语言、用汇编语言编写的程序和高级语言,1.机器语言 二进制代码表示的指令、数字和符号简称为机器语言不易懂,难记忆易出错。 2.用汇编语言编写的程序 英文助记符表示的指令称为符号语言或用汇編语言编写的程序 将用汇编语言编写的程序程序转换成为二进制代码表示的机器语言程序称为汇编程序。 经汇编程序“汇编(翻译)”嘚到的机器语言程序称为目标程序原来的用汇编语言编写的程序程序称为源程序。,用汇编语言编写的程序特点: 面向机器的语言程序設计员须对89C51的硬件有相当深入的了解。 助记符指令和机器指令一一对应用用汇编语言编写的程序编写的程序效率高,占用存储空间小運行速度快,用用汇编语言编写的程序能编写出最优化的程序 能直接管理和控制硬件设备(功能部件),它能处理中断也能直接访问存储器及I/O接口电路。 用汇编语言编写的程序和机器语言都脱离不开具体机器的硬件均是面向“机器”的语言,缺乏通用性,3.高级语言 鈈受具体机器的限制,使用了许多数学公式和数学计算上的习惯用语,非常擅长于科学计算常用的如BASIC、FORTRAN以及C语言等。 高级语言优点:通用性强直观、易懂、易学,可读性好 计算机不能直接识别和执行高级语言,需将其 “翻译”成机器语言才能识别和执行进行“翻译”嘚专用程序称为编译程序。 使用C语言(C51)、PL/M语言来进行MCS-51的应用程序设计,对于程序的空间和时间要求很高的场合,用汇编语言编写的程序仍是必不可缺的 C语言和用汇编语言编写的程序混合编程。 在很多需要直接控制硬件的应用场合则更是非用用汇编语言编写的程序不可。 使用用汇编语言编写的程序编程是单片机程序设计的基本功之一,4.1.2 用汇编语言编写的程序语句的种类和格式 两种基本类型:指令语句和偽指令语句 (1)指令语句 已在第3章介绍 每一条指令语句在汇编时都产生一个指令代码——机器代码 (2)伪指令语句 是为汇编服务的,在汇編时没有机器代码与之对应,MCS-51的用汇编语言编写的程序的四分段格式如下: 标号字段 操作码字段 操作数字段 注释字段 规则: (1)标号字段囷操作字码段之间要有冒号“:”相隔; (2)操作码字段和操作数字段间的分界符是空格; (3)双操作数之间用逗号相隔; (4)操作数字段和注释字段之间的分界符用分号“;”相隔, 操作码字段为必选项其余各段为任选项。,例4-1 下面是一段用汇编语言编写的程序程序的四汾段书写格式 标号字段 操作码字段 操作数字段 注释字段 START:MOV A#00H ;0→A MOV R1,#10 ;10→R1 MOV R2#B ;3→R2 LOOP:ADD A,R2 ;(A)+(R2)→A DJNZ R1LOOP;R1内容减1不为零,则循环 NOP HERE: SJMP HERE,基本语法规則: 1.标号字段:是语句所在地址的标志符号 (1)标号后边必须跟以冒号“:” (2)由1-8个ASCII字符组成 (3)同一标号在一个程序中只能定义┅次 (4)不能使用用汇编语言编写的程序已经定义的符号作为标号 2.操作码字段:是用汇编语言编写的程序指令中唯一不能空缺的部分。 彙编程序就是根据这一字段来生成机器代码的,3.操作数字段 通常有单操作数、双操作数和无操作数三种情况。如果是双操作数则操作數之间,要以逗号隔开 (1)十六进制、二进制和十进制形式的操作数表示采用十六进制形式来表示 ,某些特殊场合才采用二进制或十进淛的表示形式 十六进制,后缀“H” 二进制,后缀“B” 十进制,后缀“D”也可省略。 若十六进制的操作数以字符A-F中的某个开头时則需在它前面加一个 “0”,以便在汇编时把它和字符A~F区别开来,(2)工作寄存器和特殊功能寄存器的表示 采用工作寄存器和特殊功能寄存器的代号来表示,也可用其地址来表示 例如,累加器可用A(或Acc)表示也可用0E0H来表示,0E0H为累加器A的地址 (3)美元符号$的使用 用于表示該转移指令操作码所在的地址。 例如 JNB F0, $ 等价于 HERE:JNB F0HERE 再如: HERE:SJMP HERE 可写为: SJMP $,4.注释字段 必须以分号“;”开头,换行书写但必须注意也要以汾号“;”开头。 汇编时注释字段不会产生机器代码。,4.1.3 伪指令 在MCS-51 用汇编语言编写的程序源程序中应有向汇编程序发出的指示信息告诉咜如何完成汇编工作,这是通过使用伪指令来实现的 也称为汇编程序控制命令。只有在汇编前的源程序中才有伪指令经过汇编得到目標程序(机器代码)后,伪指令已无存在的必要所以“伪”体现在汇编时,伪指令没有相应的机器代码产生,常用的伪指令: 1.ORG(ORiGin)汇编起始地址命令 在用汇编语言编写的程序源程序的开始,通常都用一条ORG伪指令来实现规定程序的起始地址如不用ORG规定,则汇编得到的目标程序将从0000H开始 例如: ORG 用汇编语言编写的程序源程序的结束标志,用于终止源程序的汇编工作在整个源程序中只能有一条END命令,且位于程序的最后 3.DB(Define Byte)定义字节命令 在程序存储器的连续单元中定义字节数据。,ORG 2000H DB 30H40H,24“C”,“B” 汇编后: (2000H)=30H (2001H)=40H (2002H)=18H(10进制数24) (2003H)=43H(芓符“C”的ASCII码) (2004H)=42H(字符“B”的ASCII码) DB功能是从指定单元开始定义(存储)若干个字节 10进制数自然转换成16进制数,字母按ASCII码存储,4.DW(Define Word)定义数据字命令 从指定的地址开始,在程序存储器的连续单元中定义16位的数据字 例如:ORG 2000H DW 1246H,7BH10

}

我要回帖

更多关于 用汇编语言编写的程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信