签到天数: 2049 天 [LV.Master]伴坛终老
|
发表于 2010-11-16 23:01:52
|
显示全部楼层
从图片来看,你的4C C0 FF跳转地址好像写错了,应该写4C 00 FD。{:4_112:}2 a: l" K; A( I! V: A
% A0 P9 U. s" I0 Z" |; E还有从图片来看键值好像是存放在寄存器Y,所以C9 20应修改为C0 20。$ r9 l: f1 S6 \) q: m2 Q
6 {9 |8 z# v( X n J# F# \
48 C9 20 D0 05 A9 7F 8D 1E 04 68 4C 7E FD4 o/ e1 x# M, Q( l1 j" n
, d6 y! F) P* b3 {" {) g7 t
机械码 机械码指令解释# A7 g6 B0 \! j/ T& L) ^4 O4 s" T: q
0 y! {1 E8 W: h, P, i" e48 PHA A入栈(可以理解成保存寄存器A里的数据)
0 f. `# Y/ ]5 @, x. a8 r0 v3 }% t/ ^, W7 x# w0 ]& i' R. w
C9 20 CMP #$20 对比寄存器A与20(20是SELECT的按键值)0 Y* ?, I0 T! [3 [( U8 N
4 W5 f3 V2 A0 e% Y# k+ a9 R
D0 05 BNE #$05 如果不相等就跳过5个字节,相等的话继续运行,其实就是判断有没有按SELECT键.
- u- u+ R2 ]: \& Y/ O0 S1 z3 }7 F, `: N% d( V
A9 7F LDA #$7F 把7F送入寄存器A(7F是体力满的时候的数值,这一段也可以理解成mov a,7fh)
) I( q0 x/ d8 |$ w3 L2 z: \5 U6 S, J7 y1 {0 M0 i
8D 1E 04 STA $041e 把寄存器A的数据写入地址041e(这个时候寄存器A的数据是7F)6 U2 \! f* j/ r' D& @/ q: e o
6 q' a" g+ B" ^' \0 j9 b
68 PLA A出栈(还原寄存器A在保存的时候的数据)
& o8 f) t, Y( j! t; c: @, d+ k8 x1 m8 G7 n
4C 7E FD JMP $fd7e 跳转到地址fd7e,返回到原来的程序) ~5 p, c# G5 A. p8 `5 _8 d
/ p- S& P' K- k0 Y4 {, V
他博客里不是有上面机械码指令解释么? |
评分
-
2
查看全部评分
-
|