签到天数: 1993 天 [LV.Master]伴坛终老
|
发表于 2010-11-16 23:01:52
|
显示全部楼层
从图片来看,你的4C C0 FF跳转地址好像写错了,应该写4C 00 FD。{:4_112:}
U. |2 t; U0 M$ ]9 L, T7 Q1 s7 _! K
9 I* Z& | [* F7 E; O! A还有从图片来看键值好像是存放在寄存器Y,所以C9 20应修改为C0 20。
3 h, e: S- R8 f( v6 ?
' r: @ w0 E6 s48 C9 20 D0 05 A9 7F 8D 1E 04 68 4C 7E FD; n! A1 P5 M5 E( J/ P7 Y
% W& @! D! C: u, V( N! l* r
机械码 机械码指令解释
4 \7 }+ N5 Q5 F; u" u
, w- |5 i4 O/ [2 Z) O3 L48 PHA A入栈(可以理解成保存寄存器A里的数据)
, s5 M# M, p( C' M3 p0 ^. L. L! c# D: b: N( Z- O( b
C9 20 CMP #$20 对比寄存器A与20(20是SELECT的按键值)# K& ^% Z7 E( D' S
3 ^% S3 d7 Z3 R6 w8 yD0 05 BNE #$05 如果不相等就跳过5个字节,相等的话继续运行,其实就是判断有没有按SELECT键.
; U! [% d4 o$ Q( w" a& G8 w# q" l0 Y! V& q& K! B; ^' o6 f. }
A9 7F LDA #$7F 把7F送入寄存器A(7F是体力满的时候的数值,这一段也可以理解成mov a,7fh)
5 t; v9 b3 W( [8 Q+ ]& \( b+ S% V* ]& b) d' l
8D 1E 04 STA $041e 把寄存器A的数据写入地址041e(这个时候寄存器A的数据是7F)! {; ?6 Q5 X2 A5 W) n
. w( Y$ F s" r5 S; j( Q68 PLA A出栈(还原寄存器A在保存的时候的数据)/ }5 P+ J6 |% K, E5 S! ]
3 {! j9 {" m% v! B+ w1 I3 [/ c3 B4C 7E FD JMP $fd7e 跳转到地址fd7e,返回到原来的程序1 [6 M3 y: k* E& e$ s7 {5 M
1 z( b0 g3 s1 M8 [$ _9 z他博客里不是有上面机械码指令解释么? |
评分
-
2
查看全部评分
-
|