EMU618社区

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

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

[复制链接]

该用户从未签到

发表于 2025-5-10 18:02:12 | 显示全部楼层 |阅读模式
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?9 V  F  S" ], a5 q! T7 e
2.68K Hook用 jmp 和 jsr 哪个比较好呢
- f2 w" C0 H9 X- N6 ]3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢5 N/ j0 Q" m7 Y" b0 C

$ ?8 J) S: [$ r% \  z2 j' _本人初学街机hack,很多问题不懂,望大神们指点4 @: g) g. J! T0 P2 V% g

签到天数: 691 天

[LV.9]以坛为家II

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

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 11:26:36 | 显示全部楼层
jrs911 发表于 2025-5-10 19:12$ q* Q, [, R8 a) }' O
http://2006.emu618.org:6180/thread-122282-1-1.html
" N" L; d. m0 H9 j( T
看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
回复 支持 反对

使用道具 举报

签到天数: 691 天

[LV.9]以坛为家II

发表于 2025-5-11 12:34:13 | 显示全部楼层
本帖最后由 jrs911 于 2025-6-19 08:52 编辑
5 _5 c& u/ ]5 _6 t% Z
weucxx 发表于 2025-5-11 11:26
) J& Q, @9 E# J8 y& L3 m! b! X& a看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
  c6 R6 N. d2 W" q2 J/ d4 k

; Y1 M6 b1 z' W2 ^; B4 M( O" U具体问题到论坛的群里面找大神去问,也可以先联系下管理员疾风之狼
6 g8 Y+ D, v4 E+ B& ]/ \: w& B
4 ]& Z' t9 g( \* |6 P* lhttps://pan.baidu.com/s/1Ale8oc4aVNq_QhLJuMnnUQ
[发帖际遇]: jrs911 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

签到天数: 2049 天

[LV.Master]伴坛终老

发表于 2025-5-11 19:42:54 | 显示全部楼层
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?% r3 z; w+ N$ o, ~7 m. Q

- [2 d' x6 W# q( V: @68K中A7(SP)寄存器是堆栈指针,68K没有push、pop之类自动入栈出栈指令,只能手工管理堆栈
9 m+ E* r  H& q9 g& u* X2 D% f) ^- j' o3 ~3 d
用movem命令来手工入栈出栈
& M4 u( {4 Z6 Y5 i) e
# {9 `3 g* `$ c, g: |" S入栈:* h& v% d% H& C9 @0 j* `6 B
movem.l D0-D2/A0-A1,-(A7)8 b# A3 G6 _) k: S
8 h# [: @" s: s  Y6 Y: p
出栈:
& N6 v7 m, ]" T) V2 e, ~& Dmovem.l (A7)+,D0-D2/A0-A1/ E7 g  h8 P+ v0 u
! f7 J9 X4 k$ x$ ~. Q
2.68K Hook用 jmp 和 jsr 哪个比较好呢
" T+ I9 W4 V5 c/ R- }+ w$ p7 `( X) s, Z, O! M% c" z
jmp和jsr不同的唯一是jsr是带返回的跳转,返回指令是rts/ F5 h' X; _. w7 D9 O, ^" w* ^
3 n) ~) j& n5 N  C
jsr跳转时会把当前PC寄存器地址压入堆栈,之后用rts指令返回时会把地址恢复到PC寄存器9 b, y& ?6 Y0 \3 X# w, \6 p# u

  H8 z: @' o+ U8 K5 F1 ^jmp和jsr有无跳转长度限制不记得了
. X8 G- D0 N" ]
) Q" i7 `4 R, K8 K9 Y5 G3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
3 r$ \( A. |& K# c) c' E$ n) B5 E, z6 j6 O  ^- f
问deepseek AI去7 ]) s- v& L3 m# ~, q$ P
# Q3 k. y4 ?0 D; r
[发帖际遇]: 疾风之狼 在网吧通宵,花了 10 个 柠檬. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 21:39:11 | 显示全部楼层
疾风之狼 发表于 2025-5-11 19:42- M( D6 e- D6 ^! V- m3 x1 Q
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?% P9 Z! }( w6 P( D; I
2 N; A' V2 g1 ^9 `% {
68K中A7(SP)寄存 ...

3 J( S% U8 n1 }1 \5 A& Q6 }多谢狼大指导,受益匪浅!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-24 23:37 , Processed in 1.077149 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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