EMU618社区

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

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

[复制链接]

该用户从未签到

发表于 2025-5-10 18:02:12 | 显示全部楼层 |阅读模式
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
' b3 ^  G# m: U* V, t2.68K Hook用 jmp 和 jsr 哪个比较好呢! Y3 f3 m$ d2 H/ S+ N
3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢1 {3 A/ N/ Q* x$ u2 j. B8 @# u; L
8 b) A  c) C, O& H$ X7 c) G  L! n1 V
本人初学街机hack,很多问题不懂,望大神们指点% G) O  b9 Y8 J$ `! ~$ j9 L

签到天数: 777 天

[LV.10]以坛为家III

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

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 11:26:36 | 显示全部楼层
jrs911 发表于 2025-5-10 19:12
+ U/ M3 t( A! k- e. V' Phttp://2006.emu618.org:6180/thread-122282-1-1.html
0 U8 K# B9 ^7 t6 D
看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
回复 支持 反对

使用道具 举报

签到天数: 777 天

[LV.10]以坛为家III

发表于 2025-5-11 12:34:13 | 显示全部楼层
本帖最后由 jrs911 于 2025-6-19 08:52 编辑
: n% N/ q, H" N. S# ]7 |% |: a2 N
weucxx 发表于 2025-5-11 11:260 A' C" R) A6 l. n! `! ^& q6 Z
看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题

9 `$ Y$ R; d& L
6 {4 [! G( m8 Z* d) ]具体问题到论坛的群里面找大神去问,也可以先联系下管理员疾风之狼: O6 f" X$ _9 j+ D9 Z! l& b! _$ H

- S7 c9 _  d2 i3 l. ~% n$ Z5 Fhttps://pan.baidu.com/s/1Ale8oc4aVNq_QhLJuMnnUQ
[发帖际遇]: jrs911 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

签到天数: 2135 天

[LV.Master]伴坛终老

发表于 2025-5-11 19:42:54 | 显示全部楼层
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?  g$ p) S6 `, G
# j* ], Y; H1 t1 I0 o" T; ^
68K中A7(SP)寄存器是堆栈指针,68K没有push、pop之类自动入栈出栈指令,只能手工管理堆栈
. h9 J! {: V) c$ j: j7 ^# ?8 b  @' V4 Y1 {- Y
用movem命令来手工入栈出栈& V, {) U2 N$ ]( n( M: |

6 _/ s1 B$ _: \) O# Z入栈:! v7 O: x) O  L7 a
movem.l D0-D2/A0-A1,-(A7)
* W' ?/ v7 p( S
; {* L# |% ?* H" W出栈:+ L) `& A- v8 s- I
movem.l (A7)+,D0-D2/A0-A1
: `% X" W) ?8 n- M5 O6 }# W+ F' T* r% ^6 }! _
2.68K Hook用 jmp 和 jsr 哪个比较好呢
, D% ~4 s- @; \5 Z! o8 M  n  G4 K! V( l/ ?  [7 Z
jmp和jsr不同的唯一是jsr是带返回的跳转,返回指令是rts1 u( U# _9 ?+ u1 ]

0 h0 g7 ~5 C0 Z' }; A, x' b1 ojsr跳转时会把当前PC寄存器地址压入堆栈,之后用rts指令返回时会把地址恢复到PC寄存器
& K1 R$ d! m; h0 u% }! @! q( t8 J$ B# e' s- A
jmp和jsr有无跳转长度限制不记得了
5 v( L! u0 K4 X2 z! d% Y
' {( T# {$ D- R1 [! I3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
- ?% L0 w6 z  U! x8 S* [& `. h2 |& e( _$ K  m
问deepseek AI去
( J" |: b" Y7 [+ U5 G9 E% E( q% |/ u2 ~3 F/ _2 ?! G
[发帖际遇]: 疾风之狼 在网吧通宵,花了 10 个 柠檬. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 21:39:11 | 显示全部楼层
疾风之狼 发表于 2025-5-11 19:42
/ h! e7 ~8 S9 }4 Y4 g% w. x1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
( O- A4 s% J! h7 `$ m# g
' Q; `# I) W( \2 A3 `& G: p68K中A7(SP)寄存 ...
( }  g# V2 _9 T$ H+ P  [- C
多谢狼大指导,受益匪浅!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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