EMU618社区

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

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

[复制链接]

该用户从未签到

发表于 2025-5-10 18:02:12 | 显示全部楼层 |阅读模式
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
# [: c8 G3 M5 w* u) Y2.68K Hook用 jmp 和 jsr 哪个比较好呢
7 Z2 H, Z6 Q3 Z% f" Z0 X9 i7 j% E3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
, [# z$ r% W2 A) ]' J/ u! a4 `. @( e; B, \0 `& D. q
本人初学街机hack,很多问题不懂,望大神们指点+ C( x& o+ b* c. U+ g# t% W

签到天数: 642 天

[LV.9]以坛为家II

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

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 11:26:36 | 显示全部楼层
jrs911 发表于 2025-5-10 19:12
: D) j. }' w1 S, rhttp://2006.emu618.org:6180/thread-122282-1-1.html
4 F. _# ~( n5 u9 K
看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
回复 支持 反对

使用道具 举报

签到天数: 642 天

[LV.9]以坛为家II

发表于 2025-5-11 12:34:13 | 显示全部楼层
本帖最后由 jrs911 于 2025-6-19 08:52 编辑 ; H0 s5 E( w* ?6 }" O9 I0 t
weucxx 发表于 2025-5-11 11:261 D' ]6 |; O* X' ]: q6 V
看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题

! e$ n( a& U  p' w
# V1 n; G$ k" J具体问题到论坛的群里面找大神去问,也可以先联系下管理员疾风之狼
9 d) D8 k' r) V5 b* ^& d8 |9 E9 ]; \* P
https://pan.baidu.com/s/1Ale8oc4aVNq_QhLJuMnnUQ
[发帖际遇]: jrs911 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

签到天数: 2000 天

[LV.Master]伴坛终老

发表于 2025-5-11 19:42:54 | 显示全部楼层
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?% e2 K3 {4 Z9 z. B. z9 ?5 ?. p+ d

+ Z* d  k$ s. C68K中A7(SP)寄存器是堆栈指针,68K没有push、pop之类自动入栈出栈指令,只能手工管理堆栈
7 S2 D, V% j- a' }: E9 u; W: [: M5 G, h* r5 }$ X
用movem命令来手工入栈出栈
8 o. ^2 }; l% }8 a" G& ]% m+ x6 Z* B! e4 @) O+ r* O0 v: g
入栈:
7 Y3 v4 B. k2 p# n1 ^" dmovem.l D0-D2/A0-A1,-(A7)
- Y  J  E" l  j7 B7 r7 l& y& V5 k% n! f; W' c
出栈:
) e2 m8 x* L3 A4 l0 d& c- emovem.l (A7)+,D0-D2/A0-A1  l2 o3 X* W6 y$ i
  W2 {9 q9 G0 _$ a: w
2.68K Hook用 jmp 和 jsr 哪个比较好呢
, R- P+ G; t( h
& J/ v; J: c3 h/ T) q; Ejmp和jsr不同的唯一是jsr是带返回的跳转,返回指令是rts" @8 z! M7 O! g0 j
& M  g; c! P. Z/ y
jsr跳转时会把当前PC寄存器地址压入堆栈,之后用rts指令返回时会把地址恢复到PC寄存器8 M3 X8 S/ T8 v, D, [

  s6 M) R1 _" k7 A; kjmp和jsr有无跳转长度限制不记得了
, x+ X4 e4 O) E$ [1 a2 T0 h1 V1 [& Z8 ]' T
3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢$ T3 t! \9 z$ O) A
& j. ]* v' K9 H+ G, L7 z
问deepseek AI去, @, x* y# f, Y/ _7 T

! x# `, E) `1 L! g5 \0 W7 a: ~8 s
[发帖际遇]: 疾风之狼 在网吧通宵,花了 10 个 柠檬. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 21:39:11 | 显示全部楼层
疾风之狼 发表于 2025-5-11 19:422 J  H: O+ d" y& W" N1 h* k
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
& R1 [2 _8 S* t
% q+ w6 l" a) c68K中A7(SP)寄存 ...
8 `% h, a" C: D+ W
多谢狼大指导,受益匪浅!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-6 22:35 , Processed in 1.082031 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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