文档详情

单片机学习第四章.ppt

发布:2023-09-17约3.28千字共17页下载文档
文本预览下载声明
单片机学习第四章 第一页,共十七页,2022年,8月28日 汇编语言程序设计中的数 计算机只能识别二进制数——机器指令,它原本是不认识常用的十六进制数和十进制数的。 机器指令/目标代码: 由0/1代码组成的操作码与操作数。 十六进制数:便于读写记忆的二进制数的简写形式。 (0~9,A~F 后缀:H/h) BCD码:用二进制数表达的十进制数。 (0~9表示为:0000~1001B 后缀:B/b,H/h) 二进制数 :由0/1组成、“逢2进1”的数制。 如 (0~1 后缀:B/b) * 第二页,共十七页,2022年,8月28日 汇编语言编程基本规则 汇编语言:用助记符描述的指令的集合。 √指令中以 A—F 开头的十六进制数前必须添一个 “0”。 √二进制数必须带后缀“B”或“b”;十六进制数必须带后缀“H”或“h”;十进制数的后缀是“D”或“d”或无. [标号:]操作码 [目的操作数][,源操作数][;注释] 汇编程序:汇编语言编写的程序借助编译工具 编译成为目标代码,计算机才能识别。这个编译工具称为汇编程序。 * 第三页,共十七页,2022年,8月28日 汇编程序的伪指令 汇编程序 → 软件→ 工具→工具软件: 将程序员用汇编语言编写的程序翻译成机器码 (真)指令:告诉计算机如何操作以及做何种操作 用汇编语言编写的程序在此被称为应用程序 伪指令:告诉汇编程序在翻译应用程序时有何具体约定。伪指令不进行具体的操作,那是真指令的事。 比如:从何处开始,何处结束,某些编程者自己规定的表述代表什么意思…… ? ? ? ? * 第四页,共十七页,2022年,8月28日 汇编程序的常用伪指令 ORG addr16——ASM51程序中一定要写! 规定编译后的机器代码存放的起始位置。 END ——ASM51程序中一定要写! 表示翻译到此结束,其后的任何内容不予理睬。 符号名称 EQU 表达式 将表达式的值赋予符号名称。程序中凡出现该符号名称就等同于该表达式。 $ ——“当前PC值”也叫位置计数器 代表正在执行的指令所在位置。 * 第五页,共十七页,2022年,8月28日 符号名称 BIT 位地址 将位地址的值赋予符号名称。程序中凡出现该符号名称就代表该位地址。 DW 双字节数据[或双字节数据组] 将双字节数据[或双字节数据组]顺序存放在此后的存储单元中。占据相应存储空间。 DB 8位数据[或8位数据组] 将8位数据[或8位数据组]顺序存放在此后的存储单元中。占相应数量的存储空间。 * 第六页,共十七页,2022年,8月28日 程序的顺序/分支/循环三种基本结构 ORG 2000H BCD2B:MOV A, R2 ;取入口数据 ANL A, #0F0H ;取出十位 SWAP A ;高4位 低4位 MOV B, #0AH MUL AB ;十位乘10 MOV R3,A ;积暂存进R3 MOV A, R2;再取入口数据 ANL A, #0FH ;取出个位 ADD A, R3 MOV R2,A ;结果 R2 RET ;若不是子程序可用END 例: 将R2中BCD码数转为二进制数存进R2 (此子程序在下一例中还要用到) * 第七页,共十七页,2022年,8月28日 编程要点: 两字节 BCD码数范围为: 0000H—9999H 相应2进制/16进制数为: 0000H—270FH 调用 BCD2B子程序实现“千位,百位”转为二进制, 并乘100; 再调 BCD2B子程序实现“十位,个位”转为二进制; 最后,对位相加。 例:将R5R4中的双字节BCD码数转为 二进制数存于R5R4中。 ? ? ? ? * 第八页,共十七页,2022年,8月28日 例: 将R5R4中的两字节BCD码数转为二进制数存于R5R4中 X 100 千 百 十 个 二进制 + Cy + (R5) (R4) (R5) (R4) (R6) (A) (R5) (A) 二进制 二进制 二进制 二进制 二进制 调 BCD2B 调 BCD2B * 第九页,共十七页,2022年,8月28
显示全部
相似文档