EMU618社区

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

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

[复制链接]

该用户从未签到

发表于 2025-5-10 18:02:12 | 显示全部楼层 |阅读模式
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
. q% c. h, _8 B) z5 W6 Q$ `2.68K Hook用 jmp 和 jsr 哪个比较好呢
0 j( }# ~2 |$ V3 i& f: J3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢- B, C1 q' b7 P
( w- Y( w3 N$ b2 Y" l
本人初学街机hack,很多问题不懂,望大神们指点
" H3 v1 L) ^  {

签到天数: 823 天

[LV.10]以坛为家III

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

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 11:26:36 | 显示全部楼层
jrs911 发表于 2025-5-10 19:12
/ f. p' J; |+ d3 V% g0 Hhttp://2006.emu618.org:6180/thread-122282-1-1.html
* p: m0 d0 n* a7 E. |" G( P
看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
回复 支持 反对

使用道具 举报

签到天数: 823 天

[LV.10]以坛为家III

发表于 2025-5-11 12:34:13 | 显示全部楼层
本帖最后由 jrs911 于 2025-6-19 08:52 编辑 , X9 N7 g1 n' P; X
weucxx 发表于 2025-5-11 11:262 t+ F. W4 v: q
看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
9 D  B+ b# q/ h. I$ _0 ^* U6 U- \

" _2 |9 o! C1 \* Y4 c具体问题到论坛的群里面找大神去问,也可以先联系下管理员疾风之狼- Y+ a4 m- \! q0 u
0 @9 o  l8 P( s" l
https://pan.baidu.com/s/1Ale8oc4aVNq_QhLJuMnnUQ
[发帖际遇]: jrs911 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

签到天数: 2180 天

[LV.Master]伴坛终老

发表于 2025-5-11 19:42:54 | 显示全部楼层
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
' [1 F% r* g) e* e, _! Q
7 h: K0 b$ j, L. E7 t/ o! t, @68K中A7(SP)寄存器是堆栈指针,68K没有push、pop之类自动入栈出栈指令,只能手工管理堆栈
! }5 x$ ~& R3 R  w) L. P5 _: o3 v* u9 N7 {3 f" I8 h
用movem命令来手工入栈出栈# O! Z/ ^1 }' g+ v; b- h/ H0 ?

+ c3 k& n2 N, v& y( L$ I+ l/ L! L入栈:
3 T5 E1 s8 y+ P: `/ I3 I! L* d( D& Pmovem.l D0-D2/A0-A1,-(A7)
3 c" b: C( Y3 ^/ C
& G$ J5 Y$ V- d  H! N& _- y3 P6 V5 v出栈:
0 o3 }; e& @7 A5 Dmovem.l (A7)+,D0-D2/A0-A1* C! U" U7 D6 E" k9 i

, _4 B" {5 F, U( n9 _2.68K Hook用 jmp 和 jsr 哪个比较好呢% l2 t# R* [9 y; K# n0 w  K
$ \/ t% }6 s) [( A# S& ~
jmp和jsr不同的唯一是jsr是带返回的跳转,返回指令是rts
& l& ^6 Y* {/ o9 f# I
" M6 d  i* D% Z. s+ d) N1 kjsr跳转时会把当前PC寄存器地址压入堆栈,之后用rts指令返回时会把地址恢复到PC寄存器7 M( a( L+ f  t. j' \0 F
0 K& x1 a1 A% \# L" [9 N4 x7 w' D1 J
jmp和jsr有无跳转长度限制不记得了; s! \+ a# k8 `( g5 B9 m

$ s3 }! D. C- o( r3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
$ L5 {4 t( X% Z9 R: N' ?, V+ }5 f4 d# P
问deepseek AI去
  @5 y3 |/ X, m% m5 h7 S+ ]
& _7 Q5 k- _$ K9 T& H; r2 w% Z
[发帖际遇]: 疾风之狼 在网吧通宵,花了 10 个 柠檬. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 21:39:11 | 显示全部楼层
疾风之狼 发表于 2025-5-11 19:42) x8 J$ C9 v; m/ h  C) l( U
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
9 p6 |# g6 R" E4 m- }
) G, `% m. j! `8 D# Q7 x68K中A7(SP)寄存 ...

, l) c% I8 A- s" {. Q9 `0 L多谢狼大指导,受益匪浅!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-3 09:15 , Processed in 1.110352 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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