易码技术论坛

 找回密码
 加入易码
搜索
查看: 8338|回复: 34

[其他] TC800 nor补丁,可以执行汇编代码!

[复制链接]
发表于 2008-1-2 21:10:42 | 显示全部楼层 |阅读模式
功能:打了补丁后可以在LavaX里执行凌阳16位单片机指令!
具体升级方法:首先确保内核是1.6的(可以在v+w+on/off里选NOR TEST看nor版本),然后按照说明.doc做。
说明:03.bin主要是修改checksum值,08.bin才是主要的。
如何让TC800的LavaX里执行汇编程序?编译工具是LeeSoft的LavaX3.5IDE,要执行汇编函数是调用
int Exec(int &codeBuf[], int size, int flag);
codeBuf是机器码保存的地方,size是代码长度,flag表示是否压缩代码,0表示压缩,非0表示不压缩,这是LavaX的结构的原因,第一次执行Exec的时候一定要flag = 0;压缩代码会破坏codeBuf的内容,这时才是真正的执行代码。
举个例子:
  1. int codeBuf[]={0xf04a, 0x2a33, 0x9a90};//注意是int型数组
  2. /*
  3. * codeBuf里的汇编代码:
  4. * CALL a:2a33        //响铃 就是Beep();
  5. * POP PC, SR from [SP]//这一条一定要,不然无法返回LavaX中
  6. */
  7. void main()
  8. {
  9.         Exec(codeBuf, sizeof(codeBuf), 0);
  10. }
复制代码
补充一点,Exec可以返回值,只要在codeBuf里加入一段代码就可以了,注意与上面例子的区别:
  1. int codeBuf[]={0x9241, 0x9442, 0xd3c3, 0xd5c4, 0x9a90};
  2. /*
  3. * codeBuf里的汇编代码:
  4. * R1 = 0x1
  5. * R2 = 0x2
  6. * [3] = R1
  7. * [4] = R2//0x3,0x4是返回地址,只要往0x3,0x4赋值就可以返回这个值,就是0x20001(4个字节)
  8. * POP PC, SR from [SP]        //这一条一定要,不然无法返回LavaX中
  9. */
  10. void main()
  11. {
  12.         long num;

  13.         num = Exec(codeBuf, sizeof(codeBuf), 0);
  14.         printf("%d\n", num);//打印131073(就是0x20001)
  15.         getchar();
  16. }
复制代码
至于汇编代码可以配合unSP IDE 2.0.0。

[ 本帖最后由 yan 于 2008-2-4 12:38 编辑 ]

补丁.part1.rar

450 KB, 下载次数: 597

补丁.part2.rar

133.17 KB, 下载次数: 554

评分

参与人数 1小红花 +10 收起 理由
dojo + 10 伟大的改进,好厉害呀

查看全部评分

 楼主| 发表于 2008-1-2 21:16:11 | 显示全部楼层
附件是上面两个例子的程序。

test.rar

246 Bytes, 下载次数: 457

发表于 2008-1-2 21:18:10 | 显示全部楼层
沙发..
发表于 2008-1-2 22:19:21 | 显示全部楼层
板凳。哈哈
发表于 2008-1-2 22:26:47 | 显示全部楼层
支持下
发表于 2008-1-2 23:45:15 | 显示全部楼层
哈哈,支持
发表于 2008-1-3 12:00:14 | 显示全部楼层

高~!

YAN还真他妈的历害~!
发表于 2008-1-3 12:43:17 | 显示全部楼层
不是很懂
但有这个东西,大概能用TC800万超级玛丽了吧?
发表于 2008-1-3 12:44:57 | 显示全部楼层
泼点冷水
不行。tc800运行不了6502指令
发表于 2008-1-3 14:52:46 | 显示全部楼层
看起来TC800又变强了!!!
发表于 2008-1-3 15:40:20 | 显示全部楼层
可惜TC800坏了
发表于 2008-1-3 17:23:59 | 显示全部楼层
那超级马里就可以玩了吗??还有BAS程序??可惜,我的TC800坏了。
发表于 2008-1-3 20:09:46 | 显示全部楼层
原帖由 zhangyinggv 于 2008-1-3 17:23 发表
那超级马里就可以玩了吗??还有BAS程序??可惜,我的TC800坏了。

都不能····
发表于 2008-1-4 14:00:22 | 显示全部楼层
呵呵,TC800又多个用处
发表于 2008-1-5 12:41:17 | 显示全部楼层
好久没来又有新进展啦,,强!
发表于 2008-1-5 18:06:59 | 显示全部楼层
TC800有好东西了!!!
YAN太强了!!!
可惜我的TC800已经丢了快一年了……
支持YAN!!!
 楼主| 发表于 2008-1-6 14:08:32 | 显示全部楼层
下的人好少啊。。。
发表于 2008-1-6 14:17:38 | 显示全部楼层
是啊,用tc800的人也少啊,我的虽然坏了但是我还是一直支持的。
发表于 2008-1-6 18:02:10 | 显示全部楼层
这个是一定要支持的!!!
虽然有了小P、DS、UP后,偶原来4个WQX尸体都懒得修了,而受伤最轻的TC800也被偶“借”给了同学,但是无论如何,光业的劳动还是令我不得不仰视……
 楼主| 发表于 2008-1-8 12:03:03 | 显示全部楼层
别把我捧高了 兴趣而已。
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-3-29 08:34 , Processed in 0.015192 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表