1、第二章 计算机中的信息表示,数据信息,控制信息,数值型数据,非数值型数据,指令信息等,第一节 定点表示与浮点表示,2.1.1 定点表示法,无符号数,定点整数,定点小数,0000000011111111,0255,-127127,-128127,-(1-2-7) (1-2-7),-1 (1-2-7),1,2-7,阶码,尾数,阶符,数符,R:阶码底,隐含约定。,E:阶码,为定点整数,补码或移码表示。 其位数决定数值范围;,阶符表示数的大小。,M:尾数,为定点小数,原码或补码表示。 其位数决定数的精度;,数符表示数的正负。,尾数规格化:1/2 M 1,最高有效位绝对值为1,2.1.2 浮点表示法,1
2、. 格式,2. 表示范围与精度,表示范围:,-231 231 (1-2-9),例.某规格化浮点数用补码表示,其中阶码6位,含1位阶符;尾数10位,含1位数符。,阶符1位,阶码m位,补码表示,以2为底;数符1位,尾数n位,补码表示,规格化。,最小浮点数:,最大浮点数:,最小浮点正数:,阶码为最大数:,尾数为绝对值最大的负数:,-1,尾数为最大数:,阶码为最大数:,阶码为最小数:,尾数为最小正数:,2-1,表示精度:,2-33,第二节 指令信息的表示,指令:指示计算机执行某类操作的信息的集合。,本节主要讨论:一般指令格式 常用寻址方式 面向用户指令类型,2.2.1 指令格式,指令基本格式,一个,一
3、个或几个,1. 指令字长,定长指令格式变长指令格式,便于控制,(1) 定长操作码各指令的位置、位数固定相同。(2)扩展操作码各指令的位置、位数不固定,根据需要变化。,合理利用存储空间,2. 操作码结构,关键在设置扩展标志。,例. 指令字长16位,可含有3、2、1或0个地址,每个地址占4位。,操作码 地址码,15 12 11 8 7 4 3 0,0000 X Y Z 1110 X Y Z,1111 0000 Y Z 1111 1110 Y Z,三地址指令 15条,二地址指令 15条,1111 1111 0000 Z 1111 1111 1110 Z,一地址指令 15条,1111 1111 111
4、1 0000 1111 1111 1111 1111,零地址指令 16条,(3)复合型操作码操作码分为几部分,每部分表示一种操作。例.某机算逻指令,3. 地址结构,指令中提供的地址数,存储单元地址码寄存器编号,(1)指令提供地址的方式显地址方式隐地址方式,:指令中明显指明地址。:地址隐含约定,不出现在指令中。,直接或间接给出,(2) 地址结构的简化,操作数地址, 四地址结构指令格式:,使用隐地址可以减少指令中的地址数,简化地址结构。,结果地址,下条指令地址,功能:,用指令计数器PC指示指令地址。,三地址结构指令格式:,操作数地址,结果地址,下条指令地址,功能:,转移时,用转移地址修改PC内容。
5、,源/目的,二地址结构指令格式:,目的/源,功能:,双操作数:,一地址结构指令格式:,隐含约定,单操作数:,功能:,零地址结构指令格式:,功能:,用于堆栈或特殊指令操作。,例.ADD;,执行前:,低,执行后:,高,低,高,2.2.2 寻址方式,是指寻找操作数地址或操作数的方式。,(1) 立即寻址,指令直接给出操作数。,1. 常见寻址方式,定长格式:,变长格式:,数在指令中,其长度固定、有限。,数在基本指令之后,其长度可变。,用来提供常数、设置初值等。,(2) 直接寻址,指令直接给出操作数地址。,存储单元号寄存器号,(数在M中)(数在R中), 存储器直接寻址,(直接寻址),定长格式,D的位数有限
6、,限制访存范围,变长格式,D的位数可覆盖整个存储空间,S =(D),存储单元号寄存器号,(数在M中)(数在M中), 寄存器直接寻址,(寄存器寻址),格式,R所占位数少;访问R比访问M快,格式,S =(R),用于访问固定的存储单元或寄存器。,(3)间接寻址,指令给出操作数的间接地址。, 存储器间址,D=0030,0060,.,0060,S,.,S =(D),M,间址单元,地址指针, 寄存器间址,格式,R所占位数少;R可提供全字长地址码;修改R内容比修改M内容快。,格式,S =(R),指针不变(由指令指定),指针内容可变,使同一指令可指向不同存储单元,以实现程序的循环、共享,并提供转移地址。, 堆
7、栈寻址,SP,.,S,.,S =(SP),M,R=02,M,0040,S,.,.,.,地址指针,.,栈顶,格式,SP既可出现在指令中,也可隐含约定。, 变址寻址,(4)变址、基址寻址及其变化,堆栈向上生成,压栈:,SP自动减1,再存数。-(SP),自减型间址。,先取数,SP再自动加1。(SP)+,自增型间址。,出栈:,指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。,D的位数有限,若不能提供全字长地址码,会使访存空间受到限制。,变址寄存器号,例. 用变址方式访问一组连续区间内的数组元素。,S =(RX)+ D),D=首址,D为存储区首址;(RX)为所访单元距离首址的长度;R
8、X初值为0,每访问一个单元,(RX)+1。,形式地址,修改量,基准地址,D+1,D+2,D+n-1,.,格式,(D的位数只需覆盖一个较小的存储区间), 基址寻址,基址寄存器号,4K,指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。,位移量,S =(Rb)+ D),基准地址,相对于基址的位移,4K,改变Rb的内容,程序能访问存储空间中任何一个定长区间(4K)。,便于访问两维数组中某类指定的元素。,变址与基址的区别:,变址:指令提供基准量(不变), R提供修改量(可变);适 于处理一维数组。,基址:指令提供位移量(不变), R提供基准量(可变);用 于扩大有限字长指令的访 存空
9、间。,S =(RX)+(Rb)+ D),格式, 基址加变址,变址寄存器号,指令给出两个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。,位移量,基址寄存器号,便于处理两维数组。,格式, 相对寻址,指令给出位移量,PC内容与位移量之和为有效地址。,位移量,或隐含指定,S =(PC)D),有效地址相对PC上下浮动,给编程带来方便。,格式, 页面寻址,指令给出位移量,PC的高位部分与位移量拼接,形成有效地址。,位移量,或隐含指定,S =(PC)H,D),例. M为64KB,划分为256页,每页256B。,页号,页内地址,用于页式管理存储系统。寻址速度快,适于组织程序模块,有效利用存储空间。,
10、017CH,S,2. 对寻址方式的说明,(1)操作码隐含说明不同寻址方式,例.某机指令操作码最高两位,00:RR型指令,寄存器-寄存器寻址01:RX型指令,寄存器-变址寻址10:SI型指令,基址-立即寻址11:SS型指令,基址-基址寻址,(2)指令中设置专门字段说明寻址方式,例.某机指令的每个地址字段中各设置一个3位的寻址方式字段。,源地址字段,目的地址字段,3位,3位,2.2.3 指令类型,1.传送指令,源地址 目的地址,数,设置时需考虑:,(1)规定传送范围,例. DJS-100系列:,80X86:,IBM370:,(2)指明传送单位,例. 用操作码说明(VAX-11):,用地址量说明(8
11、0X86):,传送次数由计数器控制,MOVB 8,MOV AX,BX (16),MOVW 16,MOVL 32,MOV AL,BL (8),MOV EAX,EBX (32),例. 80X86的串传送指令:REP MOVSW,(3)设置寻址方式,在寻址方式的设置上几乎不受限制,能比较集中地反映指令系统各种寻址方式的实现。,2.输入/输出指令,各种信息,设置时需考虑:,(1)I/O指令的功能扩展,如何用通用I/O指令实现对各种具体设备的控制?, I/O指令中留有扩展余地,指令中某些字段编码事先不定义,需要时再约定其含义。, I/O接口中设置控制/状态寄存器,用于外设种类、数量不多的场合。,(2)主
12、机对外设的寻址方式,如何设置控制/状态寄存器是接口设计的关键。,寻找I/O接口中的寄存器的方式。,主机用输出指令或传送指令将具体设备的控制命令按约定的代码格式送往接口中的控制寄存器,向外设发出命令。外设的状态信息也以某种格式放在接口的状态寄存器中,主机用输入指令或传送指令从状态寄存器中取出有关信息进行查询、分析。,I/O端口,寻找I/O接口中的寄存器的方式。,如何为I/O端口分配地址?, 单独编址,I/O地址空间不占主存空间,可与主存空间重叠。,=1 访问存储器=0 访问I/O端口,需设置标志区分访问对象,如,编址到寄存器:为每个寄存器(I/O端口)分配独 立的端口地址; I/O指令中给出端口
13、地址。, 统一编址,I/O端口占据部分主存空间。常将存储空间的低端分配给主存单元,高端分配给I/O端口,以示区分。,编址到寄存器, 设置专用I/O指令针对单独编址,用I/O指令访问I/O端口。指令中说明输入/输出操作,并给出端口地址。,:为每个寄存器(I/O端口)分配总 线地址; 访问外设时,指令中给出总线地址。,(3)I/O指令设置方式,显式I/O指令,例. 80X86I/O指令设置,输入:IN AL,n;,端口地址,(直接端口寻址),IN AL,DX;,间接端口地址,(间接端口寻址),输出:OUT n,AL;,(直接端口寻址),OUT DX,AL;,(间接端口寻址),主机调用输入机:, 用
14、传送指令实现I/O操作针对统一编址,用传送指令访问I/O端口。不设专用I/O指令。,例. 某机I/O接口中设置控制/状态寄存器CSR,其总线地址为177550(8进制)数据缓冲寄存器DBR,其总线地址为177552,隐式I/O指令,控制/状态字格式:,15 14 12 7 6 2 1 0,启动:测试:取数:, 通过I/O处理机进行I/O操作,CPU执行简单I/O指令 (启动、停止、查询、清除),设置时需考虑操作数类型、符号、进制等;运算结束后设置相应状态标志。,两级I/O指令,(1)算术运算指令,I/O处理机执行I/O操作指令 (输入、输出),3.算术逻辑运算指令,(2)逻辑运算指令,实现对代
15、码位的设置、测试、清除、修改等。,与,或,异或,控制程序流程。,(1)转移指令,4. 程序控制指令,(2)转子指令与返回指令,转子:操作码 子程序入口,无条件转移条件转移循环,:操作码 转移地址:操作码 转移地址 转移条件:转移条件为循环计数值,返回:操作码 返回地址,同一条返回指令应能提供多个不同的返回地址。返回地址的存取:,用堆栈存放返回地址。,(3)软中断指令,程序,自陷指令,第二章复习提纲1.I/O指令的功能扩展(目的、方法),外设编址方式和指令设置方式。2.基本概念:扩展操作码(扩展方法)、地址结构(简化方法)、隐地址、显地址、基本寻址方式(立即、直接、间址、变址)的含义与应用场合。,表示不同的功能调用,调试程序,早期主要用于程序的调试。,现在常常用于系统功能调用。,以 INT n 的形式出现在程序中。,