linux – 了解os bootloading – assembly

linux – 了解os bootloading – assembly,第1张

概述我正试图更深入地理解.因此, linux启动必须处理一个程序集文件.我知道mov,push,pop,但在这里我很遗憾: .globl __start .ent __start__start: br $29,2f2: ldgp $29,0($29) jsr $26,start_kernel call_pal PAL_halt .end _ 我正试图更深入地理解.因此,linux启动必须处理一个程序集文件.我知道mov,push,pop,但在这里我很遗憾:
.globl  __start    .ent    __start__start:    br  ,2f2:  ldgp    ,0()    Jsr ,start_kernel    call_pal PAL_halt    .end __startswitch_to_osf_pal:    subq    ,128,...

如果我说__start是一个标签,我是否正确?一旦它被另一个代码和平调用,它会被调用吗?我试图谷歌周围了解ldgp,或call_pal符号,但我什么都没发现.最后,我在c文件中发现switch_to_osf_pal以这种方式调用switch_to_osf_pal(2,pcb_va,pcb_pa,VPTB);这个函数用这个函数调用汇编函数吗?

对不起,如果有很多问题,但我没有找到任何明确的文档

解决方法 __start是一个标签.

ldgp表示在Alpha assembly中加载全局指针.

call_palmeans调用特权架构库.它是一个无条件跳转到异常处理程序.

更多信息,请参见Assembly Programmer’s Guide

总结

以上是内存溢出为你收集整理的linux – 了解os bootloading – assembly全部内容,希望文章能够帮你解决linux – 了解os bootloading – assembly所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1049759.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存