EMU618社区

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

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

[复制链接]

该用户从未签到

发表于 2025-5-10 18:02:12 | 显示全部楼层 |阅读模式
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
* a0 {6 S' }' c2.68K Hook用 jmp 和 jsr 哪个比较好呢
* J# m! R+ `1 P3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
1 c% @! T/ X5 _) r8 ?9 N. m6 m+ e; t' w% F: w# k
本人初学街机hack,很多问题不懂,望大神们指点
' A# o1 U  s2 H6 ~6 ~2 e+ _1 Y

签到天数: 669 天

[LV.9]以坛为家II

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

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 11:26:36 | 显示全部楼层
jrs911 发表于 2025-5-10 19:12
5 m1 S1 s4 V3 x9 I/ I3 Bhttp://2006.emu618.org:6180/thread-122282-1-1.html

3 J% z4 A+ L- [1 F8 U8 _2 ]看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
回复 支持 反对

使用道具 举报

签到天数: 669 天

[LV.9]以坛为家II

发表于 2025-5-11 12:34:13 | 显示全部楼层
本帖最后由 jrs911 于 2025-6-19 08:52 编辑 : K% n" K* |% A
weucxx 发表于 2025-5-11 11:26  @% H; u: K) Q" p! s
看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
. e# M4 H: M, N- _* b0 u, R
: @% t- @$ P5 l
具体问题到论坛的群里面找大神去问,也可以先联系下管理员疾风之狼) N* T( m* e- [; d0 s: i( {7 n
4 J% m* J; `6 t, B# D
https://pan.baidu.com/s/1Ale8oc4aVNq_QhLJuMnnUQ
[发帖际遇]: jrs911 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

签到天数: 2026 天

[LV.Master]伴坛终老

发表于 2025-5-11 19:42:54 | 显示全部楼层
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
& X8 A7 D5 S: E. D
/ u9 W* c0 f% W+ {; s0 j9 C9 l3 ^68K中A7(SP)寄存器是堆栈指针,68K没有push、pop之类自动入栈出栈指令,只能手工管理堆栈
% }7 Y4 {0 G9 k! g2 k) y. m; \2 O3 l9 L5 g5 b; i5 W+ n/ v/ m
用movem命令来手工入栈出栈
. q2 l; _: i0 M( m7 K' v6 M( L  v" z" C
入栈:
2 |8 N, l1 }: ?* S: lmovem.l D0-D2/A0-A1,-(A7)2 j. V2 I6 _; ~, e. I* X& m6 @( o

. E" d/ M4 t# P, |出栈:
" j9 @, ^, D* x& omovem.l (A7)+,D0-D2/A0-A1
2 C: G! p" S$ o4 |% l0 N: I9 g' |8 b& g6 v
2.68K Hook用 jmp 和 jsr 哪个比较好呢
9 O, ]; ^, A9 j, b$ b5 l  p6 m" d4 T' V
5 B' S6 _% Q6 Q* b% P* ~jmp和jsr不同的唯一是jsr是带返回的跳转,返回指令是rts/ V1 K) R6 A; ^; B2 A, O( k
5 Z8 h/ L6 ]* I. S" h
jsr跳转时会把当前PC寄存器地址压入堆栈,之后用rts指令返回时会把地址恢复到PC寄存器8 U+ ^3 p6 \3 U& x2 F$ g

: T6 H. Y- v* o# m$ _' D* v: zjmp和jsr有无跳转长度限制不记得了' G/ u- R2 j4 U

; g) A' L! L& g9 R5 y3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
% S: N+ A. ^( _  k! m. Y
  P' Z$ w% o* Y问deepseek AI去) c! L6 |% A% e
/ x$ g+ G% W6 ~% i. D5 [
[发帖际遇]: 疾风之狼 在网吧通宵,花了 10 个 柠檬. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 21:39:11 | 显示全部楼层
疾风之狼 发表于 2025-5-11 19:42" s3 I5 h3 V* p+ X- g+ Q8 S
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?1 i6 B6 X" S5 y, Y
0 x/ G- [' m2 E/ A) C/ n3 [* |
68K中A7(SP)寄存 ...

! Z; ~6 O: |' o6 i' d5 ~多谢狼大指导,受益匪浅!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-2 06:27 , Processed in 1.080078 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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