签到天数: 2113 天 [LV.Master]伴坛终老
|
发表于 2010-11-16 23:01:52
|
显示全部楼层
从图片来看,你的4C C0 FF跳转地址好像写错了,应该写4C 00 FD。{:4_112:}
6 b# J* {1 E$ h# W E* d; l& u$ s4 T9 e
还有从图片来看键值好像是存放在寄存器Y,所以C9 20应修改为C0 20。
% W$ {, T6 V' E
6 g# Z" g x; l2 q7 _$ B9 ?; _48 C9 20 D0 05 A9 7F 8D 1E 04 68 4C 7E FD
# H4 |4 E; h) Y
4 N) L F3 {5 C; o机械码 机械码指令解释7 U9 o3 X: K; \. f) t9 v {8 o) |
# w4 W8 e! U5 V ~9 S0 `/ o48 PHA A入栈(可以理解成保存寄存器A里的数据)
M4 |/ h% `% D0 z: R- I5 W9 _! ]. S* ^' n8 Q7 o
C9 20 CMP #$20 对比寄存器A与20(20是SELECT的按键值)' Y" B2 R/ x8 e. E* ^
, i! V( d1 t& R: G- U. ?D0 05 BNE #$05 如果不相等就跳过5个字节,相等的话继续运行,其实就是判断有没有按SELECT键." Y5 Y F% p9 o$ ]1 u5 N0 B5 s
/ a/ D. t, B8 ~, z& R
A9 7F LDA #$7F 把7F送入寄存器A(7F是体力满的时候的数值,这一段也可以理解成mov a,7fh)3 J1 m* g5 l Y# S- s+ o7 v
& s* q* h/ V. Z7 D0 k
8D 1E 04 STA $041e 把寄存器A的数据写入地址041e(这个时候寄存器A的数据是7F)
( F3 P# s& _- K) F+ e6 N/ y- i# o! s# K( C0 }0 d. O9 ~, T
68 PLA A出栈(还原寄存器A在保存的时候的数据)
; B/ M. R/ z4 ~1 L
K4 g, |- o A/ K, j- M7 T4C 7E FD JMP $fd7e 跳转到地址fd7e,返回到原来的程序0 h* E X E: Y9 p
& V { y" A6 H; X1 Q( Y他博客里不是有上面机械码指令解释么? |
评分
-
2
查看全部评分
-
|