签到天数: 2049 天 [LV.Master]伴坛终老
|
发表于 2010-11-16 23:01:52
|
显示全部楼层
从图片来看,你的4C C0 FF跳转地址好像写错了,应该写4C 00 FD。{:4_112:}! Q8 a1 Q8 [$ E" d
" t0 i4 _6 a y! g9 b# j还有从图片来看键值好像是存放在寄存器Y,所以C9 20应修改为C0 20。* Y; M7 x0 e% q2 d, |
3 x, F1 c. a1 A0 \7 L+ Z/ T
48 C9 20 D0 05 A9 7F 8D 1E 04 68 4C 7E FD
9 A4 u0 r5 F6 F# y+ s9 r5 z6 X' P9 B' u+ f% r* d( U0 X$ ^; Y
机械码 机械码指令解释+ `- [) W6 \+ ?" |% h9 S/ @9 W
7 \( o7 E3 _: p4 N9 C# o% w7 _+ |48 PHA A入栈(可以理解成保存寄存器A里的数据)1 k# A/ ^, L2 `0 m
9 w a9 E& H5 F4 P. v' P _0 SC9 20 CMP #$20 对比寄存器A与20(20是SELECT的按键值)& Q8 ?5 p9 Z9 c" k2 Z$ h
- q) K1 V6 p0 o, m& C/ L
D0 05 BNE #$05 如果不相等就跳过5个字节,相等的话继续运行,其实就是判断有没有按SELECT键.
, F3 V7 ^! C- k& |: O" n) F
: E- F# E$ _7 @; r3 k V9 fA9 7F LDA #$7F 把7F送入寄存器A(7F是体力满的时候的数值,这一段也可以理解成mov a,7fh)6 P R9 D, |$ F
5 X l' h1 [+ L5 a7 i* `8D 1E 04 STA $041e 把寄存器A的数据写入地址041e(这个时候寄存器A的数据是7F)( |2 x1 u8 ?9 K. T c' Z5 l
9 t5 |* L& X) X9 A
68 PLA A出栈(还原寄存器A在保存的时候的数据)
0 d' L D! z# B) P# Y- j2 I- N( j- e _, j, G5 w: ]' e
4C 7E FD JMP $fd7e 跳转到地址fd7e,返回到原来的程序
, v; C; K" X( i/ `" g- X5 t6 G! G& x; P) m3 t& s, t0 @0 n
他博客里不是有上面机械码指令解释么? |
评分
-
2
查看全部评分
-
|