/*------------------------------------------------------------------------
N位压缩BCD加法(C51大端算法代码---乱战Bug测试版)---雁舞白沙出题
此题目的讨论见 http://bbs.21ic.com/club/bbs/ShowAnnounce.asp?id=2464366
菜地公告:引用本文必须注明出处!!!
HotPower@126.com 2007.3.14 16:22于西安大雁塔菜地
------------------------------------------------------------------------*/
#include <REGX52.h>
#include "hotins.h"//选自HotPower的《Keil C51红杏出墙记》
/*----------------------------------------------------------------------------
CodeTest1:选择测试多种BCD加法
CodeTest2:选择测试16位BCD加法一种
CodeTest3:16位BCD加法bug测试
-----------------------------------------------------------------------------*/
#define CodeTest 3//3-bug测试
/*----------------------------------------------------------------------------
CodeMode=1:红杏出墙-代码长度130字节 DataAdd()绝对空间53个字节
改天用纯汇编看看有多大的差距
有空和邓苗同志挑战一下纯汇编的~~~
CodeMode=2:利用C51的标志-代码长度154字节 DataAdd()空间比CodeMode1多24个字节
CodeMode=3:正规战-代码长度180字节 DataAdd()空间比CodeMode1多50个字节
注意:不应该测试代码总长度,因为hotins.h要干“坏事”~~~所以应该比较绝对空间大小
-----------------------------------------------------------------------------*/
#define CodeMode 1//选择DataAdd()代码编程模式
/*----------------------------------------------------------------------------
在KeilC51中定义idata数据类型,可能会使代码简洁,因为Keil用了间接寻址.
当然这不利于代码的移植,不过在KeilC51的特定环境下还是很必要的~~~
注意:所长打PP~~~
-----------------------------------------------------------------------------*/
点击下载: BCDTEST.RAR(内含hotins.h头文件)
3种算法测试图:
文章评论(0条评论)
登录后参与讨论