2.1.3自定义数据表示 目前在多数计算机中 数据存储单元(寄存器、主存储器、外存储器等)只存放纯数据 通过指令中的操作码来解释 数据的类型(定点数、浮点数、复数、字符、字符串、逻辑数、向量等) 进位制(2进制、10进制、16进制等) 数据字长(字、半字、双字、字节等) 寻址方式(直接寻址、间接寻址、相对寻址、寄存器寻址等) 数据的功能(地址、数值、控制字、标志等)等 同一种操作指令通常需要很多条 ·在高级语言和其它许多应用软件中 数据的属性必须由数据自己定义, 在高级语言与机器语言之间的语义差距,要靠编译器等填补 ·60年代开始, Burroughs公司在大型计算机中引入自定义数据表示方式 和带标志符的数据表示方式 1、带标志符的数据表示法 Burroughs公司的标志符数据表示方法 在B5000大型机中,每个数据有一位标志符 在B6500和B7500大型机中,每个数据有三位来标志符 在R-2巨型机中采用10位标志符 标志符 带有标志符的数据表示方式 2位2位1位4位 功能陷井 类型 10位标志符 在R-2巨型机中带标志符的数据表示方式 R-2巨型机中的标志符 功能位:操作数、指令、地址、控制字 陷井位:由软件定义四种捕捉方式 封写位:指定数据是只读的还是可读可写 类型位:对于操作数:二进制、十进制、定点数、浮点数、复数、 字符串、单精度、双精度等 对于地址:绝对地址、相对地址、变址地址、未连接的地址等 标志符由编译器或其它系统软件建立,对程序员透明 程序(包括指令和数据)的总存储量分析 数据存储量增加,指令存储量减少 例2.6:假设ⅹ处理机的数据不带标志符,其指令字长和数据字长均为32
2-1 2.1.3 自定义数据表示 • 目前在多数计算机中 数据存储单元(寄存器、主存储器、外存储器等)只存放纯数据 通过指令中的操作码来解释: 数据的类型(定点数、浮点数、复数、字符、字符串、逻辑数、向量等) 进位制(2 进制、10 进制、16 进制等) 数据字长(字、半字、双字、字节等) 寻址方式(直接寻址、间接寻址、相对寻址、寄存器寻址等) 数据的功能(地址、数值、控制字、标志等)等 同一种操作指令通常需要很多条 • 在高级语言和其它许多应用软件中 数据的属性必须由数据自己定义, • 在高级语言与机器语言之间的语义差距,要靠编译器等填补 • 60 年代开始,Burroughs 公司在大型计算机中引入自定义数据表示方式 和带标志符的数据表示方式 1、带标志符的数据表示法 • Burroughs 公司的标志符数据表示方法 在 B5000 大型机中,每个数据有一位标志符 在 B6500 和 B7500 大型机中,每个数据有三位来标志符 在 R-2 巨型机中采用 10 位标志符 标志符 数 值 带有标志符的数据表示方式 2 位 2 位 1 位 4 位 1 位 功能 陷井 封写 类型 校验 数 值 10 位标志符 在 R-2 巨型机中带标志符的数据表示方式 • R-2 巨型机中的标志符 功能位:操作数、指令、地址、控制字 陷井位:由软件定义四种捕捉方式 封写位:指定数据是只读的还是可读可写 类型位:对于操作数:二进制、十进制、定点数、浮点数、复数、 字符串、单精度、双精度等 对于地址:绝对地址、相对地址、变址地址、未连接的地址等 • 标志符由编译器或其它系统软件建立,对程序员透明 • 程序(包括指令和数据)的总存储量分析 数据存储量增加,指令存储量减少 例 2.6:假设 X 处理机的数据不带标志符,其指令字长和数据字长均为 32
位。Y处理机的数据带有标志符,每个数据的字长增加至35位,其中有3位是 标志符,其指令字长由32位减少至30位。并假设一条指令平均访问两个操作数 每个操作数平均被访问R次。现有一个程序,它的指令条数为I,分别计算在这 两种不同类型的处理机中程序所占用的存储空间。 2×32 解:X处理机程序占用的存储空间总和为:Bx=321+R Y处理机程序占用的存储空间总和为:B=301+2×351, Y处理机与Ⅹ处理机的程序占用存储空间的比值 2×35I B 30I 15R+35 Bx 32/42×3216R+32 R 当R>3时,有<1,在实际应用中经常是R>10, 即带标志符的处理机所占用的存储空间通常要小。 采用标志符数据表示方法的主要优点 采用标志符的 1、简化了指令系统。 一指令字 2、由硬件自动实现一致性检查和数据类 型的转换。 例如:在IBM370系列机中执行A=A+B 运算,若A、B都是十进制数,只需要一条指 令,共6个字节,在IBM370/145机上的执 指令字长缩短 指令 行时间是13微秒,若A与B中有一个是定点 进制数,由于要进行数据类型的一致性检 查和转换,在PL/I语言中的编译结果为13 条指令,共64个字节,在IBM370/145机上 的执行时间是408微秒,两者相比,存储空数据字长 间节省5倍,运算速度快30多倍。 加长 数据 3、简化程序设计,缩小了人与机器之间 的语义差距。 ↓标花长度香委厢蛟森 简化编译器,使高级语言与机器语言 之间的语义差距大大缩短。 采用标志符的数据长度 5、支持数据库系统,一个软件不加修改 就可适用于多种数据类型。 带标志符和不带标志符两种情 6、方便软件调试,在每个数据中都有陷况下程序所占存储空间比较 井位。 采用标志符数据表示方法的主要缺点: 1、数据和指令的长度可能不一致 2、指令的执行速度降低(程序的设计时间、编译时间和调试时间缩短) 3、硬件复杂度增加。 2、数据描述符表示法 ·数据描述符与标志符的区别: 标志符只作用于一个数据,而数据描述符要作用于一组数据。 2-2
2-2 位。Y 处理机的数据带有标志符,每个数据的字长增加至 35 位,其中有 3 位是 标志符,其指令字长由 32 位减少至 30 位。并假设一条指令平均访问两个操作数, 每个操作数平均被访问 R 次。现有一个程序,它的指令条数为 I,分别计算在这 两种不同类型的处理机中程序所占用的存储空间。 解:X 处理机程序占用的存储空间总和为: B I I R X = + 32 2 32 , Y 处理机程序占用的存储空间总和为: B I I R Y = + 30 2 35 , Y 处理机与 X 处理机的程序占用存储空间的比值: B B I I R I I R R R Y X = + + = + + 30 2 35 32 2 32 15 35 16 32 当 R>3 时,有 B B Y X <1 ,在实际应用中经常是 R>10, 即带标志符的处理机所占用的存储空间通常要小。 采用标志符数据表示方法的主要优点: 1、简化了指令系统。 2、由硬件自动实现一致性检查和数据类 型的转换。 例如:在 IBM 370 系列机中执行 A=A+B 运算,若 A、B 都是十进制数,只需要一条指 令,共 6 个字节,在 IBM 370/145 机上的执 行时间是 13 微秒,若 A 与 B 中有一个是定点 二进制数,由于要进行数据类型的一致性检 查和转换,在 PL/I 语言中的编译结果为 13 条指令,共 64 个字节,在 IBM 370/145 机上 的执行时间是 408 微秒,两者相比,存储空 间节省 5 倍,运算速度快 30 多倍。 3、简化程序设计,缩小了人与机器之间 的语义差距。 4、简化编译器,使高级语言与机器语言 之间的语义差距大大缩短。 5、支持数据库系统,一个软件不加修改 就可适用于多种数据类型。 6、方便软件调试,在每个数据中都有陷 井位。 采用标志符数据表示方法的主要缺点: 1、数据和指令的长度可能不一致。 2、指令的执行速度降低(程序的设计时间、编译时间和调试时间缩短) 3、硬件复杂度增加。 2、数据描述符表示法 • 数据描述符与标志符的区别: 标志符只作用于一个数据,而数据描述符要作用于一组数据。 采用标志符的数据长度 带标志符和不带标志符两种情 况下程序所占存储空间比较 指令 数据字长 加长 指 令 字 长 缩 短 数据 采用标志符的 指令字长 标志符长度 不采用标志符的 指令和数据字长
Burroughs公司生产的B-6700机中采用的数据描述符表示方法。 最高三位为101时表示数据描述符, 最高三位为000时表示数据 101 标志位 数据描述符 000 数 值 数据 例如:用数据描述符表示方法表示一个3×4矩阵A。 C112C13a14 A =a1a2a2a24 101标志3 3a2a33y4 101标志 101标志 2.2寻址技术 Ocx|y[o标志4 寻址技术研究的主要内容: 编址方式、寻址方式和定位方式 ·寻址技术研究的主要对象 000 12 寄存器、主存储器、堆栈和输入 输出设备 000 ·方法:分析各种寻址技术的 优缺点,如何选择和确定寻址技 术 2.2.1编址方式 000 2.2.2寻址方式 000 2.2.3定位方式 2.2.1编址方式 定义:编址方式是指对各种 000 存储设备进行编码的方法 主要内容:编址单位、零地 址空间个数、并行存储器的编址 技术、输入输出设备的编址技术 1、编址单位 用数据描述符表示方法表示一个3×4矩阵 常用的编址单位:字编址、字节编址、位编址、块编址等 编址单位与访问字长
2-3 • Burroughs 公司生产的 B-6700 机中采用的数据描述符表示方法。 最高三位为 101 时表示数据描述符, 最高三位为 000 时表示数据。 101 标志位 长 度 地 址 数据描述符 000 数 值 数据 例如:用数据描述符表示方法表示一个 3×4 矩阵 A。 A a a a a a a a a a a a a = 11 12 13 14 21 22 23 24 31 32 33 34 2.2 寻址技术 • 寻址技术研究的主要内容: 编址方式、寻址方式和定位方式 • 寻址技术研究的主要对象: 寄存器、主存储器、堆栈和输入 输出设备 • 方法:分析各种寻址技术的 优缺点,如何选择和确定寻址技 术 2.2.1 编址方式 2.2.2 寻址方式 2.2.3 定位方式 2.2.1 编址方式 • 定义:编址方式是指对各种 存储设备进行编码的方法。 • 主要内容:编址单位、零地 址空间个数、并行存储器的编址 技术、输入输出设备的编址技术 1、编址单位 • 常用的编址单位:字编址、字节编址、位编址、块编址等 • 编址单位与访问字长 用数据描述符表示方法表示一个 3×4 矩阵 …… 101 标志 位 3 101 标志 位 4 101 标志 位 4 101 标志 位 4 000 a11 000 a12 000 a13 000 a14 …… 000 a21 000 a22 000 a23 000 a24 …… 000 a31 000 a32 000 a33 000 a34 …… OPC X Y
一般:字节编址,字访问 部分机器:位编址,字访问 辅助存储器:块编址,位访问 ·字节编址字访问的优缺点 有利于信息处理 地址信息浪费 存储器空间浪费 读写逻辑稍复杂 0字节位置引起的问题 2、零地址空间个数 需要编址的设备主要有通用寄存器、主存储器和输入输出设备。 个零地址空间:通用寄存器、主存储器和输入输出设备均独立编址 两个零地址空间:主存储器与输入输出设备统一编址 个零地址空间:所有存储设备统一编址 最低端是通用寄存器,最高端是输入输出设备,中间为主存储器 ·隐含编址方式,实际上没有零地址空间 堆栈、 Cache等 3、输入输出设备的编址 台设备一个地址 台设备两个地址:数据寄存器、状态或控制寄存器 多个需要编址的寄存器共用同一个地址的方法: 依靠地址内部来区分,适用于被编址的接口寄存器的长度比较短 下跟法”隐含编址方式,必须按顺序读写寄存器 一台设备多个地址 4并行存储器的编址技术 高位交叉编址,主要目的是用来扩大存储器容量。 ·低位交叉编址,主要目的是提高存储器速度。 2.2.2寻址方式 定义:寻找操作数及数据存放单元的方法称为寻址方式 主要内容:设计思想和设计方法 1、寻址方式的设计思想 ·立即数寻址方式,用于数据比较短、源操作数 ·面向寄存器的寻址方式 R pCR. R OPCR. R. R OPC R, M 面向主存储器的寻址方式: M OPC M. M OPC M. M. M
2-4 一般:字节编址,字访问 部分机器:位编址,字访问 辅助存储器:块编址,位访问 • 字节编址字访问的优缺点 有利于信息处理 地址信息浪费 存储器空间浪费 读写逻辑稍复杂 0 字节位置引起的问题 2、零地址空间个数 需要编址的设备主要有通用寄存器、主存储器和输入输出设备。 • 三个零地址空间:通用寄存器、主存储器和输入输出设备均独立编址 • 两个零地址空间:主存储器与输入输出设备统一编址 • 一个零地址空间:所有存储设备统一编址 最低端是通用寄存器,最高端是输入输出设备,中间为主存储器 • 隐含编址方式,实际上没有零地址空间 堆栈、Cache 等 3、输入输出设备的编址 • 一台设备一个地址 • 一台设备两个地址:数据寄存器、状态或控制寄存器 多个需要编址的寄存器共用同一个地址的方法: 依靠地址内部来区分,适用于被编址的接口寄存器的长度比较短 “下跟法”隐含编址方式,必须按顺序读写寄存器。 • 一台设备多个地址。 4 并行存储器的编址技术 • 高位交叉编址,主要目的是用来扩大存储器容量。 • 低位交叉编址,主要目的是提高存储器速度。 2.2.2 寻址方式 • 定义:寻找操作数及数据存放单元的方法称为寻址方式。 • 主要内容:设计思想和设计方法 1、寻址方式的设计思想 • 立即数寻址方式,用于数据比较短、源操作数 • 面向寄存器的寻址方式 OPC R OPC R, R OPC R, R, R OPC R, M • 面向主存储器的寻址方式: OPC M OPC M, M OPC M, M, M
·面向堆栈的寻址方式: OPC 2、间接寻址方式与变址寻址方式的比较 ●目标相同:都是为了解决操作数地址的修改问题 都能做到不改变程序而修改操作数地址。 原则上,仅需设置间址寻址方式与变址寻址方式中的任何一种即可。 ●如何选取间址寻址方式与变址寻址方式? 例2.7:一个由N个元素组成的数组,已经存放在起始地址为AS的主存连 续单元中,现要把它搬到起始地址为AD的主存连续单元中。不必考虑可能出现 的存储单元的重叠问题。为了编程简单,采用一般的两地址指令编写程序 解:用间接寻址方式编写程序如下: ASR,ASI;保存源数组的起始地址 MOVE ADR 保存目标数组的起始地址 MOVE NUM,CNT;保存数据的个数 LOOP:MOVE@ASI,@ADI;用间址寻址方式传送数据 源数组的地址增量 INC ;目标数组的地址增量 个数减 BGT LOC ;测试N个数据是否传送完 HALT 停机 ASR 源数组的起始地址 目标数组的起始地址 ;需要传送的数据个数 ASI 当前正在传送的源数组地址 当前正在传送的源数组地址 剩余数据的个数 用变址寻址方式编写程序如下 START 把源数组的起始地址送入变址寄存器 MOVE NUM, CNT 保存数据个数,为了程序具有再入性 LOOP:MOVE(X),AD-AS(X);AD-AS为地址偏移量,在汇编时计算 INC 增量变址寄存器 DEC CNT 个数减1 BGT LOOP ;测试N个数据是否传送完成 HALT ;停机 NUM 需要传送的数据个数 CNT 剩余数据的个数 主要优缺点比较: 采用变址寻址方式编写的程序简单、易读 对于程序员,两种寻址方式的主要差别是 间址寻址方式:间接地址在主存储器中,没有偏移量 变址寻址方式:基地址在变址寄存器中,带有偏移量 实现的难易程度:间址寻址方式容易
2-5 • 面向堆栈的寻址方式: OPC OPC M 2、间接寻址方式与变址寻址方式的比较 • 目标相同:都是为了解决操作数地址的修改问题 都能做到不改变程序而修改操作数地址。 原则上,仅需设置间址寻址方式与变址寻址方式中的任何一种即可。 • 如何选取间址寻址方式与变址寻址方式? 例 2.7:一个由 N 个元素组成的数组,已经存放在起始地址为 AS 的主存连 续单元中,现要把它搬到起始地址为 AD 的主存连续单元中。不必考虑可能出现 的存储单元的重叠问题。为了编程简单,采用一般的两地址指令编写程序。 解:用间接寻址方式编写程序如下: START: MOVE ASR, ASI ;保存源数组的起始地址 MOVE ADR, ADI ;保存目标数组的起始地址 MOVE NUM, CNT ;保存数据的个数 LOOP: MOVE @ASI, @ADI ;用间址寻址方式传送数据 INC ASI ;源数组的地址增量 INC ADI ;目标数组的地址增量 DEC CNT ;个数减 1 BGT LOOP ;测试 N 个数据是否传送完 HALT ;停机 ASR: AS ;源数组的起始地址 ADR: AD ;目标数组的起始地址 NUM: N ;需要传送的数据个数 ASI: 0 ;当前正在传送的源数组地址 ADI: 0 ;当前正在传送的源数组地址 CNT: 0 ;剩余数据的个数 用变址寻址方式编写程序如下: START: MOVE AS, X ;把源数组的起始地址送入变址寄存器 MOVE NUM, CNT ;保存数据个数,为了程序具有再入性 LOOP: MOVE (X), AD-AS(X);AD-AS 为地址偏移量,在汇编时计算 INC X ;增量变址寄存器 DEC CNT ;个数减 1 BGT LOOP ;测试 N 个数据是否传送完成 HALT ;停机 NUM: N ;需要传送的数据个数 CNT: 0 ;剩余数据的个数 • 主要优缺点比较: 采用变址寻址方式编写的程序简单、易读。 对于程序员,两种寻址方式的主要差别是: 间址寻址方式:间接地址在主存储器中,没有偏移量 变址寻址方式:基地址在变址寄存器中,带有偏移量 实现的难易程度:间址寻址方式容易