EMU618社区

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

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

[复制链接]

该用户从未签到

发表于 2025-5-10 18:02:12 | 显示全部楼层 |阅读模式
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?- n4 w7 P; L* }; n/ U
2.68K Hook用 jmp 和 jsr 哪个比较好呢
" j; N$ F- E' `8 u/ @4 e3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
+ m( O6 u. C& Q4 ]& K1 @; c3 e, \5 B1 H2 T2 |! ~
本人初学街机hack,很多问题不懂,望大神们指点
7 `8 X" @( h) W8 i

签到天数: 823 天

[LV.10]以坛为家III

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

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 11:26:36 | 显示全部楼层
jrs911 发表于 2025-5-10 19:120 x9 y, n4 }& A: v% |
http://2006.emu618.org:6180/thread-122282-1-1.html
- W5 t: q: |2 ^$ G. G
看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
回复 支持 反对

使用道具 举报

签到天数: 823 天

[LV.10]以坛为家III

发表于 2025-5-11 12:34:13 | 显示全部楼层
本帖最后由 jrs911 于 2025-6-19 08:52 编辑
1 K; d1 S& }0 x( k+ y
weucxx 发表于 2025-5-11 11:26' @( S! K" h. a( q# O! C0 H# }
看过这个教程,主要讲的是debug的用法,但没有讲过我上述的这些问题
3 `, i( `8 B2 j4 g4 M
, a: f; a; u1 t
具体问题到论坛的群里面找大神去问,也可以先联系下管理员疾风之狼
# O9 X+ D! r4 G5 A* t+ R
& P. t4 t% t. C# ]( yhttps://pan.baidu.com/s/1Ale8oc4aVNq_QhLJuMnnUQ
[发帖际遇]: jrs911 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

签到天数: 2180 天

[LV.Master]伴坛终老

发表于 2025-5-11 19:42:54 | 显示全部楼层
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
, {4 ]: q8 U& k' H$ C6 N3 ?; j& X$ p" s7 B
68K中A7(SP)寄存器是堆栈指针,68K没有push、pop之类自动入栈出栈指令,只能手工管理堆栈
# R  `' L% `) V+ [/ ]$ C' x3 ~( S- x" Z+ t
用movem命令来手工入栈出栈
) A9 q* [- n# R( ~+ l* |& K5 Q
) D; ]; p4 ~( [. b$ k) J入栈:
/ r$ L" `; \1 v8 m8 emovem.l D0-D2/A0-A1,-(A7)$ U; [6 [/ w9 l' e6 h! ?2 o& i% _
0 o  D! W6 [/ `" {  a" q! [
出栈:
; W/ @7 u# h* Y: W: P" T% A+ q6 ^3 amovem.l (A7)+,D0-D2/A0-A1
6 d6 F. k; i( M2 v" l- R8 c
4 ]: l5 g9 B+ Y5 r2.68K Hook用 jmp 和 jsr 哪个比较好呢
. p! {9 v) v. ^" C; j' Y) F* U* x/ j+ ^9 F- f9 n. H8 T& s) S
jmp和jsr不同的唯一是jsr是带返回的跳转,返回指令是rts2 k: [8 j$ [: X9 A3 ~. Q/ v+ J$ C' `
/ c# z# j# z, j
jsr跳转时会把当前PC寄存器地址压入堆栈,之后用rts指令返回时会把地址恢复到PC寄存器
+ v% v/ G2 q1 b" N) ^
  g9 v4 N; W9 mjmp和jsr有无跳转长度限制不记得了* [5 Y' b1 x7 ~0 c

( i2 I+ q6 z; _  |* n3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢: e' V1 K# g0 f7 z# _+ ^( a& T

5 O* I2 u4 R% P1 G1 D4 @" o问deepseek AI去# G# X3 a, \: o  q

/ T. j4 o2 g) v7 K
[发帖际遇]: 疾风之狼 在网吧通宵,花了 10 个 柠檬. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2025-5-11 21:39:11 | 显示全部楼层
疾风之狼 发表于 2025-5-11 19:424 x$ o% r* Z5 R& d# M1 E6 ?
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?4 Z% H8 N$ }0 y5 _

) L  V" j, w7 K; F" Q68K中A7(SP)寄存 ...

' m$ s, j" \& X# e; m7 q+ A6 `多谢狼大指导,受益匪浅!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-3 09:09 , Processed in 1.093750 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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