签到天数: 1998 天 [LV.Master]伴坛终老
|
发表于 2010-11-16 23:01:52
|
显示全部楼层
从图片来看,你的4C C0 FF跳转地址好像写错了,应该写4C 00 FD。{:4_112:}! ^% I/ B/ b1 r5 v/ v
' j1 J! w& c: p& G# R. p) S
还有从图片来看键值好像是存放在寄存器Y,所以C9 20应修改为C0 20。8 H$ {, O2 g0 a, `; y2 d; U
3 [; K0 O5 L4 N. o3 O# w48 C9 20 D0 05 A9 7F 8D 1E 04 68 4C 7E FD
/ \/ F* ^! D6 g2 g' X2 S; r5 P/ T" Y7 J8 x
机械码 机械码指令解释: ~ m3 v4 r# K1 C& f7 H# T
7 ]/ `/ J+ {- |2 o3 [% B
48 PHA A入栈(可以理解成保存寄存器A里的数据)
& j, A9 {4 j. j1 N8 b" Q# g: v4 j! P" H8 T: ?7 t, m
C9 20 CMP #$20 对比寄存器A与20(20是SELECT的按键值)
, v- T0 L/ z; M- i/ E; `" d( ~( L) u$ U- S
D0 05 BNE #$05 如果不相等就跳过5个字节,相等的话继续运行,其实就是判断有没有按SELECT键.! _/ N, @# F3 T( E
+ \, s' N8 T3 Y# sA9 7F LDA #$7F 把7F送入寄存器A(7F是体力满的时候的数值,这一段也可以理解成mov a,7fh)
; x) f* R: E7 \# f/ E8 q) _9 A7 Z& S: L0 E2 r
8D 1E 04 STA $041e 把寄存器A的数据写入地址041e(这个时候寄存器A的数据是7F)
- A! a8 e& j; v* u! P
" u' p. y. x/ k, p. \7 Z68 PLA A出栈(还原寄存器A在保存的时候的数据) ]0 W: Z! D& U9 h& g9 R
& c% K" \ i; w( ?1 E. V8 f: @6 k
4C 7E FD JMP $fd7e 跳转到地址fd7e,返回到原来的程序7 \# {: c( w% b3 | P: B( o, ~6 C
5 X; ]$ [- S0 f# Y' i2 v% `
他博客里不是有上面机械码指令解释么? |
评分
-
2
查看全部评分
-
|