EMU618社区

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

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

[复制链接]

该用户从未签到

发表于 2025-5-10 18:02:12 | 显示全部楼层 |阅读模式
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?6 G, ~: @" }) V
2.68K Hook用 jmp 和 jsr 哪个比较好呢6 d5 c4 I, h; J8 \
3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
% L5 j% A5 {2 E" ^& Q3 a& |! y4 O; C" i
5 Z2 ^; d0 |2 w) q, y7 v0 ^% c. b本人初学街机hack,很多问题不懂,望大神们指点( i  _4 o! I$ @; `

签到天数: 777 天

[LV.10]以坛为家III

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

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 11:26:36 | 显示全部楼层
jrs911 发表于 2025-5-10 19:12
& b4 T/ {( T) t; V- ?http://2006.emu618.org:6180/thread-122282-1-1.html

7 U  B. b! ^9 X5 w, T3 j看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
回复 支持 反对

使用道具 举报

签到天数: 777 天

[LV.10]以坛为家III

发表于 2025-5-11 12:34:13 | 显示全部楼层
本帖最后由 jrs911 于 2025-6-19 08:52 编辑 ) v0 o5 m$ @2 T, i7 _
weucxx 发表于 2025-5-11 11:26- {. I) R* {' T7 F  y( N
看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
% }5 A& l# a, Y6 }

/ \' X) u) g1 ]0 M0 J' ?具体问题到论坛的群里面找大神去问,也可以先联系下管理员疾风之狼1 L3 k: @7 G0 \1 _: ~/ s( @

/ G* o+ ~  Q8 h/ ~https://pan.baidu.com/s/1Ale8oc4aVNq_QhLJuMnnUQ
[发帖际遇]: jrs911 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

签到天数: 2135 天

[LV.Master]伴坛终老

发表于 2025-5-11 19:42:54 | 显示全部楼层
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?  n/ c3 ^% F. j$ d/ U1 Y1 `* X
7 Y; y& Y' S) j) i5 k+ k+ N0 Q+ ?7 h
68K中A7(SP)寄存器是堆栈指针,68K没有push、pop之类自动入栈出栈指令,只能手工管理堆栈. q( ^* g+ H% W' f: ~! F

! Q4 ~2 e7 h9 {7 w. @用movem命令来手工入栈出栈% _" w9 [, d- E5 g; A/ {* a7 n

$ {* m5 M3 j7 }) p3 B6 b+ H5 l, q# w' I入栈:
% r- ^) @5 E. S, v4 \2 Y) q( L9 ~) p/ rmovem.l D0-D2/A0-A1,-(A7)1 F1 I, Z; |5 R) d1 Z* _4 G" Z1 f/ Y

* h; V5 B, p' J, s+ F8 c出栈:+ [& W( b, g& k- P. N; e
movem.l (A7)+,D0-D2/A0-A11 {3 d- n$ s5 r( C

4 f$ V; B0 E4 {% U" k4 v, N2.68K Hook用 jmp 和 jsr 哪个比较好呢7 ]2 C$ c# d" `' f

9 V( q; D; \. O; P6 Mjmp和jsr不同的唯一是jsr是带返回的跳转,返回指令是rts4 d2 M  `# _, D" T* f  A* q
" o) U0 L) o" Y, V- ^
jsr跳转时会把当前PC寄存器地址压入堆栈,之后用rts指令返回时会把地址恢复到PC寄存器8 O# R  D* \4 G

+ ?2 h$ r6 s: i5 x* wjmp和jsr有无跳转长度限制不记得了
! p4 R$ S, Z* c: s0 d: v" E. G8 z1 F0 E8 H2 S% f5 f, W- B, z
3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
# j/ M; q* }! }, N& ]: H: A- e. B2 M( ]6 I" c* r
问deepseek AI去
3 P1 ]& h- h9 ^( m5 U7 v" B* }$ c+ ?) q/ i$ u+ X0 v
[发帖际遇]: 疾风之狼 在网吧通宵,花了 10 个 柠檬. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 21:39:11 | 显示全部楼层
疾风之狼 发表于 2025-5-11 19:42- E% J- V0 A) N  q/ A
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
% h- G9 u4 Q+ t, e6 t' r5 X% `# u% `' `( j1 D' o  M' i
68K中A7(SP)寄存 ...

5 [. q: k, X) x, Y2 P# w6 W多谢狼大指导,受益匪浅!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-18 09:35 , Processed in 1.058593 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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