内容正文:
第四章 汇编语言程序设计方法
4.4 查表程序设计
《单片机技术与应用》 高教版 第二版 魏寿明
CONTENTS
目录
01
学习目标
02
新课引入
03
新课教学
04
师生互动
05
课堂练习
06
课堂小结
学习目标
CATALOGUE
一
掌握汇编语言查表程序的基本原理和设计方法。
了解查表程序在汇编语言中的实现方式和优化技巧。
熟悉查表程序在解决实际问题中的应用场景和优势。
知识目标
新课引入
CATALOGUE
二
03
汇编语言实现查表的优势
使用汇编语言实现查表程序可以充分利用底层硬件特性,实现高性能的数据查找和访问。
01
汇编语言的重要性
汇编语言是计算机科学中的基础语言,对于理解计算机底层原理、性能优化以及系统级编程具有重要意义。
02
查表程序的需求
在实际应用中,经常需要快速查找和访问特定数据,查表程序是一种高效且常用的方法。
查表程序设计背景
查表程序设计目的
通过实际编写和调试汇编语言查表程序,学生可以培养自己的实践能力和创新思维,为未来的学习和工作打下坚实基础。
培养学生的实践能力和创新思维
通过学习汇编语言查表程序设计,学生可以深入理解计算机底层的数据存储和访问方式,以及如何利用这些特性进行高效编程。
理解汇编语言查表程序设计的基本原理
学生将学习如何使用汇编语言实现基本的查表程序,包括数据表的创建、查找算法的实现以及程序的优化等。
掌握汇编语言查表程序设计的基本方法
新课教学
CATALOGUE
三
所谓查表程序,是用 DB、DW伪指令建表,把表格中的数据与位置对应成y 与 x 的关系, 由 x 来表达y 在程序存储器中的地址,然后用MOVC 指令实现查表,即根据变量x 在表格中查 找出对应的函数值y, 使y=f(x)。
查表程序设计
MCS-51 系列单片机指令系统中,有两条查表指令,见表
查表程序设计
指令 功能
MOVC A,@A+PC 程序存储器单元送累加器(相对程序存储器)
MOVC A,@A+DPTR 程序存储器单元内容送累加器(相对数据指针)
在表中第 一 条指令中,PC 为当前程序计数器指针, A 为无符号的偏移量,相加后所 得的数作为某一程序存储器的地址,然后把该地址单元的内容送到累加器A 中。因此表格必 须设置在查表指令之后,且长度不超过256字节。
查表程序设计
指令 功能
MOVC A,@A+PC 程序存储器单元送累加器(相对程序存储器)
MOVC A,@A+DPTR 程序存储器单元内容送累加器(相对数据指针)
在表中第二条指令中,累加器A 中的内容作为一个无符号数与 DPTR 中的内容相加 所得结果为某一程序存储器(建立的表)的地址,然后把该地址单元的内容送到累加器A 中。 DPTR 可设置为任何单元处,因此表格可在64KB 范围之内的任何地方。
查表程序设计
指令 功能
MOVC A,@A+PC 程序存储器单元送累加器(相对程序存储器)
MOVC A,@A+DPTR 程序存储器单元内容送累加器(相对数据指针)
明确需要查找的数据表及其结构,例如数组、结构体等。
确定查表需求
设计查表算法
编写汇编代码
测试与调试
根据数据表结构,设计相应的查找算法,如线性查找、二分查找等。
使用汇编语言实现查表算法,注意考虑内存访问和寄存器使用等细节。
对编写的汇编代码进行测试,确保查表程序能够正确运行并输出结果。
编程实现简单查表程序
性能分析
使用性能分析工具对查表程序进行分析,找出性能瓶颈。
优化算法
针对性能瓶颈,优化查找算法,例如采用更高效的查找算法或改进现有算法。
优化代码
对汇编代码进行优化,例如减少内存访问次数、使用更快的指令等。
测试与对比
对优化后的查表程序进行测试,并与优化前进行对比,评估优化效果。
分析并优化查表程序性能
设计创新算法
针对复杂查表需求,设计创新的查找算法,例如基于哈希表的查找、树形结构查找等。
测试与验证
对实现的复杂查表程序进行测试和验证,确保程序能够正确运行并满足实际需求。
实现复杂查表程序
使用汇编语言实现设计的创新算法,注意考虑内存管理、错误处理等方面的问题。
确定复杂查表需求
分析实际需求,确定需要实现的复杂查表功能,例如多维数组查找、结构体数组查找等。
创新设计复杂查表程序
查表程序设计
例 根据累加器A 中的数(0~9)查出相应的平方值,并将结果存入累加器A 中。
查表程序设计
例 编写程序求 RO 所存数(0~9)的平方值。程序如下:
查表程序设计
例 一个十六进制数存放在内部 RAM的 HEX 单元的低4位中,将其转换成 ASCⅡ 码并送回 HEX 单元。
十六进制数0~9的ASCI 码为30H~39H,A~F 的 ASCⅡ 码为41H~46H,ASCI 码表格
的首地