签到天数: 2094 天 [LV.Master]伴坛终老
|
发表于 2025-5-11 19:42:54
|
显示全部楼层
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
# U) n0 m/ R, |# H, p% [1 i. T1 w8 z+ F
68K中A7(SP)寄存器是堆栈指针,68K没有push、pop之类自动入栈出栈指令,只能手工管理堆栈4 k M0 D8 R, L6 H9 o
5 h# d6 u$ g. Z+ V- r& Y用movem命令来手工入栈出栈
' E$ E' U4 @, [' D. p# F; U% d/ I: C4 v" u
( d- m' h D* h N2 u入栈:, x3 h1 q8 z( w4 P8 ?/ m1 c O
movem.l D0-D2/A0-A1,-(A7)
! O) B% ]/ _ W* r& W2 w* k, K: }1 @, q" x( f! j
出栈:! [2 ]4 T8 A3 F) q& O5 m0 X5 h
movem.l (A7)+,D0-D2/A0-A1
2 ?) _+ c' g- H5 ?6 h! A+ W. V; _5 |- V% f$ L: e" Q1 J! s7 r& {
2.68K Hook用 jmp 和 jsr 哪个比较好呢; ~7 X2 \1 O$ M: d+ O
8 v8 I4 O! Z' [, M7 l) A2 gjmp和jsr不同的唯一是jsr是带返回的跳转,返回指令是rts
* Y3 X5 a! a$ g& v' P
' R. n3 J$ x- }0 J2 [5 {+ |jsr跳转时会把当前PC寄存器地址压入堆栈,之后用rts指令返回时会把地址恢复到PC寄存器7 b9 v h4 j( g. d h4 u
; z7 t/ Y: H4 X/ I/ |3 l- x" {jmp和jsr有无跳转长度限制不记得了 D* P0 j) {; L! G: R
* ~- T" z8 Q* p6 U) X0 L# R6 }& u3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
) @1 l3 L2 T+ ~, ~
* ^* s: R) h6 m2 h# ^- _6 g问deepseek AI去
- ^4 w. Z. i7 R! _9 E% k+ E: K( v* u8 }+ e4 e+ `; y( H8 a" F3 ~
|
|