第17章 大型机汇编语言扩展.docVIP

  • 30
  • 0
  • 约3.11万字
  • 约 28页
  • 2017-11-26 发布于湖北
  • 举报
第17章 大型机汇编语言扩展

第17章 大型机汇编语言扩展 当前COBOL语言主要是应用于大型机上的,而大型机上的汇编语言则更加贴近其内部结构。因此,学习汇编语言,对于更加深入地理解COBOL语言是有必要的。同时,汇编语言能够从更加底层的角度上,反映大型机程序的工作原理。因此,若要从事大型机上更为高级的应用开发或系统管理工作,也是必须要掌握汇编语言的。 17.1 基本概念 首先需要明确的是,汇编语言是针对不同的机型而言的。例如,PC机上的80x86汇编语言和大型机上的S/390汇编语言就是两个不同的概念。本章只讲解大型机上的汇编语言。关于大型机的汇编语言,主要需要理解以下几个方面的概念,下面分别予以讲解。 17.1.1 主存组织 计算机中最小的存储单位是一个位(bit)。位是用0和1这两个二进制数表示的,其中8个位形成一个字节(Byte)。存储空间通常是以字节为基本单位的,由字节组成字。字所占的存储空间大小称为字长。字节在任何机器上都是由8位组成的,但字在不同的机器上则有着不同的字长。关于字及其相关概念,在大型机的主存中有以下3种组织形式: 半字(HALF WORD):由2个字节组成,占16位存储空间。 全字(FULL WORD):由4个字节组成,占32位存储空间。其中全字也就是所谓的字。 双字(DOUBLE WORD):由8个字节组成,占64位存储空间。 此外,在表示大型机的主存地址空间时,除了二进制数外,通常还会应用到十六进制数。十六进制数中的数字0~9分别表示十进制数中的0~9。而十六进制数中的数字A~F则分别表示十进制数中的10~15。例如,以下为一组十进制数: 0 2 10 45 100 则以上数列对应的二进制数如下: 0 10 1010 101101 1100100 以上数列对应的十六进制数如下: 0 2 A 2D 64 实际上,引入十六进制数的概念也是为了更方便地表示二进制数。可以看到,24正好等于16,因此一个十六进制数正好可以表示4个二进制数。由于一个字节是由8个位组成的,而每个位又由一个二进制数表示。因此,一个字节也可以通过两个十六进制数来表示。 大型机主存中的普通地址空间(Common Area)和私有地址空间(Private Area)一共是16MB。由于1MB=220,因此16MB大小的地址空间可以用24个bits表示,同时也可以使用6个十六进制数表示。图17.1反映了使用十六进制数表示的一段主存空间。 图17.1 主存空间示例图 上图中每一行为4个字节,表示一个全字空间。这4个字节只在最下面一行划分了出来,以上各行相同。根据该示例图,需要理解以下两个重要概念: 半字空间的边界为偶数地址。 全字空间的起始地址应该能被4整除。 17.1.2 数码表示 同其他汇编语言一样,在大型机的汇编语言中通常也涉及到以下3个关于数码表示的概念。这3个概念分别如下所示。 原码:即该数据自身。例如,以下分别为不同进制中示例数据与原码的关系: 十进制数中:10的原码为10 二进制数中:1010的原码为1010 十六进制数中:A的原码为A 反码:通过将数据在二进制的表示中各位取反得到。以下为不同进制中示例数据与反码的关系: 十进制数中:10的反码为5 二进制数中:1010的反码为0101 十六进制数中:A的反码为5 补码:通过将数据在二进制的表示中各位取反后加1得到。以下为各示例数据与反码的关系: 十进制数中:10的补码为6 二进制数中:1010的补码为0110 十六进制数中:A的补码为6 在大型机中,以上所说的反码通常也叫做1的补码,而以上所说的补码则通常叫做2的补码。实际上,所谓n的补码,也就是在n-1的补码基础上再加1得到的。 对于大型机中的整数数据,是以32位全字空间作为存储单元的。其中最左边的1位表示符号位,正号用0表示,负号用1表示。以下为大型机上两组不同整数的表示方式: 0~231-1之间的整数:直接使用该整数的原码表示。 -1~-231+1之间的整数:使用该整数绝对值编码形式的2的补码表示。 例如,对于整数-2,在大型机中的表示方法如下:1111111111111110 此外,关于大型机中的数码,还有以下几点需要注意: 负数的2的补码就是该数绝对值的原码,该绝对值的原码的2的补码为负数本身。 系统内部进行减法运算的过程是先得到减数的2的补码,再与被减数相加。 17.1.3 寄存器与程序状态字 在汇编语言中,寄存器可以看作是一块单独的存储空间。该存储空间通常用于存储汇编语言中的操作数。在S/390大型机上,有以下几种类型的寄存器: General Purpose Registers(GPRs):通用寄存器。用于在程序中作为存储地址、工作空间或者计数器。 Floating Point Reg

文档评论(0)

1亿VIP精品文档

相关文档