片机汇编语言程序设计

片机汇编语言程序设计

ID:40656365

大小:270.11 KB

页数:48页

时间:2019-08-05

片机汇编语言程序设计_第1页
片机汇编语言程序设计_第2页
片机汇编语言程序设计_第3页
片机汇编语言程序设计_第4页
片机汇编语言程序设计_第5页
资源描述:

《片机汇编语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章单片机汇编语言程序设计4.1汇编语言程序设计的基础知识4.2汇编程序设计方法4.3综合编程举例4.1汇编语言程序设计的基础知识4.1.1汇编语言的语句格式汇编语言具有程序结构简单、执行速度快、程序易优化、编译后占用空间小的特点。汇编语言编程比高级语言困难,必须对计算机硬件有相当深入的了解,才能使用汇编语言编写程序。各种汇编语言的语法规则是基本相同的,且具有相同的语句格式。汇编语句除包括指令外还包括伪指令。MCS-51单片机汇编语言的语句格式表示如下:[标号:]<操作码>[操作数][;注释]4.1.1汇编语言的语句格式(1)标号

2、标号是语句地址的标志符号,标号后边必须跟以冒号。标号由1~8个ASCII字符组成,头一个字符必须是字母,其余字符可以是字母、数字或其它特定字符。不能使用汇编语言已经定义了的符号作为标号。如指令助记符、伪指令助记符以及寄存器名等。“1TAB:”(以数字开头),“START”(无冒号),“TAB+5:”(“+”号不能出现在标号中),“MOV:”(指令助记符)都是错误的标号。4.1.1汇编语言的语句格式(2)操作码操作码用于规定这条语句执行的操作,是一条指令助记符或伪指令助记符。操作码在一条汇编语句中是必不可少的。(3)操作数操作数用于给

3、操作码提供操作的数据或地址。在一条语句中,操作数可能是空白,也可能包括一项、二项或三项,各操作数之间用逗号分隔。MCS-51单片机汇编语句操作数的获得有立即数寻址、寄存器寻址、寄存器间接寻址等6种之同的寻址方式。4.1.1汇编语言的语句格式(4)注释注释是对语句的解释说明,不是必须的,但它可使程序的编制显得更加清楚。注释以“;”开头,长度不限,一行不够时可以换行接着书写,但换行时应还在开头使用“;”号。(5)分隔符汇编语句在上述各部分的开头或末尾使用分隔符把它们分开,以便于区分。冒号“:”用于标号之后;空格“”用于操作码和操作数之间

4、;逗号“,”用于操作数之间;分号“;”用于注释之前。4.1.2伪指令伪指令与指令的概念不同,伪指令并不被译成机器码,只是影响到汇编过程,用来对汇编过程进行某种控制或提供某些汇编信息。1.设置起始地址伪指令ORG格式:[标号:]ORGnnORG100HSTART:MOVA,#30HMOVB,#50H一般来说,在一个汇编语言源程序的开始,都安置一条ORG伪指令来指出该程序在存储器中存放的起始位置。4.1.2伪指令2.定义字节伪指令DB格式:[标号:]DBX1,X2,…,Xn该伪指令把单字节数据X1,X2,…,Xn存入目标程序存储器,通常

5、用于定义一个常数表。ORG1000HTAB:DB00H,01H,02H,03H,04H伪指令定义的数据00H,01H,02H,03H,04H从指定的1000H单元开始依次存放,一个数据占用一个字节存储单元。指令中Xi也可以是由两个单引号括起来的一个字符串,这时Xi定义的字节长度等于字符串的长度,每一个字符为一个ASCII码。4.1.2伪指令3.字定义伪指令DW格式;[标号:]DWY1,Y2,…,Yn该伪指令功能与DB伪指令类似,也是给数据表中的数据分配存储单元。所不同的是DW伪指令定义的数据为字。存储时将高8位数据存入低地址单元,将

6、低8位数据存入高地址单元。ORG2000HWTAB:DW1000H,2000H,3000H伪指令DW定义了数据1000H,2000H,3000H,它们依次从指定的2000H单元开始存放。4.1.2伪指令4.赋值伪指令EQU格式:符号名EQU表达式伪指令表示将表达式的值或特定的某个汇编符号定义一个指定的符号名。由EQU伪指令定义过的符号名可以在本程序段的任意位置上引用。DBUFEQU30H使用上述伪指令后,则符号DBUF就等价于30H。在程序中对DBUF进行赋值,实际上就是对内部RAM的30H赋一个值。4.1.2伪指令5.位定义伪指令

7、bit格式:符号名BIT位地址表达式该伪指令把位地址表达式的值赋给前面的符号名。HIGHbit20H使用上述伪指令后,则HIGH等价于位地址20H,在其后的编程中可以用HIGH代替20H使用。6.汇编结束伪指令END格式:[标号:]ENDEND伪指令指出结束汇编,即使后面还有指令,汇编程序也不作处理。4.1.3汇编语言程序的基本框架ORG0000HAJMPMAIN;跳转到主程序ORG0003HLJMPINT_X0;外部中断0入口ORG000BHLJMPINT_T0;定时器0中断入口ORG0013HLJMPINT_X0

8、;外部中断1入口ORG001BHLJMPINT_T1;定时器1中断入口ORG0023HLJMPINT_S;串口中断入口ORG0100H4.1.3汇编语言程序的基本框架MAIN:;主程序开始MOVSP,#70H;设置堆栈段…;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。