签到天数: 2135 天 [LV.Master]伴坛终老
|
发表于 2025-5-11 19:42:54
|
显示全部楼层
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令? g$ p) S6 `, G
# j* ], Y; H1 t1 I0 o" T; ^
68K中A7(SP)寄存器是堆栈指针,68K没有push、pop之类自动入栈出栈指令,只能手工管理堆栈
. h9 J! {: V) c$ j: j7 ^# ?8 b @' V4 Y1 {- Y
用movem命令来手工入栈出栈& V, {) U2 N$ ]( n( M: |
6 _/ s1 B$ _: \) O# Z入栈:! v7 O: x) O L7 a
movem.l D0-D2/A0-A1,-(A7)
* W' ?/ v7 p( S
; {* L# |% ?* H" W出栈:+ L) `& A- v8 s- I
movem.l (A7)+,D0-D2/A0-A1
: `% X" W) ?8 n- M5 O6 }# W+ F' T* r% ^6 }! _
2.68K Hook用 jmp 和 jsr 哪个比较好呢
, D% ~4 s- @; \5 Z! o8 M n G4 K! V( l/ ? [7 Z
jmp和jsr不同的唯一是jsr是带返回的跳转,返回指令是rts1 u( U# _9 ?+ u1 ]
0 h0 g7 ~5 C0 Z' }; A, x' b1 ojsr跳转时会把当前PC寄存器地址压入堆栈,之后用rts指令返回时会把地址恢复到PC寄存器
& K1 R$ d! m; h0 u% }! @! q( t8 J$ B# e' s- A
jmp和jsr有无跳转长度限制不记得了
5 v( L! u0 K4 X2 z! d% Y
' {( T# {$ D- R1 [! I3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
- ?% L0 w6 z U! x8 S* [& `. h2 |& e( _$ K m
问deepseek AI去
( J" |: b" Y7 [+ U5 G9 E% E( q% |/ u2 ~3 F/ _2 ?! G
|
|