签到天数: 1768 天 [LV.Master]伴坛终老
|
发表于 2010-11-16 23:01:52
|
显示全部楼层
从图片来看,你的4C C0 FF跳转地址好像写错了,应该写4C 00 FD。{:4_112:}
% }0 m+ h1 m3 ~8 B: V$ x
3 P" ^! b- g. k+ Q* ~3 c8 L; U' [还有从图片来看键值好像是存放在寄存器Y,所以C9 20应修改为C0 20。3 W8 D) c5 p9 a9 y- [1 J
! D3 m4 L% o: j) {2 @. W, B9 t
48 C9 20 D0 05 A9 7F 8D 1E 04 68 4C 7E FD
9 n1 n0 y7 N0 W3 ~) ]7 ]1 m# O* [; W5 V, p6 i
机械码 机械码指令解释, A I3 f! \# v0 B
7 C6 \2 k* h0 I( F' g H48 PHA A入栈(可以理解成保存寄存器A里的数据)" R+ j' R8 c1 V, r7 u2 J
0 ^ [7 S- o, }' Z+ R+ \# I7 B
C9 20 CMP #$20 对比寄存器A与20(20是SELECT的按键值)
/ X2 K3 S: r7 C1 Q3 Y9 z
; y+ H, ? j1 v- L* D% ` _- ~' SD0 05 BNE #$05 如果不相等就跳过5个字节,相等的话继续运行,其实就是判断有没有按SELECT键.! S \, ^' G+ C3 J6 A8 b' G: U
8 R i9 F) c" `( D+ ^% s; iA9 7F LDA #$7F 把7F送入寄存器A(7F是体力满的时候的数值,这一段也可以理解成mov a,7fh)
6 h. c* I. S% ^: C
6 |0 J% y5 h/ t! ^# o8D 1E 04 STA $041e 把寄存器A的数据写入地址041e(这个时候寄存器A的数据是7F)2 ?, k, U2 ]6 d) {
; p k l7 @6 S" L
68 PLA A出栈(还原寄存器A在保存的时候的数据)- w; X6 f z+ S) g/ c0 z9 D( A' T
/ K! T" G: E$ T Z; m4C 7E FD JMP $fd7e 跳转到地址fd7e,返回到原来的程序
p" G1 g& d; j: U' Z& i2 }2 C c) c
他博客里不是有上面机械码指令解释么? |
评分
-
2
查看全部评分
-
|