签到天数: 2140 天 [LV.Master]伴坛终老
|
发表于 2010-11-16 23:01:52
|
显示全部楼层
从图片来看,你的4C C0 FF跳转地址好像写错了,应该写4C 00 FD。{:4_112:}' p0 U( c: q0 }9 D8 C( X' c
. v, _/ i6 v+ Y: w- ~; z! c- \还有从图片来看键值好像是存放在寄存器Y,所以C9 20应修改为C0 20。: `% {0 V1 \9 n! [2 c
7 r4 B( ^# D6 o2 ]- o0 L48 C9 20 D0 05 A9 7F 8D 1E 04 68 4C 7E FD
% f; n4 @5 `9 L* J4 }4 s, ], M
% C6 r( x5 V' w8 v% k机械码 机械码指令解释" Z$ i% H8 f/ [: U
2 P3 D! t2 j/ N' k
48 PHA A入栈(可以理解成保存寄存器A里的数据), H% U) t- s n0 i4 f- D
% R* A9 [' b TC9 20 CMP #$20 对比寄存器A与20(20是SELECT的按键值)
3 w, T u2 r0 A" i+ k, _) |5 ?
5 f: k' `, G# R3 {D0 05 BNE #$05 如果不相等就跳过5个字节,相等的话继续运行,其实就是判断有没有按SELECT键.
5 I+ Z6 A0 X0 s* |: O5 O1 Z
1 ~8 j4 t" _# W7 N6 Z8 V" o& mA9 7F LDA #$7F 把7F送入寄存器A(7F是体力满的时候的数值,这一段也可以理解成mov a,7fh)3 ]* W- B. @, V2 z4 U" e, C
( [9 t5 P% y* t* r7 i' r# \4 K# l8D 1E 04 STA $041e 把寄存器A的数据写入地址041e(这个时候寄存器A的数据是7F)
& X2 ?1 V; o: ~3 T; N7 D! T6 a3 X2 W, d! ^) T6 ]! u
68 PLA A出栈(还原寄存器A在保存的时候的数据)
9 U# U, j4 t' {% y f6 \
! e) _2 w4 _, |* M$ b, v7 P+ M4C 7E FD JMP $fd7e 跳转到地址fd7e,返回到原来的程序
3 \0 Z% J( P+ _0 v. o% E* _) ^6 X, X9 _
他博客里不是有上面机械码指令解释么? |
评分
-
2
查看全部评分
-
|