签到天数: 1870 天 [LV.Master]伴坛终老
|
发表于 2010-11-16 23:01:52
|
显示全部楼层
从图片来看,你的4C C0 FF跳转地址好像写错了,应该写4C 00 FD。{:4_112:}4 A7 n" o9 I. b1 g, i# W4 e: N/ u3 ~
, M0 K% r6 k% I- H& G
还有从图片来看键值好像是存放在寄存器Y,所以C9 20应修改为C0 20。# [3 O7 R3 d& D8 ?/ C' x/ u6 S
! O _! R. U* Y2 ]7 H5 W48 C9 20 D0 05 A9 7F 8D 1E 04 68 4C 7E FD
3 j% q( K7 a; K7 B E$ c. W. j' J
机械码 机械码指令解释6 I) f* v X' U: V: {- {- ]; P. V
1 D" ?- Z% K, c7 I! S" z, o
48 PHA A入栈(可以理解成保存寄存器A里的数据)7 E8 o$ F1 K) h9 j0 l
0 ~; ~( j8 d( a1 q: c4 }; y$ \
C9 20 CMP #$20 对比寄存器A与20(20是SELECT的按键值)9 Y; ^5 ^0 F' b X5 R
: G, Z& ?8 D' j7 z, |D0 05 BNE #$05 如果不相等就跳过5个字节,相等的话继续运行,其实就是判断有没有按SELECT键.% U$ M: X! U( T. _4 y& f: F
- ]% O( A- M4 L/ r! W( hA9 7F LDA #$7F 把7F送入寄存器A(7F是体力满的时候的数值,这一段也可以理解成mov a,7fh), `" D# }: E& p/ N" t+ E
/ y! n0 W$ M! E4 N8D 1E 04 STA $041e 把寄存器A的数据写入地址041e(这个时候寄存器A的数据是7F)
. |& ]1 y: \# M* O- }0 T& |# v' A6 N2 `5 X7 D
68 PLA A出栈(还原寄存器A在保存的时候的数据)
1 U+ y3 y. Z: x& q6 N6 j2 i! j" S( Z
4C 7E FD JMP $fd7e 跳转到地址fd7e,返回到原来的程序
1 }7 v8 D0 K" e% F7 B
7 e! k5 @, K( T$ J% x他博客里不是有上面机械码指令解释么? |
评分
-
2
查看全部评分
-
|