2.4 操作数的类型和大小
操作数是指令执行时所操作的数据。在设计计算机指令集结构时,需要考虑支持哪些类型的操作数以及它们的大小。这不仅影响指令集的设计,也影响整个计算机系统的性能和灵活性。
2.4.1 数据类型的分类
计算机系统能处理的数据类型繁多,包括图形、表格、树、队列、链表、堆栈、向量、字符串、实数、整数及字符等。这些数据类型可以大致分为两类:数据表示和数据结构。
- 数据表示:是指能直接被计算机识别和直接被指令集操作的数据类型,例如定点数、浮点数、字符和布尔值等。这些数据类型相对简单,通常由硬件直接支持。
- 数据结构:指由软件处理和实现的复杂数据类型,如图、树、队列等。数据结构的研究关注于数据的逻辑结构和物理结构之间的关系及其算法。
2.4.2 操作数类型的表示方法
操作数类型可以通过以下两种方式指定:
- 操作码指定:这是最常用的方法,其中操作码内嵌操作数的类型。这要求对不同数据类型的操作,即使是相同的操作(如加法),也需设定不同的指令。
- 带标识符的数据表示:通过在数据上附加标识(tag)来指明数据类型,允许硬件自动识别操作数类型并进行相应操作。虽然这种方法有许多优点,如简化指令集、自动化类型检查和转换,但动态识别标识符的开销较大,实