签到天数: 2000 天 [LV.Master]伴坛终老
|
发表于 2025-5-11 19:42:54
|
显示全部楼层
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?% e2 K3 {4 Z9 z. B. z9 ?5 ?. p+ d
+ Z* d k$ s. C68K中A7(SP)寄存器是堆栈指针,68K没有push、pop之类自动入栈出栈指令,只能手工管理堆栈
7 S2 D, V% j- a' }: E9 u; W: [: M5 G, h* r5 }$ X
用movem命令来手工入栈出栈
8 o. ^2 }; l% }8 a" G& ]% m+ x6 Z* B! e4 @) O+ r* O0 v: g
入栈:
7 Y3 v4 B. k2 p# n1 ^" dmovem.l D0-D2/A0-A1,-(A7)
- Y J E" l j7 B7 r7 l& y& V5 k% n! f; W' c
出栈:
) e2 m8 x* L3 A4 l0 d& c- emovem.l (A7)+,D0-D2/A0-A1 l2 o3 X* W6 y$ i
W2 {9 q9 G0 _$ a: w
2.68K Hook用 jmp 和 jsr 哪个比较好呢
, R- P+ G; t( h
& J/ v; J: c3 h/ T) q; Ejmp和jsr不同的唯一是jsr是带返回的跳转,返回指令是rts" @8 z! M7 O! g0 j
& M g; c! P. Z/ y
jsr跳转时会把当前PC寄存器地址压入堆栈,之后用rts指令返回时会把地址恢复到PC寄存器8 M3 X8 S/ T8 v, D, [
s6 M) R1 _" k7 A; kjmp和jsr有无跳转长度限制不记得了
, x+ X4 e4 O) E$ [1 a2 T0 h1 V1 [& Z8 ]' T
3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢$ T3 t! \9 z$ O) A
& j. ]* v' K9 H+ G, L7 z
问deepseek AI去, @, x* y# f, Y/ _7 T
! x# `, E) `1 L! g5 \0 W7 a: ~8 s |
|