微机原理与接口技术(徐惠民主编)--第1章

微机原理与接口技术 总学时 64实验 8适应专业 电子 计算机各专业 TEL E mail 主要参考书 1 微机原理及接口技术雷丽文主编 电子工业出版社2 微机原理与接口技术汪吉鹏主编 高等教育出版社3 微型计算机系统与接口技术李继灿主编 清华大学出版社 教材 微机原理与接口技术 徐惠民主编高等教育出版社 主要内容 1 微型计算机系统概述2 微型计算机系统的微处理器3 8086 8088指令系统4 汇编语言程序设计5 微型计算机总线6 半导体存储器7 微型计算机和外设间的数据传输8 中断系统9 微型计算机常用接口技术10 微型计算机的发展方向与新技术介绍 微机原理及接口技术 课程介绍 微机 以8086微处理器为核心 接口 半导体存储器及其接口I O接口电路及其与外设连接 硬件 接口电路原理软件 接口编程方法 技术 原理 8086汇编语言程序设计 课程目标微机原理是学习和掌握微机硬件知识和汇编语言程序设计的入门课程 微型计算机的基本工作原理汇编语言程序设计微型计算机接口技术建立微型计算机系统的整体概念 形成微机系统软硬件开发的初步能力 第一章概述1 1概述1 2计算机中数的表示与编码1 3微型计算机系统 本章的重点 1 计算机中数的表示2 计算机中常用的编码3 微型计算机结构及基本性能指标本章的难点 微处理器的功能及执行指令的基本过程 1 1概述 一 计算机的发展世界上第一台计算机ENIAC诞生于美国宾夕法尼亚大学的莫尔学院 第一代 1946 1957 电子管第二代 1957 1964 晶体管第三代 1965 1971 中小规模集成电路管第四代 1970 1992 大规模集成电路 二 微型机的发展世界上第一个微处理器 微型机的核心部件 是美国Intel公司1971年生产的Intel4004 从那时到现在 微型计算机已经历了五个发展时代 第一阶段 1971 1973 四位 八位字长低档CPU典型产品 4004 8008 指令周期 2毫秒 us 时钟 2 5 4MHZ集成度 2000只晶体管 片第二阶段 1974 1977 八位CPU典型产品 8080 8085 Z80 M6800 APPLE II指令周期 1 2us 时钟 2 5 5MHZ集成度 10000只晶体管 片 第三阶段 1978 1984 十六位CPU典型产品 8086 Z8000 M6800指令周期 0 5us 时钟 5 10MHZ集成度 30000只晶体管 片 第四阶段 1985 1999 三十二位CPU典型产品 80386 80486 MC68010 MC68020 指令周期 0 1us 时钟 16 20MHZ 集成度 15 50万管 片 第五阶段2000年以来 64位机Pentium 划时代的微处理器投入使用 时钟 60 150MHZ 集成度310万只 管以上内部数据总线是32位 外部数据总线为64位 使一个总线周期的数据传输量提高一倍 1 2计算机中数的表示与编码 一 计算机中常用的数制及其转换 三 数的定点表示与浮点表示 二 带符号数的表示 日常生活中 我们用的是十进制数 计算机中通常采用二进制数 为了书写和阅读方便 引入了十六进制数 书写时 1 加B表示二进制数 如 1101B2 加H表示十六进制数 如 3ECFH3 加D 或不加 表示十进制数 如 46 D 1 2 1计算机中常用数制及其转换 1 常用进位制2 8 10 12 16进位制1 十进制特点 十个数0 9逢十进一例 2 二进制的表示特点 两个数 0 1逢二进一例 3 十六进制特点 十六个数 0 9 A B C D E F逢十六进一十六进制的表示 012345670000000100100011010001010110011189ABCDEF10001001101010111100110111101111 2进位计数制的表示方法 十进制数 1 用0 9十个数码表示 基数为102 每个数码表示的值有数码和它的权决定3 采用逢十进一4 小数点右移一位表示乘10 反之表示除以10 二进制数 十六进制数 其中表示数码 而表示权 3进位数制之间的转换 任意进制转换为十进制 按权展开 10110011B 27 25 24 21 20 1794F 8H 4 161 15 160 8 16 1 79 5 各种进制的转换二进制和十六进制的相互转换方法 是用四位二进制数表示一位十六进制数 例10110B 16H 1A9H 110101001B 十六进制转换为十进制 将十六进制数按展开后 用十进制加法相加即可 例如 1BH 1 161 11 160 27 二进制转换成十进制数 将二进制数按权展开后 用十进制加法的原则相加即可 例如 1011B 1 23 0 22 1 21 1 20 8 0 2 1 11 十进制转换为任意进制 整数部分 连续除以2逆序取余法小数部分 连续乘以2顺序取整法 例如 把20D转换成二进制数和十六进制数 39 100111B 0 625 0 101B 任意一个整数都可以用二进制表示 0 625转换成二进制数0 625 21 2501 b 1 20 500 b 2 21 01 b 3 0 625 0 101B 小数部分 连续乘以2顺序取整法 27H 无符号数 机器中所有有效位均表示数的大小 范围 0 255 8位 带符号数 范围 127 127 8位 机器数 表示方法 原码 反码 补码 移码 1 2 2带符号数的表示 一个二进制数连同符号位在内作为一个数 最高位用0 1表示正负 其余为数值位 数据的表示范围和大小 n位二进制数能够表示的无符号整数的范围是 0 N 2n 1如n 8 0 N 255n 160 N 65535n位二进制数能够表示的有符号整数 补码的表数范围 2n 1 N 2n 1 1 如n 8 128 N 127n 16 32768 N 32767 2 数的表示方法 1 原码 最高位为符号位 0表示正数 1表示负数 例 X 1110010BY 1110010B X 原 01110010B Y 原 11110010B缺点 零有两个 00000000 010000000 0 注 原码表示直观 但在计算机中处理过程复杂 为把减法运算转换为加法运算就引进了反码和补码 2 反码 正数的反码与原码相同负数的反码 符号位不变 数值位取反 4 原 10000100 4 反 11111011 0 原 10000000 0 反 11111111 127 原 11111111 127 反 10000000例 X 0000100BY 0000100B X 原 X 反 00000100B Y 原 10000100B Y 反 11111011B 3 补码 1 补码的求法 计算机中负数都是用补码表示的 例 80 补 80 原 01010011B 70 原 11000110B 正数的补码与原码相同 都等于真值 负数的补码仍是一个负数 它将原码的符号位不变 数值部分求补 70 补 10111010B 求补码的方法 直接求补法 正数的补码就是本身 等于原码 只有负数才有求补问题 直接求补法 从最低位起 出现第一个1前面的数值位逐位取反 但符号位不变 83 原 11010011B 求补 取反加1法 符号位不变 数值位取反再加1 83 原 11010011B 求补 符号位不变 1 例 X 1 10000001B X 原 10000001B X 反 11111110B X 补 X 反 1 11111110B 1 11111111B FFH 补码特点 0补码的唯一性 可将减法运算转换为加法运算 表示范围 128 127 8位 32768 32767 16位 求法 符号位不变 数值位取反加1 X Y 补 X 补 Y 补 X 补 补 X 原 补码的运算 10100100 110100101 00101010 00101010B 11011011B 11001111 计算机中实现过程 例 设计算机字长为8位 X 42 Y 91 以28为模 用补码运算求X Y 采用补码 可以将减法用加法实现 省去减法器 简化硬件 1 先对减数进行求补运算 求反加1 也是加法 2 再将求补后的数与被减数相加3 相加的结果即为用补码表示的两数相减结果4 判断是否溢出 若无溢出 求真值 取反 求真值 49 10110001B 结果 若有溢出呢 4 符号扩展 为防止数的溢出 有时要把8位二进制数扩展成16位 1 当要扩展的数是无符号数时 可在最高位前扩展8个0 2 如果要扩展的数是补码形式的有符号数 那么 就要进行符号位的扩展 符号扩展后 其结果仍是该数的补码 例 符号扩展表示1 21的8位二进制补码为 00010101扩展为16位补码为 00000000000101012 70的8位二进制补码为 10111010扩展为16位补码为 1111111110111010 5 移码 移码 将真值在数据轴上往正方向平移了2n 1 移码方法 符号位的表示方法与补码相反 即正数的符号位用1表示 负数的符号位用表示0 一个数值的移码只需要将符号位取反即可 例 有符号数的补码表示 45 补 00101101B 45 补 11010011B 45 移 10101101B 45 移 01010011B 1 2 3数的定点表示与浮点表示 1 数的定点表示 小数点的位置是固定不动的 小数点在数值位之前 符号位之后 但不占位数 纯小数 纯整数 小数点 小数点 1 类似科学计数法 300000 3 1052 浮点数包括两部分 阶码P 为整数 决定该数的范围 尾数S 纯小数 表示有效数字 决定该数的精度 2 数的浮点表示 注 1 阶码为整数 常用补码表示2 尾数为原码表示的纯小数3 常用规格化的表示方法 PfPSfS阶符阶码尾数尾数符号B 2 P S 1 定点数计算简单 浮点数计算复杂 2 定点数表示的数值范围小 浮点数大 3 通常浮点数表示的精度比定点数高 4 浮点数要求更多的设备 成本高 3 定点数与浮点数的优缺点 1 BCD码2 ASCII码3 汉字编码 BCD码 计算机中常用8421BCD码 每一位十进制数用4位二进制码表示ASCII码 美国信息交换标准码汉字编码 信息交换用汉字编码 GB2312 计算机中 所有信息都用二进制码表示 信息编码 1 2 4计算机中常用的编码 8421BCD码 四位二进制数表示一位十进制数 1 BCD码 00000001001000110100010101100111100010010123456789 例 将83 1写成8421BCD码83 1 10000011 0001 BCD 注意 BCD码与二进制码不能直接进行转换 需将BCD码转换为十进制数后 再转换成二进制数 反之同样 ASCII码 用一个字节表示一个字符 低7位为字符的ASCII值 最高位一般用作校验位 例 A 41H回车 CR 0DH a 61H换行 LF 0AH 1 31H空格 SP 20H 2 ASCII码 计算机中 所有信息 字符 数据 都用ASCII码表示 一个字符在存储器中占一个字节 显示 打印时用ASCII字符 3 汉字在计算机中的表示 每个汉字分配唯一的一个16位编码 汉字编码包括输入编码 内码和字型编码 分别用于输入 内部处理和输出 GB2312 80 简称国标码 包含汉字和图形符号共7445个 规定每个汉字用两个字节表示 汉字的机内代码的两个字节的最高位恒为1 第一个字节表明字符属于哪一区 第二个字节表明是哪一位 基本字符集共有94区 每区有94位 又称为区位码 汉字字型编码是用来描述汉字字形的代码 它是汉字的输出形式 汉字库有点阵字库 TrueType字库 矢量字库等类型 1 3微计算机系统的组成 微处理器 Microprocessor 运算器和控制器集成在一起 称微处理器 内含控制器 运算器和寄存器等核心芯片微型计算机 Microcomputer 通常指微型计算机的硬件系统还有一般的说法 微机 微型机微型计算机系统 Microcomputersys