EMU618社区

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

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

[复制链接]

该用户从未签到

发表于 2025-5-10 18:02:12 | 显示全部楼层 |阅读模式
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
( \( J1 v4 o  U; f: \2.68K Hook用 jmp 和 jsr 哪个比较好呢) h' Y( F/ ?% r7 {) U+ w
3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢1 A6 d$ A7 I0 j$ V- n$ t2 }
1 ]$ n  ~( @7 i$ z# e
本人初学街机hack,很多问题不懂,望大神们指点
! @! ~; S' X4 b7 V, R

签到天数: 715 天

[LV.9]以坛为家II

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

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 11:26:36 | 显示全部楼层
jrs911 发表于 2025-5-10 19:12
+ O# h5 I' M! D& m' G) khttp://2006.emu618.org:6180/thread-122282-1-1.html
2 C, I9 D( E, x6 S! v
看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
回复 支持 反对

使用道具 举报

签到天数: 715 天

[LV.9]以坛为家II

发表于 2025-5-11 12:34:13 | 显示全部楼层
本帖最后由 jrs911 于 2025-6-19 08:52 编辑 2 ^4 F4 j% E8 z! X6 l+ \9 r. @
weucxx 发表于 2025-5-11 11:266 |6 u: @3 y  D  }& T6 }
看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题

! h% J) X* n/ B; U, ?* Y4 u4 s% s/ R: m/ V- V: g
具体问题到论坛的群里面找大神去问,也可以先联系下管理员疾风之狼
+ [* u* G  E* V: P
$ ?5 b2 x: a& W% v2 bhttps://pan.baidu.com/s/1Ale8oc4aVNq_QhLJuMnnUQ
[发帖际遇]: jrs911 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

签到天数: 2073 天

[LV.Master]伴坛终老

发表于 2025-5-11 19:42:54 | 显示全部楼层
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
' g. p; \& u* D& P( w4 n+ p& L7 Y7 \8 r: P
68K中A7(SP)寄存器是堆栈指针,68K没有push、pop之类自动入栈出栈指令,只能手工管理堆栈$ N/ b6 Z" c# ~
( _, B& x( y3 p5 k
用movem命令来手工入栈出栈# c( f* p- Z" |( |0 @
& X5 a6 U8 ~1 |
入栈:; d* w6 b# d5 _: `- E0 A
movem.l D0-D2/A0-A1,-(A7)' c5 Y3 x; k0 x( @/ X2 Y$ f

& S  e; H( k7 z8 |! c出栈:
3 f% a: Z1 m) G+ ?/ F7 t$ J$ emovem.l (A7)+,D0-D2/A0-A1
# {+ b( ?2 W# [/ A/ V" G' E$ H3 A8 w; z' `  i: J# i% A
2.68K Hook用 jmp 和 jsr 哪个比较好呢# r6 r, f+ \% J
8 x0 i5 U3 V) i, B/ B7 F
jmp和jsr不同的唯一是jsr是带返回的跳转,返回指令是rts, A. A" ^, j# M& R' G7 ^# G+ [

& b  p" ^8 P+ njsr跳转时会把当前PC寄存器地址压入堆栈,之后用rts指令返回时会把地址恢复到PC寄存器/ A: ]( K6 f/ {6 I: }
( L& I; H9 X; r6 M9 z! z+ ?3 k
jmp和jsr有无跳转长度限制不记得了
( K- p& D$ `9 l( h
; O* t# r4 X: d; Z1 J3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢2 G8 Z% }% i# Z, x$ |
4 e- P& l- S. A! z
问deepseek AI去, Q( I/ q. N7 `: j
+ \3 G% G+ z6 Z+ P6 U/ i9 s  K( }
[发帖际遇]: 疾风之狼 在网吧通宵,花了 10 个 柠檬. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 21:39:11 | 显示全部楼层
疾风之狼 发表于 2025-5-11 19:42" }- a/ x3 I, Q& ~% v7 Q9 M
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?2 l" f; r8 D) i3 R" ^. e
# ^$ J9 r! Y& L8 Y. n! {+ H$ E
68K中A7(SP)寄存 ...
/ C3 e$ X, T4 g9 P4 M
多谢狼大指导,受益匪浅!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-17 20:26 , Processed in 1.156250 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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