教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

C51单片机汇编语言程序设计

来源:网络收集 时间:2026-07-19
导读: 汇编语言程序设计 一、二进制数与十六进制数之间的转换 1、数的表达方法 为了方便编程时书写,规定在数字后面加一个字母来区别,二进制数后加B十六进制数后加H。 2、二进制数与十六进制数对应表 二进制 十六进二进制 制 0000 0001 0010 0011 0100 0101 0110

汇编语言程序设计

一、二进制数与十六进制数之间的转换 1、数的表达方法

为了方便编程时书写,规定在数字后面加一个字母来区别,二进制数后加B十六进制数后加H。 2、二进制数与十六进制数对应表 二进制 十六进二进制 制 0000 0001 0010 0011 0100 0101 0110 0111 0 1 2 3 4 5 6 7 1000 1001 1010 1011 1100 1101 1110 1111 十六进制 8 9 A B C D E F 3、二进制数转换为十六进制数

转换方法为:从右向左每4位二进制数转化为1位十六进制数,不足4位部分用0补齐。

例:将(1010000110110001111)2转化为十六进制数 解:把1010000110110001111从右向左每4位分为1组,再

写出对应的十六进制数即可。 0101 0000 1101 1000 1111 5 0 D 8 F

答案:(1010000110110001111)2=(50D8F)16 例:将1001101B转化为十六进制数

解:把10011110B从右向左每4位分为1组,再写出对应的十六进制数即可。 1001 1110 9 E

答案:10011110B=9EH 4、十六进制数转换为二进制数

转换方法为:将每1位十六进制数转换为4位二进制数。 例:将(8A)16转化为二进制数

解:将每位十六进制数写成4位二进制数即可。 8 A 1000 1010

答案:(8A)16=(10001010)2 例:将6BH转化为二进制数

解:将每位十六进制数写成4位二进制数即可。 6 B 0110 1011

答案:6BH=01101011B

二、计算机中常用的基本术语 1、位(bit)

计算机中最小的数据单位。由于计算机采用二进制数,所以1位二进制数称作1bit,例如110110B为6bit。 2、字节(Byte,简写为B)

8位的二进制数称为一个字节,1B=8bit 3、字(Word)和字长

两个字节构成一个字,2B=1Word。

字长是指单片机一次能处理的二进制数的位数。如AT89S51是8位机,就是指它的字长是8位,每次参与运算的二进制数的位数为8位。

8位可以表示256个状态,每位二进制有0和1两种状态,8位就是2的8次方个状态。这256个状态可以表示0~255这256个无符号整数,也可以表示-128到+127这256个有符号整数,还可以表示小数等,这些表示方法叫做数据类型。 8位机能表达数的范围是0~255,这意味着参与运算的各个数据不能超过255,并且运算结果和中间结果也不能超过255,否则就会出错。在实际问题中往往有超过255的情况,比如用到1000这个数,这时就需要用两个字节组合起来表示这样的数。16位机能表达数的范围是0~65535。 三、寄储器

51单片机的寄存器分为工作寄存器和特殊功能寄存器两大

类。工作寄存器在内部RAM的00H~1FH地址区,共有32个。特殊功能寄存器在内部RAM的80H~0FFH地址区,51单片机共有21个,52单片机共有26个。

特殊功能寄存器主要有累加器A,寄存器B,程序状态字PSW,P0~P3 I/O口寄存器,定时/计数器及串行通信控制、中断控制等特殊功能寄存器。 1、工作寄存器(R0~R7)

工作寄存器是一个8位寄存器,分为4组(0~3组),每组8个,共有32个,每组的8个寄存器都用R0~R7表示。工作寄存器是以组为单位来使用的,任何时刻只有一组有效。可用PSW寄存器中的RS0、RS1两位来设置当前要使用的工作寄存器组。 2、累加器A

累加器A是一个8位寄存器,它和算术逻辑部件ALU一起完成各种算术逻辑运算,既可以存放运算前的原始数据,又可以存放运算的结果。 3、寄存器B

寄存器B是一个8位寄存器,用于乘除法运算。 4、程序状态字(PSW)寄存器

程序状态字PSW(也称为标志寄存器)是一个重要的8位寄存器,用来保存指令执行结果供程序查询和判别。 四、寻址方式

单片机工作时,在程序指令的控制下,要对数据进行各种操作,所以必须要先找到操作的数据。数据存放在存储器中,只有找到要操作数据的存储地址,才能对该存储地址中的数据进行操作。

寻找要操作数据的存储地址的过程称为寻址。单片机常用寻址的方式有七种:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。 1、立即寻址

立即寻址是在指令的操作码后直接给出要操作的数据(不是数据的存放地址),这个数据称为立即数,为了表明该数值是一个数据而不是地址,要在该数值前加个“#”号。例如: MOV A,#0FFH ;将数据0FFH(11111111B)送到累加器A中。

MOV A,#6BH ;将数据6BH(01101011B)送到累加器A中。 2、直接寻址

直接寻址是在指令的操作码后给出数据的存放地址,指令可以操作该地址存放的数据。例如: MOV A,58H

该指令的含义是:将58H单元中的数据送到累加器A中。如果58H单元中的数据为11010101,执行该指令后,58H单元中的数据会送到累加器A中,累加器A中的数据也为

…… 此处隐藏:391字,全部文档内容请下载后查看。喜欢就下载吧 ……
C51单片机汇编语言程序设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/520244.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)