签到天数: 1968 天 [LV.Master]伴坛终老
|
发表于 2025-5-11 19:42:54
|
显示全部楼层
1.如果想借用D0、D2、A1寄存器来加一些功能,用完后再还原寄存器的值要用什么指令?% X6 g2 \* ?+ l0 n4 ^
% }) W9 o: U, Q) h( h: b$ B
68K中A7(SP)寄存器是堆栈指针,68K没有push、pop之类自动入栈出栈指令,只能手工管理堆栈6 v6 ]' M/ J# i' v. [
' d9 W, r6 y) c0 Z0 N6 R' d用movem命令来手工入栈出栈
% h3 [$ M" Q+ h* L u. \, n1 O% o; \" [
入栈:: [: |; h9 h* P( [' K* x7 [
movem.l D0-D2/A0-A1,-(A7)
5 r9 X0 Q3 N/ |- ^0 z
# ^' R/ {% `, a! M# p/ G1 R出栈:
# j1 z, D/ O/ Tmovem.l (A7)+,D0-D2/A0-A1) {2 `5 f9 X2 A* o7 c: @
3 _' L' F9 N' Y. e, Q
2.68K Hook用 jmp 和 jsr 哪个比较好呢
3 |3 V8 Y0 l' p ]8 M+ ?
6 ]- M' k7 U; Z. ^+ C! T. qjmp和jsr不同的唯一是jsr是带返回的跳转,返回指令是rts
6 m0 Y5 \! ~) C0 Q
2 M3 c. M" N* v8 R2 qjsr跳转时会把当前PC寄存器地址压入堆栈,之后用rts指令返回时会把地址恢复到PC寄存器
9 }2 @" _' I% m3 b4 u5 R; ]1 m$ E& e% @3 |+ \; n7 u" y# w
jmp和jsr有无跳转长度限制不记得了
6 h5 N' \' h$ B2 B U' Q+ u. r& f
3.怎么写随机数的取值范围,比如人物的随机数子程序是 :jsr $192c,执行完得出随机数d0。然后想得出随机数d0的取值范围在0-20之间要怎么写呢
4 Q e9 @7 z; M1 F4 F+ f) @3 x
& [5 j/ s$ k5 h- [ i" N问deepseek AI去! a/ m5 [% P/ e: W9 }
9 u9 s$ T( @- {2 S5 ?% Y |
|