EMU618社区

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

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

[复制链接]

该用户从未签到

发表于 2025-5-10 18:02:12 | 显示全部楼层 |阅读模式
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?9 h, X) m. \: b5 X
2.68K Hook用 jmp 和 jsr 哪个比较好呢% i! K  A3 i5 P1 Y+ H5 ?
3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
0 _! ?4 K% p3 [  w5 k
% d+ z" B' z  q6 }1 A本人初学街机hack,很多问题不懂,望大神们指点: Q8 E" Q$ m( i; F9 R

签到天数: 814 天

[LV.10]以坛为家III

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

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 11:26:36 | 显示全部楼层
jrs911 发表于 2025-5-10 19:12
9 j8 k. f8 }6 k+ w0 D6 dhttp://2006.emu618.org:6180/thread-122282-1-1.html

4 t$ G; O( U% x4 A$ F看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
回复 支持 反对

使用道具 举报

签到天数: 814 天

[LV.10]以坛为家III

发表于 2025-5-11 12:34:13 | 显示全部楼层
本帖最后由 jrs911 于 2025-6-19 08:52 编辑
3 P/ B! e' X( `" x8 {
weucxx 发表于 2025-5-11 11:269 U; m4 I' s, S1 F; B
看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题

6 K6 P% u0 u+ w8 Y) U' t
" T7 i0 g2 t0 f& F8 D* C0 S具体问题到论坛的群里面找大神去问,也可以先联系下管理员疾风之狼& G3 s' ^( L1 n' h1 Z
  o- Z, Z0 T# g, M
https://pan.baidu.com/s/1Ale8oc4aVNq_QhLJuMnnUQ
[发帖际遇]: jrs911 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

签到天数: 2172 天

[LV.Master]伴坛终老

发表于 2025-5-11 19:42:54 | 显示全部楼层
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?1 a8 y/ g6 H$ T5 R6 n+ s
8 S$ }1 ]( V% l4 w4 U4 J: }
68K中A7(SP)寄存器是堆栈指针,68K没有push、pop之类自动入栈出栈指令,只能手工管理堆栈- U1 ]1 T8 V5 n% g) @: x

! v/ p- T% g8 ]7 }; m: [用movem命令来手工入栈出栈5 V- ^3 d$ L4 x3 L

4 G5 T* B3 j. K: }. x入栈:" v4 R7 Q- A3 w8 [* v
movem.l D0-D2/A0-A1,-(A7)
% u/ i  h9 ~( q. p0 H0 V
% e/ [' B# r' E5 @3 R6 L出栈:5 ^6 w- t$ a0 P5 v" P* _
movem.l (A7)+,D0-D2/A0-A1
" h. w4 q( g& ~- _
& l1 Q' m& H& t* m' E: D2.68K Hook用 jmp 和 jsr 哪个比较好呢
0 ^5 k5 I7 `* v0 F2 j& Z- [9 Y
" n. F4 g: q& a  Ujmp和jsr不同的唯一是jsr是带返回的跳转,返回指令是rts
" O3 {3 c3 U9 }
+ d, U% e  r) ~  w( {7 M0 p) cjsr跳转时会把当前PC寄存器地址压入堆栈,之后用rts指令返回时会把地址恢复到PC寄存器6 C( {( m% `! d

  v) f3 J. L7 U8 O) X! [0 R) bjmp和jsr有无跳转长度限制不记得了0 A$ u9 E) S) ]! V' I+ k
' P9 [& R# ]4 E* s7 S; g
3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
# V# _5 |3 x! `1 I, O+ |2 v5 Y$ F) n7 J7 {* t0 m: ^% h% \
问deepseek AI去
7 }. S5 w) u, |/ g7 C% T3 k. B
6 y( ~) v& H5 G
[发帖际遇]: 疾风之狼 在网吧通宵,花了 10 个 柠檬. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 21:39:11 | 显示全部楼层
疾风之狼 发表于 2025-5-11 19:42
: x. Y- \, @' g3 v" O- |( M1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
- x* _+ M2 j/ l+ }# A* N% [/ y- V& W; Q# a' R5 S! P
68K中A7(SP)寄存 ...

% Q6 t& `: j- r- y$ @8 {" ]多谢狼大指导,受益匪浅!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-26 05:36 , Processed in 1.077148 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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