签到天数: 1898 天 [LV.Master]伴坛终老
|
发表于 2010-11-16 23:01:52
|
显示全部楼层
从图片来看,你的4C C0 FF跳转地址好像写错了,应该写4C 00 FD。{:4_112:}
* X1 G* E ?7 r
2 e4 k; c1 J% m& W还有从图片来看键值好像是存放在寄存器Y,所以C9 20应修改为C0 20。
5 k' ^3 t8 E( A0 e$ [/ ^+ |( C! m) J) n4 J y# ?$ a @
48 C9 20 D0 05 A9 7F 8D 1E 04 68 4C 7E FD
' e. z3 H9 s; i4 r& l* t2 D, W
- g1 ?9 {* R) ^* v机械码 机械码指令解释
) o0 n1 A- N+ z: }: @
3 O @+ T( B; G1 M% L! `4 V/ v% a48 PHA A入栈(可以理解成保存寄存器A里的数据)
& Z* ^: L: t& U% _4 Q; n( m0 j6 h1 C* m. v
C9 20 CMP #$20 对比寄存器A与20(20是SELECT的按键值); p( |3 ?# d: F1 |+ q5 g: R) M- D+ R
1 ?% K' d6 u1 cD0 05 BNE #$05 如果不相等就跳过5个字节,相等的话继续运行,其实就是判断有没有按SELECT键.
, C* H. G4 A& }) [$ H% M
- @( Q8 H) z$ F2 U- f) q( `A9 7F LDA #$7F 把7F送入寄存器A(7F是体力满的时候的数值,这一段也可以理解成mov a,7fh)8 U. l, z$ ?& K1 c: J I4 S
$ ~0 b# k, V+ k2 y, H+ k
8D 1E 04 STA $041e 把寄存器A的数据写入地址041e(这个时候寄存器A的数据是7F)
3 z& M& I! d3 h7 H }3 {" o5 Z4 c5 _ {% m
68 PLA A出栈(还原寄存器A在保存的时候的数据)
. Z# F, e/ e" n- x
* J* c. S$ n. Y1 f* o# i: F4C 7E FD JMP $fd7e 跳转到地址fd7e,返回到原来的程序, h. `. P5 s" o3 V l' n7 u! _
; ~: q5 r0 q) }
他博客里不是有上面机械码指令解释么? |
评分
-
2
查看全部评分
-
|