(莱昂氏unix源代码分析导读-3)PDP11/40系统简介(中)

1。 通用寄存器。

共有8个通用寄存器,r0 ~ r7

     R5:环境寄存器。

     R6: 又名sp,即栈寄存器 —— kernel/usr各有一个

     R7: 又名PC,即指令指针寄存器

 

2  PS Register

即processor status register,该寄存器的使用非常频繁,其结构如下所示:

 

(1) codition code部分——用于记录指令执行后结果状态

            共有4个标志:

            Nnegative

            Zzero

            Voverflow

            Ccarriage

 

(2)  TTrap(陷入位)

           置位将发生陷入,中断矢量为014

 

(3) PriorityCPUPriority

           取值范围: 0~7,从低----高。

           设置为7时,外部设备无法interrupt CPU的执行。

 

  (4) Mode位

             Current Mode:当前的模式(kernel or User

             Previous Mode:“前”模式(kernel or User

             需要注意的是,PSPrevious Mode部分是可以自行设置的,所以,其Previous Mode不一定是其字面上的意思

           (并不一定是“上”一次的Mode)。这样设计可以提供一种同时访问Kernel/User地址的方法,有两个指令用于此用途:

                       i.   mfpi:将Previous Mode的地址里的内容,压入Current Mode的栈;

                       ii.  mtpi:将Current Mode的栈内内容,弹出到Previous Mode的地址空间内。

                       这两个指令使用相当频繁,我会在后面结合代码进行讲解。

 

PS寄存器是最常用的寄存器之一,源码中有大量对PS的操作。下面就介绍一下对PS的常见操作。

 

首先介绍三个位运算指令,他们经常用于设置和Check PS状态

(1)         BIT —— logical AND,但不改变sourcedestination operand。会设置PSCondition Code。

                                   用于check Destination operandbit设置情况;

(2)         BIC —— bit clear。根据source operandbit setclear destination operand的相应bit

(3)         BIS —— bit set “或”操作,修改destination operand

 

PS常见操作举例:

(1)Mov

679         mov  $30340,PS                     0011 000 011 100 000

700         mov  $30340,PS                        3   0  3  4  0

该条语句对PS寄存器进行了如下设置

(1)         Current ModeKernal

(2)         Previous ModeUser

(3)         Priority7

 

(2)Bis

0726  bis  $340PS

0735  ~

0741  ~  

        Priority设置为7

 

(3)Bic

 0748  bic $340,PS

        Priority设置为0

 

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

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《莱昂UNIX源码分析》是一本经典的计算机技术书籍,全书共分为五个部分,详细介绍了UNIX操作系统源代码及其实现原理。该书以莱昂UNIX源代码为基础,通过源代码的解析和分析,深入探讨了UNIX操作系统的内核设计、进程管理、文件系统、网络通信等核心内容。 在《莱昂UNIX源码分析,作者通过逐行分析UNIX操作系统源代码,揭示了UNIX操作系统的内部工作机制。读者可以通过学习这本书,深入理解UNIX操作系统的运行原理,并且从获得对操作系统设计和实现的深入洞察。 此外,该书还提供了大量的实例代码和实验,帮助读者动手实践和验证。通过实际的操作和实验,读者可以更好地理解和掌握UNIX操作系统的核心概念和原理。 《莱昂UNIX源码分析》可以说是UNIX操作系统研究者和操作系统开发者的必备参考书籍之一。通过阅读该书,读者可以系统地学习和掌握UNIX操作系统源代码和实现原理,为自己的研究和开发工作提供有效的指导和帮助。无论是对于对UNIX操作系统感兴趣的学生还是从事操作系统相关工作的专业人士,这本书都是必不可少的学习资料。 ### 回答2: 《莱昂UNIX源码分析》是一本非常经典的Unix操作系统源码分析书籍,由Peter H. Salus于1994年编写。该书主要讲解了UNIX操作系统的内核源码,通过深入分析UNIX的实现原理和设计思想,帮助读者理解UNIX操作系统的核心机制。 书首先介绍了UNIX的历史和发展背景,包括UNIX的创始人Ken Thompson和Dennis Ritchie,以及UNIX与其他操作系统的区别与联系。接着,作者详细解析了UNIX系统的整体结构和组成部分,包括进程管理、文件系统、内存管理、设备驱动等。 在分析过程,作者引用了大量的UNIX源码片段,并逐行详细解释了每个函数或数据结构的作用和实现原理。读者可以通过学习这些源码片段,深入了解UNIX操作系统的实现细节。同时,作者还提供了一些实践性的示例,通过自己手动修改和运行源码,加深对UNIX系统的理解。 《莱昂UNIX源码分析》以其通俗易懂的语言和深入浅出的分析方式,成为了许多计算机科学等相关领域的学生和研究人员的必备参考书。通过阅读该书,读者不仅可以掌握UNIX操作系统的内部工作原理,还能够培养良好的源码阅读和分析能力。 总之,作为一本经典的UNIX源码分析书籍,《莱昂UNIX源码分析》通过讲解UNIX操作系统的实现原理,帮助读者深入了解UNIX的核心机制和设计思想。无论是对于计算机科学专业的学生,还是对于对UNIX操作系统感兴趣的人士,该书都值得一读。 ### 回答3: 《莱昂UNIX源码分析》是一本经典的计算机图书,对UNIX操作系统源代码进行了详细的解析。该书通过分析UNIX操作系统内核的源代码,深入剖析了UNIX操作系统的设计思想、核心机制和关键模块的实现方式。 在《莱昂UNIX源码分析,作者结合了自己多年的研究和实践经验,将UNIX操作系统内核的代码逐行逐句地进行解读,包括进程管理、内存管理、文件系统、设备驱动等方面。读者可以通过学习这本书,了解UNIX操作系统内部的各个模块是如何协同工作的,以及它们之间的相互关系。 该书不仅介绍了UNIX操作系统的基本原理和设计思想,还对各个模块的实现细节进行了详细的讲解。通过对源代码的解析,读者可以了解到UNIX操作系统是如何管理进程、分配内存、访问文件、处理断等一系列操作的。 《莱昂UNIX源码分析》以其深入浅出的语言和逻辑结构,引导读者逐步理解UNIX操作系统的设计和实现。读者可以通过学习这本书,提升自己的系统编程能力,加深对UNIX操作系统的理解。 总之,《莱昂UNIX源码分析》是一本非常值得阅读的图书,它对UNIX操作系统源代码进行了全面深入的分析,对于希望深入了解UNIX操作系统内部工作原理的读者来说,是一本非常好的参考书。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值