EMU618社区

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

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

[复制链接]

该用户从未签到

发表于 2025-5-10 18:02:12 | 显示全部楼层 |阅读模式
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?. W* |/ s% a( ^6 `" X
2.68K Hook用 jmp 和 jsr 哪个比较好呢
! j! K4 R' ]; Q2 _: ~0 A" d" `. _3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢3 t. [4 T4 O$ v% J$ F
( Y1 m7 ?- p  y
本人初学街机hack,很多问题不懂,望大神们指点
4 D2 d% a( n$ n5 C7 }

签到天数: 691 天

[LV.9]以坛为家II

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

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 11:26:36 | 显示全部楼层
jrs911 发表于 2025-5-10 19:12% y" C( ?4 m9 s: M1 Z$ }4 X% `+ v
http://2006.emu618.org:6180/thread-122282-1-1.html

) _, _; F- X; n8 r( h看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
回复 支持 反对

使用道具 举报

签到天数: 691 天

[LV.9]以坛为家II

发表于 2025-5-11 12:34:13 | 显示全部楼层
本帖最后由 jrs911 于 2025-6-19 08:52 编辑
) P( d$ m$ R  s/ R) U  Z+ j6 `" i) G
weucxx 发表于 2025-5-11 11:26
$ @- k( u* i" n; V: M7 w  d看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
4 p: R2 k& P" g& Q/ E9 ?+ \% F
* t+ @3 A. T( `1 r
具体问题到论坛的群里面找大神去问,也可以先联系下管理员疾风之狼
- E. O1 P2 m2 l, l$ ]
; N' D! ?- d- fhttps://pan.baidu.com/s/1Ale8oc4aVNq_QhLJuMnnUQ
[发帖际遇]: jrs911 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

签到天数: 2049 天

[LV.Master]伴坛终老

发表于 2025-5-11 19:42:54 | 显示全部楼层
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?9 I! @: U* G# u8 J5 h7 j2 e

; r9 A' Z, I7 g* m4 `- D68K中A7(SP)寄存器是堆栈指针,68K没有push、pop之类自动入栈出栈指令,只能手工管理堆栈
& P$ H. M2 j4 D. u9 \+ F1 C6 q" [3 I7 l6 d
用movem命令来手工入栈出栈4 v+ v4 D9 I9 L& {4 u

6 P% R9 z7 H; t, Q! A) f; X# q入栈:& [# v$ H* ^* r  I: x, T1 q6 u
movem.l D0-D2/A0-A1,-(A7)& z) n! O. L/ n
) t; c+ ^1 C& ~3 T# @
出栈:7 q5 K- X5 O* F& V8 D
movem.l (A7)+,D0-D2/A0-A1
5 v2 c) t% B. I) R! {0 R" y: d/ a, V- |2 l" N8 {, G1 U
2.68K Hook用 jmp 和 jsr 哪个比较好呢
' b9 E2 u2 q' ^
3 c6 [# E+ b4 P2 V) S! Ejmp和jsr不同的唯一是jsr是带返回的跳转,返回指令是rts. k6 ?' V. Z" `6 y5 J0 P1 Q/ b

2 m& ^2 \) F& F2 jjsr跳转时会把当前PC寄存器地址压入堆栈,之后用rts指令返回时会把地址恢复到PC寄存器2 Z. m7 C) m! `4 k
* E% a1 v7 o4 c+ n0 e- B, K
jmp和jsr有无跳转长度限制不记得了
; ^  k7 h  d& c7 ?' x0 ~
% E. I1 U& p0 D- x  c3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
" z# |6 G, [3 N0 B5 D: n2 S
& J$ _  i" z0 `8 y; `+ j, |问deepseek AI去
& f) ?+ n9 t" Z( q0 a0 o4 A2 m6 J) p' e5 u5 F
[发帖际遇]: 疾风之狼 在网吧通宵,花了 10 个 柠檬. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 21:39:11 | 显示全部楼层
疾风之狼 发表于 2025-5-11 19:42
1 h+ G. k3 `* }5 T3 a) k7 x' z  G6 t1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
0 n% v' b+ Y$ y) `, Y3 K
- N0 ~4 }+ n( [6 }# {! r1 O68K中A7(SP)寄存 ...
# y$ m: x0 z& j: ~) s/ P) {
多谢狼大指导,受益匪浅!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-25 00:01 , Processed in 1.083984 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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