签到天数: 1949 天 [LV.Master]伴坛终老
|
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?* A; @5 W0 w( }+ K$ ^3 A) {
: j' Y2 V8 ]0 e, R68K中A7(SP)寄存器是堆栈指针,68K没有push、pop之类自动入栈出栈指令,只能手工管理堆栈' B+ l: m4 X. u1 q# K3 r
$ q* S2 E* ?- }7 t, E3 q2 ?" L6 r9 R5 z
用movem命令来手工入栈出栈, b1 ]! d- a8 f: l6 T7 J: p9 i: X9 }! w
. f( B& |# D! s7 Y- U* A) |入栈:
o$ t! {, y4 smovem.l D0-D2/A0-A1,-(A7)
) `! k! N. N7 \! p9 I4 g# c' n4 z/ ?2 g7 ]. ~' D& _5 C$ w/ \: y
出栈:
# {, Q" G" ~6 U" x& n' emovem.l (A7)+,D0-D2/A0-A1
+ i+ O$ l! s1 [% \) e- V# m9 G& h; Z9 z1 Q% u* Q! V- q
2.68K Hook用 jmp 和 jsr 哪个比较好呢% a+ D1 Z5 Q" u( y. E V* @& F
6 L/ N; g+ K+ e5 K$ Z& _- Z3 Ejmp和jsr不同的唯一是jsr是带返回的跳转,返回指令是rts# @/ M: |4 \, ~3 F* W7 r/ M
4 r; J. k9 a9 O0 P8 Ljsr跳转时会把当前PC寄存器地址压入堆栈,之后用rts指令返回时会把地址恢复到PC寄存器
m4 \/ z$ ]. ?" A
: d* T6 o7 K+ \9 V0 i9 djmp和jsr有无跳转长度限制不记得了
6 s+ i# h3 t) D& W6 C# M2 L
& K0 M7 Z) k9 k" b7 _" w% J" k3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢6 R; _& g0 Q' Y) P
- l' m4 U7 Y6 A4 ^6 m问deepseek AI去4 Q# A8 [2 k* s2 T4 q5 w; ?7 {
8 u6 Q) t2 f4 N7 G6 [( [& r+ F5 v# L9 I
|
|