EMU618社区

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

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

[复制链接]

该用户从未签到

发表于 2025-5-10 18:02:12 | 显示全部楼层 |阅读模式
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?/ d# O( |' m( I4 V8 b$ Q1 I
2.68K Hook用 jmp 和 jsr 哪个比较好呢% a, L8 R3 p1 K5 A5 `& Z
3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
0 I: s& Y* g8 z% d& S6 w6 s
' X* h- k. z, c9 ^本人初学街机hack,很多问题不懂,望大神们指点# y( r5 Y" }% x! v, J- f1 b8 B6 f* W# u: A

签到天数: 761 天

[LV.10]以坛为家III

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

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 11:26:36 | 显示全部楼层
jrs911 发表于 2025-5-10 19:127 Q; y& n/ Q! O9 a
http://2006.emu618.org:6180/thread-122282-1-1.html
' w8 d' Z9 q8 c8 ?
看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
回复 支持 反对

使用道具 举报

签到天数: 761 天

[LV.10]以坛为家III

发表于 2025-5-11 12:34:13 | 显示全部楼层
本帖最后由 jrs911 于 2025-6-19 08:52 编辑
8 R9 L& i' o+ ]# o8 d8 l( J
weucxx 发表于 2025-5-11 11:266 x$ F$ W) l# o2 y. H( R
看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
4 Y9 @' b5 r% Y& |, f+ D  v

% n% ~' o- d9 ~; _: H' P, `6 ~7 s3 H具体问题到论坛的群里面找大神去问,也可以先联系下管理员疾风之狼
2 k; l: m) y. s9 [* E7 C9 i
( d. ]. m1 c) Y6 phttps://pan.baidu.com/s/1Ale8oc4aVNq_QhLJuMnnUQ
[发帖际遇]: jrs911 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

签到天数: 2119 天

[LV.Master]伴坛终老

发表于 2025-5-11 19:42:54 | 显示全部楼层
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
' `4 t! D/ z+ n3 @3 V( K( R- L
. R0 [2 y8 l- e2 F- l% w68K中A7(SP)寄存器是堆栈指针,68K没有push、pop之类自动入栈出栈指令,只能手工管理堆栈* |; X( t  I; \0 f, k) N2 i
6 j6 |# B$ v  E. T  n9 A. v
用movem命令来手工入栈出栈
: c8 K8 T# a/ b/ ]3 N1 n$ j
3 g4 X" l2 ^) \6 f0 e1 S  T入栈:5 X! {  r; |( N# u3 C1 n" Y
movem.l D0-D2/A0-A1,-(A7)
9 w0 c5 X8 A/ Z! a; o* P' `" o  m8 ]+ O9 G( R% ?& ~
出栈:
7 H' i- H) v5 a" qmovem.l (A7)+,D0-D2/A0-A1# R2 V& [% q! {# e

& X$ D+ O: y+ I, N) e" |7 G* I2.68K Hook用 jmp 和 jsr 哪个比较好呢
* ~6 [' i' ~9 i/ D9 x
/ `$ I! Z5 x, Fjmp和jsr不同的唯一是jsr是带返回的跳转,返回指令是rts1 W6 ?( h6 l' G: A. U

  B  x- D! n- Vjsr跳转时会把当前PC寄存器地址压入堆栈,之后用rts指令返回时会把地址恢复到PC寄存器
7 ?, D/ ^# O, Q& ]! I2 ~
4 `) X8 H% C' _% `% N# @jmp和jsr有无跳转长度限制不记得了9 a3 g/ Y4 L4 J! A9 D; S
$ k+ U* s. X/ {6 p- P
3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
: i7 K! ~/ Q+ `2 I6 M* G* b) g3 Q0 O6 C* i% h
问deepseek AI去
( t: @' {1 ~  T0 k* D4 N# u! S5 x2 k0 `# }( N* g  @9 _9 S9 x
[发帖际遇]: 疾风之狼 在网吧通宵,花了 10 个 柠檬. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 21:39:11 | 显示全部楼层
疾风之狼 发表于 2025-5-11 19:423 P( T5 e3 b& j6 l1 Y
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
5 d* f4 e# q, c+ L$ J7 W* N
  j$ {* X+ W* ~6 ^/ V" Z68K中A7(SP)寄存 ...

/ }) e- r) g1 s- X2 {' Y多谢狼大指导,受益匪浅!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-2 16:14 , Processed in 1.066406 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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