已阅读5页,还剩93页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章 汇编语言程序设计,4.1 汇编语言的格式,下面先介绍一个例子来说明80C51汇编语言的格式。,ORG 00H ;定义程序的入口 LJMP MAIN ;跳转至此程序入口 ORG 30H ;本程序开始存放的地址 COUNT EQU 04H ;定义符号COUNT MAIN: MOV DPTR,#BCD1 ;置BCD1的地址指针 MOV R0,#BCD11 ;置BCD11的地址指针 MOV R2,#COUNT ;循环次数送至R2,LOP1: MOV A,#0 ;为变址寻址置A的初值 MOVC A,A+DPTR ;利用变址寻址从程序区取第一个 BCD数的第一个字节至累加器A MOV R0,A ;把数存至RAM区BCD11处 INC DPTR ;修改地址指针 INC R0 DJNZ R2,LOP1 ;未完循环 MOV DPTR,#BCD2 ;为BCD2置地址指针 MOV R0,#BCD11 ;置已在RAM中的第一个BCD数的 地址指针 MOV R1,#SUM ;置存放和的地址指针 MOV R3,#COUNT ;置循环次数,LOP2: MOV A,#0 ;为变址寻址置A的初值 MOVC A,A+DPTR ;用变址寻址取进第二个BCD数的 第一个字节 ADDC A,R0 ;与第一个BCD数的相应字节相加 DA A ;十进制调整 MOV R1,A ;存和 INC DPTR ;修改地址指针 INC R0 INC R1 DJNZ R3,LOP2 ;未完循环 MOV A,#00H ;清零累加器A ADDC A,#00H ;与最后一次加法可能产生的进位 位相加 MOV R1,A ;存进位位,J1: JMP J1 ;模拟暂停指令 ORG 20H ;规定存放预置数据的地址 BCD1 EQU 20H DB 44H,55H,66H,77H;用DB伪指令在程序区中预置数据 BCD2: DB 55H,44H,55H,88H ORG 60H BCD11 EQU 60H DS 4 ;在RAM中预留空间以存放从程序 区中取出的数据 ORG 70H SUM EQU 70H DS 5 ;为和保留空间 END,4.2 语句行的构成,4.2.1 标记 1汇编语言的字符集 (1)字母 包含大写的英文字母:ABCDXYZ;小写的英文字母:abcxyz。,(2)数字 阿拉伯数字:0123456789。,(3)特殊字符,图4-1 汇编字符集中可打印字符,2界符 界符(delimiters)是一些特殊字符,利用它们可以表明某个标记的结束,它们本身也有一定的意义,这一点就与分隔符(空格)不同。例子中的冒号(:)、逗号(,)都是一种界符。,3常量 凡是出现在80C51源程序中的固定值(它在程序运行期间不会变化),就称为常量(constants)。例子中的数0、3、100等都是常量,而且是数字常量。,汇编语言中允许的常量有数字常量和字符串常量两种。 (1)数字(整数)常量 (2)字符串常量,4标识符 一个标识符是由最多为31个字母、数字及规定的特殊字符(? _ $)等组成的,且不能用数字打头(以免与十六进制数相混淆)。,5保留字,6注释,4.2.2 符号 1寄存器(registers) 2变量(variable) 3标号(label) 4数,4.2.3 表达式 1操作数(operands) (1)常量操作数 (2)存储器操作数,2运算符(operators) (1)算术运算符 (2)逻辑运算符 (3)关系运算符,4.2.4 语句 如前所述,一个汇编语言的源程序是由一条条语句(statements)组成的,语句就是完成一个动作的说明。源程序中的语句可分成如下两类。,一类是指令语句,汇编程序把它们翻译成机器代码,这些代码命令80C51执行某些操作,如MOV、ADD、JMP等。,另一类指示性语句(伪指令),汇编程序并不把它们翻译成机器代码,也不可能翻译成机器代码,只是用来指示、引导汇编程序在汇编时做一些操作,如定义符号、分配存储单元、初始化存储器等,所以伪指令本身不占用存储单元,例如:,4.3 指示性语句,在Ax51宏汇编中有以下几种指示性语句(directive statements): 符号定义(symbol definition)语句; 数据定义(data definition)语句; 结束(termination)语句。,4.3.1 符号定义语句 1等值语句EQU NAME EQU 表达式,2定义汇编过程中的变量语句SET SET语句的格式为: 符号名 SET 表达式,3给内部RAM的位单元定义一个符号位地址语句BIT BIT语句的内格式为:,4给直接寻址的内部RAM字节单元定义符号名语句 DATA DATA语句的格式为: 符号名 DATA 表达式,4.3.2 存储空间初始化语句 存储空间初始化语句,其格式与指令性语句基本相似,也由4个字段组成,其格式如下: 标号: 伪指令助记符 参数1,参数2, ;注释,此类伪指令共有4条:DB(Define Byte,定义字节)和DW(Define Word,定义字)仅适用于ROM空间,为ROM区间填充常数或常数表格;DS(Data byte Reserve Space,为数据字节保留空间)和DBIT(Data BIT reserve space,为数据位保留空间),用来从其一RAM地址开始预留一些单元,作为变量空间。,1DB在ROM空间定义一个字节数值串 标号: DB N1,N2, Nx,图4-1 包含2的权的字节的表,2DW在ROM空间定义一个字列表(地址表) DW伪指令的格式与功能与DB类似,只是DW定义的是一个双字节的字序列。每个数据项占2个字节,并且16位二进制数的高8位存放在低地址单元,而低8位存放在高地址单元。DW通常用于在ROM中定义一个16位的跳转地址表。,3DS在RAM中保留指定数量的字节单元 DS语句的格式为: 标号: DS nn,自标号开始在RAM中保留nn个字节单元,用以存放程序运行过程中产生的数据或变量。nn可以是数值常量或在汇编过程中能产生数值的表达式。例如:,4DBIT在RAM中保留指定数量的位单元 DBIT伪指令与DS为指令类似,只是它在RAM中保留指定数量的位单元,以储存在程序运行过程中产生的位变量。用以指定位单元数量的“nn”可以是数值常量或表达式。,4.3.3 起始语句 起始语句ORG(origin),它规定了段内的起始地址。伪指令ORG 的一般格式为: ORG 表达式,4.3.4 结束语句 END,4.4.2 分支程序设计,4.4 汇编语言程序设计及举例,例4-1 两个32位BCD数相加程序。 若有两个32位BCD数DATA1与DATA2,DATA1存放在自50H开始的单元中,DATA2存放在自60H开始的单元中。存放时低字节在低地址处,高字节在地址较高处。相加以后的和自70H单元开始存放,其流程图如图4-2所示。,图4-2 直线运行程序流程图,4.4.2 分支程序设计,图4-3 符号函数的程序流程图,4.4.3 循环程序设计 1用计数器控制循环,图4-4 计数循环程序流程图,程序如下:,2多重循环 延时子程序如下:,图4-5 多重循环程序流程图,4.4.4 字符串处理程序设计 1确定字符串的长度 例4-3 从头搜索字符串的结束标志,统计搜索的字符个数,其流程图如图4-6所示。,图4-6 确定字符串长度的流程图,相应的程序如下:,2加偶校验到ASCII字符 例4-4 若有一个ASCII字符串,它们的起始地址放在单元STRING内,要求从串中取出每一个字符,检查其中包含的“1”的个数,若已为偶数,则它的最高有效位置“0”;否则,最高有数位置“1”后送回,其流程图如图4-7所示。,图4-7 加偶校验位至ASCII字符流程图,相应的程序如下:,4.4.5 码转换程序设计 1十六进制到ASCII的转换 例4-5 若有一个二进制数码串,要把每一个字节中的二进制转换为两位十六进制数的ASCII,高4位的ASCII放在地址高的单元。串中的第一个字节为串的长度(小于128B)。能实现这样转换的流程图如图4-8所示。,图4-8 把
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026主管护师(中级)试题带答案详解
- 甘肃省武威市2026年中考数学真题附同步解析
- 西师大版小学二年级数学上册第1单元《4的乘法口诀》课时教案
- 仓库管理单位电工日常检查安全操作规程
- 虎口拔牙中班健康
- 2026年小学生知识竞赛考试题库及答案
- 血管穿刺并发症
- 后勤管理安全培训
- 高校传染病防冶
- 全国学生营养日活动方案
- 职业教育知识点详解
- 《胆囊疾病》课件
- 锂硫电池行业专利分析报告
- 人教版八年级物理上册 1.1长度和时间的测量(第一章 机械运动 学习、上课课件)
- CJT 472-2015 潜水排污泵 行业标准
- JJF 1101-2019 环境试验设备温度、湿度参数校准规范
- 烟台市职称评审报名手册
- 湖北医药学院护理专升本英语真题
- 丝路视觉 重庆寸滩国际新城展示中心展陈概念设计方案
- 带状疱疹的护理
- 二升三暑期奥数培优(学生教材)
评论
0/150
提交评论