EMU618社区

 找回密码
 立即注册
搜索
查看: 150|回复: 5

[求助] 关于68K指令的几个疑问

[复制链接]

该用户从未签到

发表于 2025-5-10 18:02:12 | 显示全部楼层 |阅读模式
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
, v; }) x( v, @, m8 T6 f2.68K Hook用 jmp 和 jsr 哪个比较好呢9 o0 G2 o% d: h7 q( y
3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢+ {9 v5 u3 D( y: H* H" c
( W( `( K. y. q, ~7 ?) y
本人初学街机hack,很多问题不懂,望大神们指点! ]6 T& B+ V7 h, ~# E3 j

签到天数: 651 天

[LV.9]以坛为家II

发表于 2025-5-10 19:12:43 | 显示全部楼层
[发帖际遇]: jrs911摆地摊卖菜,占道经营被城管罚款 2 个 柠檬. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 11:26:36 | 显示全部楼层
jrs911 发表于 2025-5-10 19:12
" f: _; b  B8 ^6 Yhttp://2006.emu618.org:6180/thread-122282-1-1.html
5 s. h3 S/ ]8 o2 }- s5 {/ y
看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
回复 支持 反对

使用道具 举报

签到天数: 651 天

[LV.9]以坛为家II

发表于 2025-5-11 12:34:13 | 显示全部楼层
本帖最后由 jrs911 于 2025-6-19 08:52 编辑
' j( h" k6 L* U
weucxx 发表于 2025-5-11 11:26
. r8 V5 q: q8 b看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题

( q; O+ R" \" Q- w6 t
2 L0 K+ H3 ~7 Q* r* ?具体问题到论坛的群里面找大神去问,也可以先联系下管理员疾风之狼
2 A* o; l1 ^( j* t% ^, C6 w
- G! i9 Q! w# m2 R, H- ?6 `# Uhttps://pan.baidu.com/s/1Ale8oc4aVNq_QhLJuMnnUQ
[发帖际遇]: jrs911 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

签到天数: 2008 天

[LV.Master]伴坛终老

发表于 2025-5-11 19:42:54 | 显示全部楼层
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
  R2 n# K3 t8 Q- U
- ]6 l2 I. l! h% n8 p8 Z- s$ k68K中A7(SP)寄存器是堆栈指针,68K没有push、pop之类自动入栈出栈指令,只能手工管理堆栈
4 U; }$ b3 B! m% _% b- Q/ [* I. g3 G" r7 Q" x
用movem命令来手工入栈出栈7 I  ]% l& r3 R: E
0 Q" d- e+ D8 ?' r- |. s6 l  h
入栈:+ E. C7 F- D3 z1 O# d- k( n
movem.l D0-D2/A0-A1,-(A7)
4 x; [2 s) B  }  d" S) n9 t( H2 J9 t
出栈:4 T6 `$ s7 Y8 f! V4 K
movem.l (A7)+,D0-D2/A0-A1
& l7 w( }! R- {  y9 _: r- K/ R8 K3 z* N# m. J: Z
2.68K Hook用 jmp 和 jsr 哪个比较好呢
# o% P6 _2 U! d# X4 I4 W/ o5 o+ O4 }4 C8 D1 _9 L
jmp和jsr不同的唯一是jsr是带返回的跳转,返回指令是rts
6 `$ s0 @% ], T" F# W2 a2 @% u5 Y  Z) h: s" Q
jsr跳转时会把当前PC寄存器地址压入堆栈,之后用rts指令返回时会把地址恢复到PC寄存器1 I# T( M! }  C  ~9 ?& T/ w( F
' Y' u) S, n8 B& Z. J
jmp和jsr有无跳转长度限制不记得了
& Q8 |+ {8 M+ a/ J3 m" E: R  q6 O+ U, s" S, t+ G' F/ R
3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
/ {0 b3 ?/ N9 [9 l  R! T0 s- N' ~! p! U1 i
问deepseek AI去
( ]' ^! Y5 I) C; T* ]3 v1 {; }3 |9 x3 d7 C9 z& ^
[发帖际遇]: 疾风之狼 在网吧通宵,花了 10 个 柠檬. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 21:39:11 | 显示全部楼层
疾风之狼 发表于 2025-5-11 19:42
( I/ ?3 c: u# Z: ^9 s  N1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
' n  M9 a- M8 E& P
% M" J: |) b( j: m# O2 b68K中A7(SP)寄存 ...
( i1 c& F) _  n: c
多谢狼大指导,受益匪浅!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|国治模拟精品屋 ( 沪ICP备15012945号-1 )

GMT+8, 2025-7-15 11:56 , Processed in 1.064453 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表