是否有可能在nesasm(或任何asm,它可能在nesasm中工作)中使内联'方法'跳转?
我的意思是: 我得到了这样的代码。
Start;
LDA $0000
; here goes more code
JSR SomeMethod ; jump to method (put back pointer on stack)
EndOfMethod: ; just help label to make code more clear
STA $0000
; here goes a lot of more code
SomeMethod:
TAX
;here goes more method code
RTS ; return to position on stack
现在我想让'SomeMethod'内联(比如在C ++中),所以在编译时它看起来像这样:
Start;
LDA $0000
; here goes more code
SomeMethod:
TAX
;here goes more method code
EndOfMethod: ; just help label to make code more clear
STA $0000
; here goes a lot of more code
答案 0 :(得分:1)
如果您的汇编程序支持某种宏,特别是一个w /参数,那么您可以将SomeMethod
定义为宏并使用参数让每个实例都有自己的标签集(通过合并参数)标签名称)。
类似的东西:
defMacro SomeMethodMacro(idx):
SomeMethod$idx:
TAX
;code...
EndOfMethod$idx:
endMacro
然后当你想在你的代码中粘贴一个实例时:
SomeMethodMacro(001)
你负责保证每个实例都有不同的论点。
答案 1 :(得分:0)
不,在汇编语言中,是编译器。您可以完全控制所有使用的指令,但也可以负起全部责任。
汇编程序只是将指令从文本文件转换为二进制指令。