相关疑难解决方法(0)

在没有编译器的情况下创建C函数会生成序言/结尾和RET指令?

考虑以下功能:

void foo(){
    //do something
}
Run Code Online (Sandbox Code Playgroud)

在组装时,它看起来像这样(不准确):

push something

;do stuff

pop something
ret
Run Code Online (Sandbox Code Playgroud)

但是我不想要这个生成的代码(RETPUSHPOP ...)。我只想在代码块上加上标签,所以我必须返回自己:

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)

没有PUSHPOPRET。是否有任何预处理器指令或关键字可以帮助我完成此任务?

我正在Windows下使用GCCNASM,并且试图生成自己的中断服务例程(ISR)。

c x86 assembly gcc nasm

5
推荐指数
1
解决办法
2110
查看次数

标签 统计

assembly ×1

c ×1

gcc ×1

nasm ×1

x86 ×1