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