EMU618社区

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

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

[复制链接]

该用户从未签到

发表于 2025-5-10 18:02:12 | 显示全部楼层 |阅读模式
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
* O  ]+ ]8 F% |9 l2.68K Hook用 jmp 和 jsr 哪个比较好呢
; }7 c. P5 l) W$ M* ?3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
* ]6 P" n/ j! l/ S+ t4 f. _" P7 p2 O: \7 ?% j( w
本人初学街机hack,很多问题不懂,望大神们指点
" b" n% k& h1 I0 g, W5 E9 E' p

签到天数: 650 天

[LV.9]以坛为家II

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

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 11:26:36 | 显示全部楼层
jrs911 发表于 2025-5-10 19:12$ s7 b$ ~7 ~/ ], B' G7 {
http://2006.emu618.org:6180/thread-122282-1-1.html

5 a' w# w, B8 H" J: O看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
回复 支持 反对

使用道具 举报

签到天数: 650 天

[LV.9]以坛为家II

发表于 2025-5-11 12:34:13 | 显示全部楼层
本帖最后由 jrs911 于 2025-6-19 08:52 编辑   ~& S1 g; k: w" `" }
weucxx 发表于 2025-5-11 11:26$ g  ^, R) y1 s
看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
! e. ^. q2 I1 X0 n! m
6 T, W. u; W: c9 N8 W) d
具体问题到论坛的群里面找大神去问,也可以先联系下管理员疾风之狼7 h- N2 m* b1 y( P1 P
% \9 w' q8 ~1 ~  n1 b
https://pan.baidu.com/s/1Ale8oc4aVNq_QhLJuMnnUQ
[发帖际遇]: jrs911 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

签到天数: 2008 天

[LV.Master]伴坛终老

发表于 2025-5-11 19:42:54 | 显示全部楼层
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?* D8 m; E/ q( U/ s

. r/ Z6 P- J6 {: `8 q& [% ?68K中A7(SP)寄存器是堆栈指针,68K没有push、pop之类自动入栈出栈指令,只能手工管理堆栈
+ l: |, e- X6 y; g& I9 U. P4 b7 M: S
用movem命令来手工入栈出栈
! a: e- W+ l& s9 s9 h: \
3 h) d) N- g2 R! X3 P入栈:
7 k' r2 u; x: h- w- ~movem.l D0-D2/A0-A1,-(A7)
$ m0 b, b& q6 x. ?% j2 B6 ]( r& e; D/ A& |  L* N
出栈:
9 J% a+ `2 k8 K6 c$ @" D1 `movem.l (A7)+,D0-D2/A0-A1- [& S0 R4 z( v6 m4 E

2 s. V* q& q" w/ ?% [  H2.68K Hook用 jmp 和 jsr 哪个比较好呢4 L! a' B8 |" r
) }' y* |0 f' l: a4 [5 T
jmp和jsr不同的唯一是jsr是带返回的跳转,返回指令是rts
+ y! @* I( \9 N; r# H5 \: z/ g) t; G2 X/ c+ C8 n' i
jsr跳转时会把当前PC寄存器地址压入堆栈,之后用rts指令返回时会把地址恢复到PC寄存器% D& H& u% t* X( k- t0 j0 ~: Y2 Q: q

# V0 q% c/ K2 a; yjmp和jsr有无跳转长度限制不记得了
% R" y* f; E: i1 j5 J
% A- G! _' R/ J% u) v3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
) u# o6 `6 t! g* F8 k0 C% G8 U( K! I9 O" Z8 F0 L3 X
问deepseek AI去1 c  O: J' N0 k) B( L$ O

2 `, X2 y3 V& p1 C) |: o( M
[发帖际遇]: 疾风之狼 在网吧通宵,花了 10 个 柠檬. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 21:39:11 | 显示全部楼层
疾风之狼 发表于 2025-5-11 19:42- W& e+ \. h0 c0 `' ?: K
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
, d; S# z" r% |1 r, x( x4 _" q$ {3 m
2 W" W& ^) B' w2 T% c68K中A7(SP)寄存 ...
( O% u# x7 ?# _  M" J8 l
多谢狼大指导,受益匪浅!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-14 23:31 , Processed in 1.067383 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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