leesoft 发表于 2007-8-12 23:50:29

$6D67: BEQ $6D6C;
$6D69: LDA #$58
$6D6B: BIT $4FA9;

$6D67条件满足,则执行LDA #$58 ,BIT $4FA9(其中后一句没正作用,但有好的副作用)
$6D67条件不满足,则跳到$6D6C,注意:$6D6C是 机器码a94f,就是lda #$4f
看明白了吗?
根据Z标志,a或取#$58或取#$4f,这是一个小技巧!用最少的指令实现了条件赋值

yan 发表于 2007-8-13 00:00:46

呵呵,这个技巧在xu那本教程里有啊。
很精简的说。

leesoft 发表于 2007-8-13 00:08:31

其实只是雕虫小技的说
n年前就知道了的说(n>10)
当时通读了任天堂的FBASIC的机器代码,其中多次出现类似技巧
现在看来,程序员还是应该多从整体去把握程序,不要让技巧喧宾夺主

yan 发表于 2007-8-13 00:38:59

这是多年的编程经验吧,不过也是。

leesoft 发表于 2007-8-13 00:53:29

其实很简单

Loading 发表于 2007-8-13 19:05:59

知道了,谢谢两位

Loading 发表于 2007-8-13 19:07:13

不知道lee能否把那个"不完全分析"弄成"完全分析"

yan 发表于 2007-8-13 19:20:14

lee不是公布了NC3000的SYS-TOOLS的源代码么,你可以去看看啊。

Loading 发表于 2007-8-14 21:27:21

汗,那个偶不知道是什么东东,看的头都大了
把这个不完全分析改成完全分析应该不难哦,他是作者嘛

leesoft 发表于 2007-8-15 08:34:19

使劲的看,就看懂了

西湖绿雨 发表于 2007-8-15 15:50:40

太使劲回对身体有害的

西湖绿雨 发表于 2007-8-15 15:51:01

要细细平味

Loading 发表于 2007-8-16 11:07:41

a66E6:
PHA
LDA #$0A
STA $3E
LDA $06AB
AND #$0F
STA $3F
STA $06AB
LDA #$0B
STA $3E
LDA #$04
STA $3F
PLA
STA $06B1
STA $06B3
LDA #$0A
STA $3E
LDA $06AB
ORA #$70
STA $3F
a670F:
STA $06AB
a6712:
LDA $06B1
BNE a6712
RTS
------------------------------

a6847:
LDA #$00
STA $3E
LDA $3F
AND #$3F
RTS


这是在TC1000S反的不知道这两段有什么用,什么AND ORA啊什么的偶一看就晕了

leesoft 发表于 2007-8-16 12:26:20

用脑子去看

POTO 发表于 2007-8-16 19:16:05

这是在TC1000S反的不知道这两段有什么用,什么AND ORA啊什么的偶一看就晕了

AND <- 逻辑运算指令
………………
汗~这个在6502编程大奥秘中有的!

POTO 发表于 2007-8-16 19:17:18

这个技巧值得一学!

Loading 发表于 2007-8-21 09:04:29

虽然我不怎么样
我感觉lee的帖子看不看无所谓
对偶一点影响都没有

leesoft 发表于 2007-8-21 11:03:29

对俺更没有影响
:-)

Loading 发表于 2007-8-12 22:46:06

关于FTPLINK星端6502代码的疑问~!@#$%^&*

研究FTPKINK星端中.......
有疑问
FTPLINK不完全分析:
http://www.emsky.net/bbs/read.php?tid=11749
免得说我挖僵尸
--------------------------------------------------------------------------------------------------------------
$6D67: BEQ $6D6C;如果条件满足,说明WQX的异或值与FTPLINK的相同,否则需重新传输
$6D69: LDA #$58
$6D6B: BIT $4FA9;技巧:如果上面BEQ的条件满足则LDA #$4F(成功:O),否则LDA #$58(失败:X)
$6D6E: STA $43
$6D70: JSR $6C0B;(发送一个字节)将结果告诉FTPLINK
$6D73: JSR $6C7B
$6D76: LDA $43
$6D78: CMP #$4F
$6D7A: 60 RTS
--------------------------------------------------------------------------------------------------------------------
BIT $4FA9是不是在这里什么用都没有,只是为了不改变寄存器A的值?

htzp 发表于 2008-8-19 18:21:09

谢谢!!!!!!111
页: [1]
查看完整版本: 关于FTPLINK星端6502代码的疑问~!@#$%^&*