签到天数: 2186 天 [LV.Master]伴坛终老
|
发表于 2010-11-16 23:01:52
|
显示全部楼层
从图片来看,你的4C C0 FF跳转地址好像写错了,应该写4C 00 FD。{:4_112:}* @1 i; F. d! m( k* X0 P# S
2 ?6 t# H; J8 g. ~还有从图片来看键值好像是存放在寄存器Y,所以C9 20应修改为C0 20。
( ?$ ^2 C' A* a- g% Y
# `# s4 Y! v4 b' G48 C9 20 D0 05 A9 7F 8D 1E 04 68 4C 7E FD
# B0 z/ h1 A+ |- J) i6 @2 W0 v6 }; p
机械码 机械码指令解释
# W& T) t7 N0 G3 E! i* x8 [; D
7 s2 ? ~$ B8 T( O48 PHA A入栈(可以理解成保存寄存器A里的数据)
' U" |6 W# S* P7 k7 x3 Z9 g
- w( K9 i6 `5 w$ U& C5 h, u2 GC9 20 CMP #$20 对比寄存器A与20(20是SELECT的按键值)( V* h9 s, M4 v
! r B$ Z8 P1 f3 y1 `9 B. bD0 05 BNE #$05 如果不相等就跳过5个字节,相等的话继续运行,其实就是判断有没有按SELECT键." q" ^9 n4 ^( t4 A7 e' H
7 t" z# h: m9 P" \* p! s
A9 7F LDA #$7F 把7F送入寄存器A(7F是体力满的时候的数值,这一段也可以理解成mov a,7fh)
( N+ s- A, y6 S, q6 k. R# o$ c7 i4 H# m: r0 h E6 v
8D 1E 04 STA $041e 把寄存器A的数据写入地址041e(这个时候寄存器A的数据是7F)
: \2 d1 ?7 l# i. x" J% p! K% Y) F% Q3 S( |. \! a
68 PLA A出栈(还原寄存器A在保存的时候的数据)
- z9 s, ^$ H; i7 R u
6 m. {$ y+ |9 ^9 M- U4C 7E FD JMP $fd7e 跳转到地址fd7e,返回到原来的程序0 L8 h E( E3 q6 S3 F! `# L" e
& w' d1 B* l& J! y# [' Z- m( w6 y
他博客里不是有上面机械码指令解释么? |
评分
-
2
查看全部评分
-
|