EMU618社区

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

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

[复制链接]

该用户从未签到

发表于 2025-5-10 18:02:12 | 显示全部楼层 |阅读模式
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
- S* O9 v" S+ H# V- d2.68K Hook用 jmp 和 jsr 哪个比较好呢; O; o3 c+ S6 {3 o; t
3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
  g& f5 s  P7 P0 ?- M4 }0 A+ H2 ]* W% N0 n
本人初学街机hack,很多问题不懂,望大神们指点
7 m4 u: `, Q; ^) t

签到天数: 714 天

[LV.9]以坛为家II

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

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 11:26:36 | 显示全部楼层
jrs911 发表于 2025-5-10 19:12- r5 T; y3 a8 W1 |
http://2006.emu618.org:6180/thread-122282-1-1.html
% z) J5 I% G' M% d
看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
回复 支持 反对

使用道具 举报

签到天数: 714 天

[LV.9]以坛为家II

发表于 2025-5-11 12:34:13 | 显示全部楼层
本帖最后由 jrs911 于 2025-6-19 08:52 编辑
# ], w8 X. D" V& l& m' a
weucxx 发表于 2025-5-11 11:26
* V1 y' f6 i% b4 e% z看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题

  X/ a( C8 D/ Q" B7 L  X, M/ D* w
( z) L& D7 G$ O. S* i. l具体问题到论坛的群里面找大神去问,也可以先联系下管理员疾风之狼4 \; S4 [6 i3 x+ N8 ]# j
. Y& n; t5 j6 Z8 h4 p9 R4 W: w5 a
https://pan.baidu.com/s/1Ale8oc4aVNq_QhLJuMnnUQ
[发帖际遇]: jrs911 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

签到天数: 2072 天

[LV.Master]伴坛终老

发表于 2025-5-11 19:42:54 | 显示全部楼层
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?% N( w, _" h: b3 t$ t
/ ^9 C/ w( u& W
68K中A7(SP)寄存器是堆栈指针,68K没有push、pop之类自动入栈出栈指令,只能手工管理堆栈& r8 h* ^$ E" s( |6 z

* }$ E1 k/ x  d: z8 Z0 H$ z6 _# @% i& W用movem命令来手工入栈出栈, ]  X+ i' f$ V% x6 X
+ y. _2 ]' h: u8 M
入栈:
! G* |$ Y, a6 s; N8 ]. pmovem.l D0-D2/A0-A1,-(A7)
# F( `- s- Q/ l, z% G) h+ R+ x# ?6 y
出栈:
4 o2 ]5 t% U" {3 Hmovem.l (A7)+,D0-D2/A0-A1
  b& J1 E5 z# g8 U7 z
% G) r* _3 S9 y7 O: G- K2.68K Hook用 jmp 和 jsr 哪个比较好呢9 d- K' H* w- t9 x% W# J1 f" Y
& u  [7 x1 |- G( }; \( Y
jmp和jsr不同的唯一是jsr是带返回的跳转,返回指令是rts$ f" ~$ U3 t& l4 ?1 k
  H) v( [# A. }) _! Z& Q$ {
jsr跳转时会把当前PC寄存器地址压入堆栈,之后用rts指令返回时会把地址恢复到PC寄存器$ \; y; I1 p+ p& @- s
& _; B! e4 S' l8 {8 i
jmp和jsr有无跳转长度限制不记得了
! q1 m+ f. b- y& p0 m9 P0 L* L* R; L5 M
3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢9 T' q0 U8 e1 i+ ^: U4 B1 V' B5 S. _& F

6 `$ t# I7 a, ?" X问deepseek AI去+ }8 m9 l# J5 \9 N) w- K

/ m% A2 ?$ F( @! L3 F% m0 h& A9 S
[发帖际遇]: 疾风之狼 在网吧通宵,花了 10 个 柠檬. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 21:39:11 | 显示全部楼层
疾风之狼 发表于 2025-5-11 19:42
  E+ m6 y: B, B, _1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?' y8 Z6 x& S; p
- x; f" z! X9 ^  T$ |& e$ G
68K中A7(SP)寄存 ...

5 m+ O) E: Q+ B多谢狼大指导,受益匪浅!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-16 20:30 , Processed in 1.097656 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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