易码技术论坛

 找回密码
 加入易码
搜索
查看: 473659|回复: 19

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

[复制链接]
发表于 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,这是一个小技巧!用最少的指令实现了条件赋值
发表于 2007-8-13 00:00:46 | 显示全部楼层
呵呵,这个技巧在xu那本教程里有啊。
很精简的说。
发表于 2007-8-13 00:08:31 | 显示全部楼层
其实只是雕虫小技的说
n年前就知道了的说(n>10)
当时通读了任天堂的FBASIC的机器代码,其中多次出现类似技巧
现在看来,程序员还是应该多从整体去把握程序,不要让技巧喧宾夺主
发表于 2007-8-13 00:38:59 | 显示全部楼层
这是多年的编程经验吧,不过也是。
发表于 2007-8-13 00:53:29 | 显示全部楼层
其实很简单
 楼主| 发表于 2007-8-13 19:05:59 | 显示全部楼层
知道了,谢谢两位
 楼主| 发表于 2007-8-13 19:07:13 | 显示全部楼层
不知道lee能否把那个"不完全分析"弄成"完全分析"
发表于 2007-8-13 19:20:14 | 显示全部楼层
lee不是公布了NC3000的SYS-TOOLS的源代码么,你可以去看看啊。
 楼主| 发表于 2007-8-14 21:27:21 | 显示全部楼层
汗,那个偶不知道是什么东东,看的头都大了
  把这个不完全分析改成完全分析应该不难哦,他是作者嘛
发表于 2007-8-15 08:34:19 | 显示全部楼层
使劲的看,就看懂了
发表于 2007-8-15 15:50:40 | 显示全部楼层
太使劲回对身体有害的
发表于 2007-8-15 15:51:01 | 显示全部楼层
要细细平味
 楼主| 发表于 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啊什么的偶一看就晕了
发表于 2007-8-16 12:26:20 | 显示全部楼层
用脑子去看
发表于 2007-8-16 19:16:05 | 显示全部楼层
这是在TC1000S反的不知道这两段有什么用,什么AND ORA啊什么的偶一看就晕了

AND <- 逻辑运算指令
………………
汗~这个在6502编程大奥秘中有的!
发表于 2007-8-16 19:17:18 | 显示全部楼层
这个技巧值得一学!
 楼主| 发表于 2007-8-21 09:04:29 | 显示全部楼层
虽然我不怎么样
我感觉lee的帖子看不看无所谓
对偶一点影响都没有
发表于 2007-8-21 11:03:29 | 显示全部楼层
对俺更没有影响
:-)
 楼主| 发表于 2007-8-12 22:46:06 | 显示全部楼层 |阅读模式
  研究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的值?
发表于 2008-8-19 18:21:09 | 显示全部楼层
谢谢!!!!!!111
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

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

GMT+8, 2024-3-19 17:48 , Processed in 0.013746 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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