eps*_*nes 5 linux assembly operating-system
我正试图更深入地理解.因此,linux启动必须处理一个程序集文件.我知道mov, push, pop,但在这里我很遗憾:
.globl __start
.ent __start
__start:
br $29,2f
2: ldgp $29,0($29)
jsr $26,start_kernel
call_pal PAL_halt
.end __start
switch_to_osf_pal:
subq $30,128,$30
...
Run Code Online (Sandbox Code Playgroud)
如果我说那__start是一个标签,我是否正确?一旦它被另一个代码和平调用,它会被调用吗?我试图谷歌周围了解ldgp,或call_pal符号,但我什么都没发现.最后,我发现以switch_to_osf_pal这种方式调用的c文件switch_to_osf_pal(2, pcb_va, pcb_pa, VPTB);是这个函数用这个参数调用汇编函数吗?
对不起,如果有很多问题,但我没有找到任何明确的文档