汇编语言源代码分析
汇编语言源代码分析
查看源代码将发现它由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%
下载地址
汇编语言源代码分析下载
相关电子资料下载
- 什么是C语言?单片机有什么特点?为什么要用C语言编程? 318
- KEIL软件的详细分析 212
- 看完这篇文章,汇编也不难 323
- 汇编语言基础知识:基本概念 373
- 火遍童年的FC游戏是使用什么语言编写的 431
- 汇编语言中常见的两个指令 296
- 汇编语言的产生 汇编语言的组成 458
- 汇编语言之内存访问(寄存器) 398
- 为什么要反汇编?反汇编文件的生成和解读 1425
- Linux内核调试:指令追踪大法简析 547