Edengundam 发表于 2005-10-28 03:42:03

楼上厉害...汇编放在rom中,然后动态计算出数据?B社的程序员为什么这样设置数据结构?不劳民伤财嘛....

DOT-X 发表于 2005-10-28 08:47:33

他们写的时候,不是用汇编的
估计是用简单的分支语句写的

ネミッサ 发表于 2005-10-29 14:23:22

那堆数值看了整天都.........
好吧,偶承认
那一堆转跳看得偶头晕眼花,那一堆处理代码偶也完全看不明白口牙

简单点来说明一下吧,要将一个芯片修改成:“空”追加、全地形适应S、EN+400、装甲+4000、移动+4、射程+4、命中+40、CT+40%、残弓单4倍、EN消耗减少40%、追加技能オルゴン·クラウド、追加EN回复L,应该怎样改?

[ 本帖最后由 ネミッサ 于 2005-10-29 14:25 编辑 ]

DOT-X 发表于 2005-10-29 18:15:54

楼上说话不腰疼
跟踪一类效果追加,少说也要一、两个小时
而且不同芯片在不同的地方调用地址不同,工作量又会大大的增加,而且BUG也会不少.

ネミッサ 发表于 2005-10-29 18:58:15

果然跟预期一样麻烦.......

huangxiang 发表于 2005-10-29 22:07:03

那强化芯片部分放的数据是什么?是存放要调用地址的数据么,“不同的地方调用地址不同”是什么概念;
还有,要弄懂这部分的话,是要学汇编还是编译原理呢...

DOT-X 发表于 2005-10-29 22:33:05

原帖由 huangxiang 于 2005-10-29 22:07 发表
那强化芯片部分放的数据是什么?是存放要调用地址的数据么,“不同的地方调用地址不同”是什么概念;
还有,要弄懂这部分的话,是要学汇编还是编译原理呢...

那强化芯片部分放的数据是什么?
并没有具体数据,只是一段代码
如果你装备的是HP+500的芯片,芯片代码2F(好像是...)
在计算HP时,当机体上四个插槽中,有2F芯片时候,会跳转到处理"HP在原有基础上加上500的"一段代码.

例:HP+500
08017348 20FA mov r0,#0xfa      R0=FA
0801734A 0040 lsl r0,r0,#0x01   R0=FA lsh 01 = 1F4(R0为加上的500HP)
0801734C 1812 add r2,r2,r0      R2=R2+R0 (R2为原HP)
0801734E E14A b $080175e6

要说其中的数据的话,就是"FAh"吧,FA进行左移1位运算,得到结果"01F4h",也就是500
准确的讲,那只是赋值命令,并不是以数值方式被读取的.
如果把"lsl r0,r0,#0x01"改成lsl r0,r0,#0x03,那+500的芯片其效果为+2000,因为FA lsh 03 = 7D0 (十进制为2000)

---------------------------------------------------------------------------------------

不同的地方调用地址不同
一些像增加数值的芯片,在查看状态时会被计算,而一些像是增加技能的芯片,则要转到技能的页面,才会被计算
还有每回合EN回复10%这类的芯片,在回合开始计算.

-----------------------------------------------------------------------------------------

要弄懂这部分的话,是要学汇编还是编译原理呢?
都不用学,我没有学过汇编,编译原理也不明白.只要仔细看看前面的帖子.再动手研究下即可.
页: 1 [2]
查看完整版本: [求助]机战J中如何让通过战场配置修改来的人物过关后留下