签到天数: 1952 天 [LV.Master]伴坛终老
|
发表于 2010-11-16 23:01:52
|
显示全部楼层
从图片来看,你的4C C0 FF跳转地址好像写错了,应该写4C 00 FD。{:4_112:}
; ~0 u/ w! l6 j2 ?& B5 K
- E# O, m, y7 h8 l' Q1 ?- h$ }! u, N还有从图片来看键值好像是存放在寄存器Y,所以C9 20应修改为C0 20。
6 ]7 ~0 j# g: P& u" p9 U8 G
7 v9 ^1 m) p0 k5 `: u" x9 L2 V& n48 C9 20 D0 05 A9 7F 8D 1E 04 68 4C 7E FD
, D5 \" z- e& q; I: @! J, O" j& A7 E, U! }: O. J" M
机械码 机械码指令解释
J4 o3 q/ t4 K4 h8 q/ X6 R& Z8 x- `9 W! y& j
48 PHA A入栈(可以理解成保存寄存器A里的数据)0 y" t2 W* w! p& r" X
+ F' d( V, x7 W% m. Y" v1 J1 @# W
C9 20 CMP #$20 对比寄存器A与20(20是SELECT的按键值)
, G. v9 M: E" l0 ?& B5 p6 s% W/ X" @4 ?6 _& V7 C4 Q
D0 05 BNE #$05 如果不相等就跳过5个字节,相等的话继续运行,其实就是判断有没有按SELECT键.8 D: O8 V7 C5 S# ]
& R. y# u* q7 ~- K
A9 7F LDA #$7F 把7F送入寄存器A(7F是体力满的时候的数值,这一段也可以理解成mov a,7fh)
5 B2 O( U2 N) T6 K! x1 A$ P
) e/ Q# G0 R4 v; E8D 1E 04 STA $041e 把寄存器A的数据写入地址041e(这个时候寄存器A的数据是7F)
0 ~4 h% P% f0 }5 U
6 E9 |8 `3 r+ l0 }" O68 PLA A出栈(还原寄存器A在保存的时候的数据)
2 X. m; w/ f( l) r( e5 A
, i! w; Y1 A( i1 Z% `8 p1 u. v6 E4C 7E FD JMP $fd7e 跳转到地址fd7e,返回到原来的程序
- N* P! ~ f/ ]. d& o Y* a- f! D, _+ m, A/ E( ?# J
他博客里不是有上面机械码指令解释么? |
评分
-
2
查看全部评分
-
|