考虑以下功能:
void foo(){
//do something
}
Run Code Online (Sandbox Code Playgroud)
在组装时,它看起来像这样(不准确):
push something
;do stuff
pop something
ret
Run Code Online (Sandbox Code Playgroud)
但是我不想要这个生成的代码(RET,PUSH,POP ...)。我只想在代码块上加上标签,所以我必须返回自己:
void bar(){
//do something
asm("iret") //i want to use this function as a ISR
}
Run Code Online (Sandbox Code Playgroud)
并在组装中看起来像这样:
; do something
iret
Run Code Online (Sandbox Code Playgroud)
没有PUSH,POP或RET。是否有任何预处理器指令或关键字可以帮助我完成此任务?
我正在Windows下使用GCC和NASM,并且试图生成自己的中断服务例程(ISR)。