凌阳应用程序设计

凌阳应用程序设计

ID:41005236

大小:94.00 KB

页数:14页

时间:2019-08-13

凌阳应用程序设计_第1页
凌阳应用程序设计_第2页
凌阳应用程序设计_第3页
凌阳应用程序设计_第4页
凌阳应用程序设计_第5页
资源描述:

《凌阳应用程序设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、4应用程序设计文章来源:凌阳科技大学计划作者:凌阳科技大学计划发布时间:2005-6-714:03:351查表程序   查表,就是在以为关系建立的表格中,根据变量,查找值。由于SPCE061A具有寄存器间接寻址和变址寻址方式,所以查表的基本方法有如下两种:方法一:寄存器间接寻址方式Rn=表首地址Rn+=偏移地址Rd=[Rn]//取得表中的数据方法二:变址寻址方式BP=表首地址Rn=[BP+偏移地址]//取得表中的数据   方法二要比前一种方法来得更简洁些,但是方法二中的偏移地址只能是6位的立即数。就是说,方法二查表范围限制在64word以内。这一点在使用时,需要提醒读者注

2、意。   由于SPCE061A有32kwordFlash的程序存储区,所以仅有零页的程序存储区(每页的存储区为64kword),不涉及到程序区寻址的段选的内容。方法一和方法二,仅仅适用于表放在零页的程序存储区的情形1.1一维数组查表程序程序4-16查8位十六进制数平方表//=========================================================================//函数:F_Square()//语法:voidF_Square(void)//描述:查0~0xFF的平方表。//参数:R1=待查的数,低8位有效。(仅仅查0

3、~0xFF的平方值)//返回:R1=查表后的平方值结果//=========================================================================F_Square:.PROCR1&=0x00FF;//屏蔽高8位,仅使低8位有效R1+=Square_Table;//计算元素地址R1=[R1];//取得数据RETF;.ENDP.CODESquare_Table://0~255平方表.DW0,1,4,9,16//0~4平方表.DW25,36,49,64,81//5~10平方表....DW62500,63001,63504

4、,64009,64516//250~255平方表1.2二维数组查表程序程序4-17二维数组查表//=========================================================================//函数:F_Get_Array()//语法:voidF_Get_Array(void)//描述:实现查表//参数:R1=元素下标I(矩阵行号),R2=元素下标j(矩阵列号)//返回:R1=查找到的元素,R2=查找成功标志(1为查找成功,2为行号溢出,3为列号溢出)//================================

5、=========================================F_Get_Array:.procR3=[Array_Table];//取矩阵行数CMPR3,R1;//比较行是否出界JBE?row;//如果出界,则跳到行溢出处理R4=[Array_Table+1];//取矩阵列数CMPR4,R2//比较列是否出界JBE?colum;//如果出界,则跳到列溢出处理MR=R1*R4;R2=R2+R3;//计算元素地址的偏移量R2+=Array_Table+2;//计算元素地址的绝对地址R1=[R2];//取元素值R2=1;//成功标示RETF;?row:R2

6、=2;//行溢出标志RETF;?colum:R2=3;//列溢出标志RETF;.ENDP.CODEArray_Table:.DW3,5//定义矩阵行数为3,列数为5.DW1,2,3,4,5//矩阵0行.DW6,7,8,9,10//矩阵1行.DW11,12,13,14,15//矩阵2行.ENDP1.3查表散转程序   在程序4-18介绍了一种散转程序的方法,这里我们通过查表的方法来实现散转。这两种方法尽管从形式上是不同的,但他们的实现机理是相同的:通过改变PC寄存器的值来实现的。   这里,根据某个寄存器的内容为0,1,2,……,分别转向处理程序0,1,2,……。把转向的地

7、址组成一个表,通过查表的方式决定程序的跳转。其流程图见图4.27。程序4-18查表散转程序//=========================================================================//函数:F_Swich()//语法:voidF_Swich(void)//描述:实现查表//参数:R1=要转向的子程序的序号//返回:无//=========================================================================F_

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

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

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