$6D69: LDA #$58
$6D6B: BIT $4FA9;
$6D67条件满足,则执行LDA #$58 ,BIT $4FA9(其中后一句没正作用,但有好的副作用)
$6D67条件不满足,则跳到$6D6C,注意:$6D6C是 机器码a94f,就是lda #$4f
看明白了吗?
根据Z标志,a或取#$58或取#$4f,这是一个小技巧!用最少的指令实现了条件赋值 呵呵,这个技巧在xu那本教程里有啊。
很精简的说。 其实只是雕虫小技的说
n年前就知道了的说(n>10)
当时通读了任天堂的FBASIC的机器代码,其中多次出现类似技巧
现在看来,程序员还是应该多从整体去把握程序,不要让技巧喧宾夺主 这是多年的编程经验吧,不过也是。 其实很简单 知道了,谢谢两位 不知道lee能否把那个"不完全分析"弄成"完全分析" lee不是公布了NC3000的SYS-TOOLS的源代码么,你可以去看看啊。 汗,那个偶不知道是什么东东,看的头都大了
把这个不完全分析改成完全分析应该不难哦,他是作者嘛 使劲的看,就看懂了 太使劲回对身体有害的 要细细平味 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啊什么的偶一看就晕了 用脑子去看 这是在TC1000S反的不知道这两段有什么用,什么AND ORA啊什么的偶一看就晕了
AND <- 逻辑运算指令
………………
汗~这个在6502编程大奥秘中有的! 这个技巧值得一学! 虽然我不怎么样
我感觉lee的帖子看不看无所谓
对偶一点影响都没有 对俺更没有影响
:-)
关于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的值? 谢谢!!!!!!111
页:
[1]