签到天数: 2072 天 [LV.Master]伴坛终老
|
发表于 2025-5-11 19:42:54
|
显示全部楼层
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?
, H8 ?2 M0 F& S) _) Z. m
2 t; x# n5 A+ t8 h: [68K中A7(SP)寄存器是堆栈指针,68K没有push、pop之类自动入栈出栈指令,只能手工管理堆栈- _+ N$ f) w/ d3 L% ~
* W4 x7 H3 R, G1 ]" W ~7 X- A% |/ i
用movem命令来手工入栈出栈
8 O* w8 i9 D$ H+ B$ A9 a* `2 u- B# | M6 L0 |
入栈:
+ c, [, U1 ]: d+ Q0 O) E; W+ Imovem.l D0-D2/A0-A1,-(A7)
$ P& n/ f7 N8 N" r7 ~
/ B( g a5 c" K" T出栈:
- v6 l2 n8 Z4 Wmovem.l (A7)+,D0-D2/A0-A1
* k2 w5 l5 Y% o. P+ l# n$ I+ ?& {( b! T
2.68K Hook用 jmp 和 jsr 哪个比较好呢 ]2 n( o* c* ~; \
5 l5 S0 L5 m8 P. pjmp和jsr不同的唯一是jsr是带返回的跳转,返回指令是rts
8 V8 d2 o/ G, P" W: V _
0 H7 T, H/ P' C# g0 p# K& o: Pjsr跳转时会把当前PC寄存器地址压入堆栈,之后用rts指令返回时会把地址恢复到PC寄存器
6 K; H/ a0 y/ L& c) a& H9 f1 u, h* }1 I
jmp和jsr有无跳转长度限制不记得了+ T ~$ b+ U z1 v; k/ \
$ P, ]7 h N N. w
3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
* R6 W% S! ^* i! D& ~/ e
4 z3 u; Q j, e0 d8 p2 }& K. R7 t问deepseek AI去1 H+ q! g8 R* e/ ?. O
' w" l" X: J1 |* L( } |
|