EMU618社区

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

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

[复制链接]

该用户从未签到

发表于 2025-5-10 18:02:12 | 显示全部楼层 |阅读模式
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?8 B; M) |; G: t, V. g
2.68K Hook用 jmp 和 jsr 哪个比较好呢
, c6 a% Q% \7 g/ }# c3 t3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢% P: |5 g& V4 f7 [! a. ~
% [, y" A3 ~+ I- s
本人初学街机hack,很多问题不懂,望大神们指点
* q* d( G, L5 K& z1 W( c' Y, N

签到天数: 630 天

[LV.9]以坛为家II

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

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 11:26:36 | 显示全部楼层
jrs911 发表于 2025-5-10 19:12" }2 z' r5 U$ l( K* K
http://2006.emu618.org:6180/thread-122282-1-1.html
/ k* ^" G* q! N) u, p3 F
看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
回复 支持 反对

使用道具 举报

签到天数: 630 天

[LV.9]以坛为家II

发表于 2025-5-11 12:34:13 | 显示全部楼层
本帖最后由 jrs911 于 2025-6-19 08:52 编辑 2 e9 L: o) i7 M8 z
weucxx 发表于 2025-5-11 11:263 U; Q3 D) b; v) K; e/ O
看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
) @; S0 y: r4 s* O: ?
% v7 N; t% p" s% E( l. l6 c
具体问题到论坛的群里面找大神去问,也可以先联系下管理员疾风之狼, P( g- ~! ]0 j7 u
2 S) r  G& h1 J+ E# U0 p
https://pan.baidu.com/s/1Ale8oc4aVNq_QhLJuMnnUQ
[发帖际遇]: jrs911 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

签到天数: 1988 天

[LV.Master]伴坛终老

发表于 2025-5-11 19:42:54 | 显示全部楼层
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?3 U/ m6 j) e: r, Q5 w5 I

/ |: K4 F# {) V2 ]0 s3 g9 L. T! V68K中A7(SP)寄存器是堆栈指针,68K没有push、pop之类自动入栈出栈指令,只能手工管理堆栈( h; L" W  C& F2 l
- x5 w6 O: {$ \* m
用movem命令来手工入栈出栈
) Y' i* o6 [- T5 U  k9 I. h4 s' A: ]. @4 _
入栈:
5 W! [8 v: s6 \movem.l D0-D2/A0-A1,-(A7)
6 k1 Y# Q3 S% N8 Q0 h# j
: o* d0 s% ]6 x; ^+ i1 ~出栈:
0 }# W0 _/ ]* G, Amovem.l (A7)+,D0-D2/A0-A12 w, T  ~6 V3 ]: x; _0 r3 @* Q2 c
4 d/ w5 l4 o1 a% C- B) Y7 a; {8 f' Q9 d* R
2.68K Hook用 jmp 和 jsr 哪个比较好呢- s" g' g' v. o7 H9 G2 @

4 j5 v& {0 o6 s: u" Zjmp和jsr不同的唯一是jsr是带返回的跳转,返回指令是rts$ j3 c: w5 v: G, q4 L" m; C

( \$ W7 B% E( r2 t9 C% S) j, @jsr跳转时会把当前PC寄存器地址压入堆栈,之后用rts指令返回时会把地址恢复到PC寄存器( F2 Y" n" z+ _: F& P) o0 x7 J2 |
$ k( h! p: c) v9 l1 {& L1 V$ ^  E  v
jmp和jsr有无跳转长度限制不记得了
* g7 R- v  Q% x. }/ u( ]" P! o0 Q3 R" ]% {) g5 O! i' A* K$ C
3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢- C' k- p8 P0 m6 M/ q/ A

9 h% Y  R" Q% I问deepseek AI去
7 }/ `3 l5 M7 i. W, _
: m1 ?: Y0 j! Z, M$ Y
[发帖际遇]: 疾风之狼 在网吧通宵,花了 10 个 柠檬. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 21:39:11 | 显示全部楼层
疾风之狼 发表于 2025-5-11 19:428 E% o. V: w8 f! P% d  ^0 b* p
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?( ]' c8 j$ P, e0 X3 f4 H) C. \
9 h  [( \; K: S$ Q9 l5 n; A
68K中A7(SP)寄存 ...
. k4 Y/ l. S0 L) q
多谢狼大指导,受益匪浅!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-24 19:20 , Processed in 1.068359 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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