(莱昂氏unix源代码分析导读-17)系统初启(10)

小结

本章的内容到此结束。

由于我们跳过了一些专题,启动代码中仍有一些未解之谜,但它的神秘面纱已经揭开,这是一个好的开始。

 

最后,给出fuibyte(0)的分析结果:

0814 _fuibyte:

0815 _fubyte:

0816 mov 2(sp),r1            /参数(输入地址)--->r1

0817 bic $1,r1                 /r1低位清0,即

                                        /如果输入地址为奇数地址,则地址 =地址-1

 

0818 jsr pc,gword           /调用gword

                                        /gword会取r1地址指向的word,通过r0返回

                                        /书中有详细的分析,我就不再赘述了

 

0819 cmp r1,2(sp)           /比较r1和输入参数:

0820 beq 1f                     /r1和输入参数相同,证明r0的低byte就是我们想要的值,跳到标号1

0821 swab r0                 /否则,证明r0的高byte是我们想要的值,于是swab r0的高低byte

 

0822 1:   

0823 bic $!377,r0             /现在,r0的低byte是我们想要的,故将r0的高byte0

0824 rts pc                     /返回

 

【注】:fubyte/ fuword用来get数据,即将previos空间的数据搬运到current空间(kernel态)中来。

               相应的还有subyte/ suword,他们用来set数据,即将current空间(kernel态)的数据搬运到

                previos空间中去。

博客地址: http://blog.csdn.net/cszhao1980

博客专栏地址:http://blog.csdn.net/column/details/lions-unix.html

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值