您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>源码下载>汇编编程>

汇编语言源代码分析

大小:167 人气: 2010-02-09 需要积分:0
{$username}的空间

用户级别:注册会员

贡献文章:

贡献资料:

汇编语言源代码分析

查看源代码将发现它由4 4个文件组成,其中:
• 两个是汇编语言文件,它们的名字带后缀“ . s”;
• 28个是用“C”语言编写的,它们的名字带后缀“ . c”;
• 14个是用“C”语言编写的,但并不准备单独编译,名字带后缀“ . h”。
这些文件以及它们的内容是由编写它们的程序设计人员为使他们自己使用方便而安排的,
并没有考虑读者阅读的便利。在很多方面,文件之间的划分与本书的讨论无关。
如同在第1章中已提及的,所有这些文件已被组织成五个部分。在组织这些部分时所遵循
的基本点是:尽可能使各部分的长度大致相近;将强相关的文件分在同一部分中;将弱相关
的文件分到不同部分中。
4.1 变量分配
P D P 11系统结构支持对变量进行高效存取,其条件是这些变量的绝对地址已知,或者它
们相对于栈指针的地址可在编译时完全确定。
P D P 11在硬件方面并无对变量说明的多词法级的支持,在块结构语言,例如A l g o l或
P a s c a l,则有变量说明的多词法级支持。由于“ C”在P D P 11上实现,所以它只支持两个词法
级:全局( g l o b a l )和局部( l o c a l )。
对全局变量进行静态分配;对局部变量则在当前栈中或在通用寄存器( r 2、r 3和r 4用于此
种方式)中进行动态分配。
第1组“.h”文件
p a r a m . h,不包含变量说明,但包含很多操作系统常数和参数的定义,以及三个简单结构
的说明。有关约定是对于定义的常数只使用大写字母。
s y s t m . h〔第1 9章〕,主要由说明组成,其中作为副作用定义了“ c a l l o u t”和“ m o u n t”结
构。注意,其中没有一个变量是显式地赋予初值的,它们的初值都赋为0。
头三个数组的长度是定义在“ p a r a m . h”中的参数。因此,任一包含“ s y s t m . h”的文件,
必须在包含“s y s t m . h”之前先包含“p a r a m . h”。
s e g . h,包含几个定义和一个说明,在引用段寄存器时使用这些定义和说明。此文件实际
上可并入“ p a r a m . h”和“s y s t m . h”中。
p r o c . h〔第7章〕,包含重要的“ p r o c”的说明。p r o c是一个结构类型,也是这种结构类型
的一个数组。p r o c结构的每一个元素的名字都以“ p -”开始,没有其他变量是这样命名的。类
似的惯例用于命名其他结构的各元素。
p r o c结构中头两个元素“ p s t a t”和“ p f l a g”的各种相关值都有单独的名字,它们也在
“p r o c . h”中定义。
u s e r. h〔第7章〕,包含非常重要的“ u s e r”结构的说明,还包含一组与“ u_e r r o r”相关的
定义值。在任一时刻只有一个“ u s e r”结构的实例是可存取的。该实例以名字“ u”引用,它

非常好我支持^.^

(5) 100%

不好我反对

(0) 0%

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!