EMU618社区

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

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

[复制链接]

该用户从未签到

发表于 2025-5-10 18:02:12 | 显示全部楼层 |阅读模式
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?, @6 W" j# }* K: f* n, Z
2.68K Hook用 jmp 和 jsr 哪个比较好呢' H) _# _# o% o1 X
3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
. \7 m9 b' M+ a. {) f' l1 A$ q# [( B" t
本人初学街机hack,很多问题不懂,望大神们指点' Q5 E6 u+ B) c+ P

签到天数: 794 天

[LV.10]以坛为家III

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

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 11:26:36 | 显示全部楼层
jrs911 发表于 2025-5-10 19:12
, U+ M. i1 D) rhttp://2006.emu618.org:6180/thread-122282-1-1.html

& P3 x3 ~, B' e3 J5 z4 c3 }* j( e. W看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
回复 支持 反对

使用道具 举报

签到天数: 794 天

[LV.10]以坛为家III

发表于 2025-5-11 12:34:13 | 显示全部楼层
本帖最后由 jrs911 于 2025-6-19 08:52 编辑 4 C  L. O8 b* m6 O! ?
weucxx 发表于 2025-5-11 11:26
: f6 U' Y$ a$ Z看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
" ~5 a" D7 T* `' P
9 d) G" l  w4 q9 H
具体问题到论坛的群里面找大神去问,也可以先联系下管理员疾风之狼' X: P) z! l7 E0 F! e$ a
# \, \4 J$ o2 U2 p
https://pan.baidu.com/s/1Ale8oc4aVNq_QhLJuMnnUQ
[发帖际遇]: jrs911 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

签到天数: 2151 天

[LV.Master]伴坛终老

发表于 2025-5-11 19:42:54 | 显示全部楼层
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?* g: J" B2 ~" `3 A9 J! V! `

1 p3 R4 t$ d4 H0 i68K中A7(SP)寄存器是堆栈指针,68K没有push、pop之类自动入栈出栈指令,只能手工管理堆栈
& e3 p1 q" h4 y
% ^4 y: j& O$ j" c* Z1 R  _  F用movem命令来手工入栈出栈  U- T+ w' }3 r# H
5 k/ }6 F+ [$ r% G
入栈:
! ]& j1 |; D. [- _8 tmovem.l D0-D2/A0-A1,-(A7)
6 Q$ W5 s  N1 ]9 }
3 H9 d; r& z$ j& {出栈:
1 U, A6 {- h) s7 U1 Cmovem.l (A7)+,D0-D2/A0-A17 V/ j# O) _: F; \+ z$ a

! b% J% l4 z6 c2 z+ a  }: X2.68K Hook用 jmp 和 jsr 哪个比较好呢
- z- h; s" {- W- q
- k* Z+ P0 s2 X  N4 T2 r! n5 mjmp和jsr不同的唯一是jsr是带返回的跳转,返回指令是rts) S( Y4 k8 R1 m' d* S1 \  e
# h( T4 Z% v5 m  E" f, C
jsr跳转时会把当前PC寄存器地址压入堆栈,之后用rts指令返回时会把地址恢复到PC寄存器2 B6 B3 }; w9 e0 v( B5 l+ C$ ?; H

) _, k4 F5 C7 ^/ C; g5 Njmp和jsr有无跳转长度限制不记得了
0 d) c6 M1 q; K4 L
- |5 N0 E" j9 b6 E. `9 D3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
9 Y' N, g$ X- d
: M+ P* c  _6 _1 q# \$ w- X  e问deepseek AI去
3 p& d$ o5 {* K1 E% S- `7 v
0 |% ]% ?1 o# T) u5 R
[发帖际遇]: 疾风之狼 在网吧通宵,花了 10 个 柠檬. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 21:39:11 | 显示全部楼层
疾风之狼 发表于 2025-5-11 19:42. O6 N: q0 g! I
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?, n  V7 S) r, U4 O) A
* r& A  S" q# o
68K中A7(SP)寄存 ...
$ I2 k: F6 E# B
多谢狼大指导,受益匪浅!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-5 23:40 , Processed in 1.063476 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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