1、微机原理与汇编语言程序设计微机原理与汇编语言程序设计 2121世纪高等院校规划教材世纪高等院校规划教材第第1 1章章 微型计算机概述微型计算机概述教学重点教学重点了解计算机的发展与应用了解计算机的发展与应用基基础础是是熟熟悉悉计计算算机机的的软软硬硬件组成件组成难难点点是是计计算算机机各各个个部部件件协协调工作的过程及有关概念调工作的过程及有关概念重重点点是是掌掌握握计计算算机机科科学学中中的术语和基本概念的术语和基本概念第第1章章微型计算机概述微型计算机概述1.1 1.1 计算机的发展与应用计算机的发展与应用 1.2 1.2 计算机的基本结构和工作原理计算机的基本结构和工作原理1.3 1.3
2、 计算机系统计算机系统1.4 1.4 微型计算机的基本概念微型计算机的基本概念1.1 1.1 计算机的发展与应用计算机的发展与应用1.1.1 1.1.1 计算机的发展历史及发展趋势计算机的发展历史及发展趋势 1 1、世界上第一台电子计算机、世界上第一台电子计算机 2 2、冯、冯诺伊曼结构计算机诺伊曼结构计算机 存储程序存储程序五大功能部件五大功能部件 3 3、逻辑部件的发展、逻辑部件的发展 电子管电子管晶体管晶体管中小规模集成电路中小规模集成电路 大规模和超大规模集成电路大规模和超大规模集成电路 4 4、计算机的发展趋势、计算机的发展趋势1.1 1.1 计算机的发展与应用计算机的发展与应用1.
3、1.2 1.1.2 计算机的特点与分类计算机的特点与分类 1 1、计算机的特点、计算机的特点 (1 1)运算速度快:)运算速度快:(2 2)计算精度高:)计算精度高:(3 3)具有)具有“记忆记忆”和逻辑判断功能:和逻辑判断功能:(4 4)能自动运行并且具备人机交互功能:)能自动运行并且具备人机交互功能:1.1 1.1 计算机的发展与应用计算机的发展与应用1.1.2 1.1.2 计算机的特点与分类计算机的特点与分类 计计算算机机的的种种类类很很多多,随随着着计计算算机机的的不不断断发发展展和和新新型型计计算算机机的的出出现现,计计算算机机的的分分类类方方法法也也在在不不断断变变化化。按按照照“
4、电电气气与与电电子子工工程程师师协协会会”(IEEEIEEE)在在19891989年年提提出出的的分分类类方方法法,可以将计算机分为以下可以将计算机分为以下6 6种:种:个个人人计计算算机机、工工作作站站、小小型型计计算算机机、主主机机、小小巨巨型型计计算算机机、巨型计算机。巨型计算机。1.1 1.1 计算机的发展与应用计算机的发展与应用1.1.3 1.1.3 计算机的应用计算机的应用 1 1、科学计算、科学计算 2 2、数据处理、数据处理 3 3、工业控制和实时控制、工业控制和实时控制 4 4、CAD/CAM/CIMSCAD/CAM/CIMS 5 5、人工智能、人工智能 6 6、虚拟现实、虚
5、拟现实1.2 1.2 计算机的基本结构和工作原理计算机的基本结构和工作原理 硬件硬件基本结构基本结构 工作原理工作原理 常用术语常用术语2.2.程序的自动执行程序的自动执行1.1.存储程序原理存储程序原理1.3 1.3 微型计算机系统的组成微型计算机系统的组成硬件硬件(HardwareHardware)集成电路的出现使得微处理器飞速发展微处理器飞速发展n CPU CPUn 存储器存储器n 外部设备外部设备软件软件(SoftwareSoftware)n 系统软件系统软件 n 应用软件应用软件计算机语言计算机语言机器语言:由机器语言:由0和和1构成构成汇编语言:用助记符表示汇编语言:用助记符表示高
6、级语言:类自然语言表示高级语言:类自然语言表示微处理器飞速发展微处理器飞速发展80386803868048680486奔腾奔腾奔腾奔腾2代代奔腾奔腾4代代802868028680868086奔腾奔腾3代代IA-64(安腾)(安腾)40044004不是我不明白,这世界变化太快。扎扎实实掌握知识,以不变应万变!计算机中的常用术语计算机中的常用术语v位(位(bitbit,b b):计算机表示信息的最基):计算机表示信息的最基本单位,一个二进制位:本单位,一个二进制位:0 0或或1 1。1Byte=1B=8bits1Byte=1B=8bits1KB=1024B1KB=1024B,1MB=1024KB1
7、MB=1024KB1GB=1024MB1GB=1024MB,1TB=1024GB1TB=1024GBv字节(字节(ByteByte,B B):相邻的):相邻的8 8位位0 0和和1 1的组的组合,最通用的单位。合,最通用的单位。v字(字(wordword):计算机内部数据处理的基):计算机内部数据处理的基本单位。一个字为本单位。一个字为2 2字节,双字为字节,双字为4 4字节。字节。v字长:计算机能一次性处理的二进制位字长:计算机能一次性处理的二进制位数称为字长。不同机型字长不同。数称为字长。不同机型字长不同。主频,访存空间,指令执行时间主频,访存空间,指令执行时间计算机的五大功能部件计算机的
8、五大功能部件运算器运算器存储器存储器输出设备输出设备控制器控制器程序和程序和原始原始数据数据计算计算结果结果输入设备输入设备计算机的基本结构计算机的基本结构运算器运算器存储器存储器输出设备输出设备控制器控制器程序和程序和原始原始数据数据计算计算结果结果输入设备输入设备微型计算机的硬件组成微型计算机的硬件组成中央处理单元中央处理单元CPU控制器、运算器控制器、运算器对汇编语言程序员,最关心其中的寄存器对汇编语言程序员,最关心其中的寄存器存储器存储器内存、外存内存、外存(主存、辅存主存、辅存)内存内存呈现给汇编语言程序员是存储器地址呈现给汇编语言程序员是存储器地址外外部部设设备(接口电路)备(接口
9、电路)输入设备和输出设备输入设备和输出设备汇编语言程序员看到的是端口(汇编语言程序员看到的是端口(I/O地址)地址)图示图示图示图示微机硬件系统组成图微机硬件系统组成图数据总线数据总线地址总线地址总线控制总线控制总线ROM+RAM硬盘、软盘、硬盘、软盘、U盘等盘等I/O接接口口主存储器主存储器系统总线系统总线辅助存储器辅助存储器输入设备输入设备输出设备输出设备CPU寄存器寄存器控制器控制器运算器运算器Cache相关概念相关概念1.系统总线系统总线2.硬件结构硬件结构计算机中连接多个功能部件的信号线,分为数计算机中连接多个功能部件的信号线,分为数据总线、地址总线和控制总线。据总线、地址总线和控制
10、总线。第第1章章教学要求教学要求1.了解计算机的发展史了解计算机的发展史2.理解计算机科学中的理解计算机科学中的常用术语常用术语和和概念概念3.熟悉冯熟悉冯诺伊曼结构计算机的诺伊曼结构计算机的系统组成系统组成思考思考:为什么计算机中采用二进制?:为什么计算机中采用二进制?预习预习第第2章内容章内容再见再见本章主要教学内容本章主要教学内容l l计算机中数制基本概念、数制之间的相互转换计算机中数制基本概念、数制之间的相互转换l l无符号数和带符号数的表示方法无符号数和带符号数的表示方法l lASCII码和码和BCD码的相关概念和应用码的相关概念和应用l l汉字编码及其应用汉字编码及其应用第第2章章
11、计算机中的数据表示计算机中的数据表示第第2章章计算机中的数据表示计算机中的数据表示本章教学目的及要求本章教学目的及要求 l l熟悉数制的基本概念和计算机中熟悉数制的基本概念和计算机中常用进位计数常用进位计数制制 l l掌握掌握二、八、十、十六进制的表达和相互转换二、八、十、十六进制的表达和相互转换 l l理解理解机器数和带符号数的原码、反码、补码表机器数和带符号数的原码、反码、补码表示示 l l掌握美国信息交换标准代码(掌握美国信息交换标准代码(ASCII码)码)和二和二十进制编码十进制编码BCD码的表达及应用。码的表达及应用。l l熟悉微型计算机常用的汉字编码及其应用熟悉微型计算机常用的汉字
12、编码及其应用2.1计算机中的数制及其转换 第第2 2章章 计算机中的数据表示计算机中的数据表示 2.2计算机中数值数据的表示及运算 2.3字符编码2.4汉字编码2.1计算机中的数制及其转换计算机中的数制及其转换通常,计算机中的数据分为两类:(1)数:用来直接表示量的多少,有大小之分,能够进行加减等运算。(2)码:通常指代码或编码,在计算机中用来描述某种信息。2.1.1数制的基本概念数制的基本概念 1数的表示数的表示任何一种数制表示的数都可以写成按位权展开的多项式之和。Ndn1bn1dn2bn2dn3bn3dmbm式中:n整数的总位数。m小数的总位数。d下标表示该位的数码。b表示进位制的基数。b
13、上标表示该位的位权。2 2计算机中常用的进位计数制计算机中常用的进位计数制 计数制 基数 数 码 进位关系二进制2 0、1 逢二进一八进制8 0、1、2、3、4、5、6、7 逢八进一十进制10 0、1、2、3、4、5、6、7、8、9 逢十进一十六进制16 0、1、2、3、4、5、6、7、8、9 A、B、C、D、E、F 逢十六进一3 3计数制的书写规则计数制的书写规则(1)在数字后面加写相应的英文字母作为标识。如:二进制数的100可写成100B十六进制数100可写成100H(2)在括号外面加数字下标。如:(1011)2 表示二进制数的1011(2DF2)16 表示十六进制数的2DF2 2.1.2
14、 数制之间的转换数制之间的转换(1)十进制整数转换为二进制整数 采用基数2连续去除该十进制整数,直至商等于“0”为止,然后逆序排列余数。(2)十进制小数转化为二进制小数 连续用基数2去乘以该十进制小数,直至乘积的小数部分等于“0”,然后顺序排列每次乘积的整数部分。(3)十进制整数转换为八进制整数或十六进制整数 采用基数8或基数16连续去除该十进制整数,直至商等于“0”为止,然后逆序排列所得到的余数。(4)十进制小数转换为八进制小数或十六进制小数 连续用基数8或基数16去乘以该十进制小数,直至乘积的小数部分等于“0”,然后顺序排列每次乘积的整数部分。(5)二、八、十六进制数转换为十进制数 用其各
15、位所对应的系数,按“位权展开求和”的方法就可以得到。其基数分别为2、8、16。(6)二进制数转换为八进制数 从小数点开始分别向左或向右,将每3位二进制数分成1组,不足3位数的补0,然后将每组用1位八进制数表示即可。(7)八进制数转换为二进制数 将每位八进制数用3位二进制数表示即可。(8)二进制数转换为十六进制数 从小数点开始分别向左或向右,将每4位二进制数分成1组,不足4位的补0,然后将每组用一位十六进制数表示即可。(9)十六进制数转换为二进制数 将每位十六进制数用4位二进制数表示即可。【例2.1】将十进制整数(105)10转换为二进制整数,采用“除2倒取余”的方法,过程如下:2 105 2
16、52 余数为1 2 26 余数为0 2 13 余数为0 2 6 余数为1 2 3 余数为0 2 1 余数为1 0 余数为1所以,(105)10(1101001)2【例2.2】将十进制小数(0.8125)10转换为二进制小数,采用“乘2顺取整”的方法,过程如下:0.812521.625 取整数位10.62521.25取整数位10.2520.5取整数位00.521.0取整数位1所以,(0.8125)10(0.1101)2如果出现乘积的小数部分一直不为“0”,则可以根据精度的要求截取一定的位数即可。【例2.3】将十进制整数(2347)10转换为十六进制整数,采用“除16倒取余”的方法,过程如下:16
17、 2347 16 146 余数为11(十六进制数为B)16 9 余数为2 0 余数为9所以,(2347)10(92B)162.2 2.2 计算机中数值数据的表示计算机中数值数据的表示2.2.1基本概念 在计算机内部表示二进制数的方法称为数值编码,把一个数及其符号在机器中的表示加以数值化,称为机器数。机器数所代表的数称为数的真值。表示一个机器数,应考虑以下三个因素:1机器数的范围机器数的范围字长为8位,无符号整数的最大值是(11111111)B=(255)D,此时机器数的范围是0255。字长为16位,无符号整数的最大值是 (1111111111111111)B=(FFFF)H=(65535)D
18、此时机器数的范围是065535。2机器数的符号机器数的符号在算术运算中,数据是有正有负的,将这类数据称为带符号数。为了在计算机中正确地表示带符号数,通常规定每个字长的最高位为符号位,并用0表示正数,用1表示负数。3机器数中小数点的位置机器数中小数点的位置在机器中,小数点的位置通常有两种约定:一种规定小数点的位置固定不变,这时的机器数称为“定点数”。另一种规定小数点的位置可以浮动,这时的机器数称为“浮点数”。1原码原码正数的符号位为0,负数的符号位为1,其它位按照一般的方法来表示数的绝对值。用这样的表示方法得到的就是数的原码。【例2.13】当机器字长为8位二进制数时:X1011011X原码010
19、11011Y1011011Y原码110110111原码000000011原码10000001127原码01111111127原码11111111原码表示的整数范围是:(2n-11)(2n-11),其中n为机器字长。则:8位二进制原码表示的整数范围是12712716位二进制原码表示的整数范围是32767327672 2反码反码对于一个带符号的数来说,正数的反码与其原码相同,负数的反码为其原码除符号位以外的各位按位取反。【例2.14】当机器字长为8位二进制数时:X1011011 X原码01011011 X反码01011011 Y1011011 Y原码11011011 Y反码10100100 1反码
20、00000001 1反码11111110 127反码01111111 127反码10000000负数的反码与负数的原码有很大的区别,反码通常用作求补码过程中的中间形式。反码表示的整数范围与原码相同。3补码补码正数的补码与其原码相同,负数的补码为其反码在最低位加1。【例2.15】(1)X1011011(2)Y1011011(1)根据定义有:X原码01011011X补码01011011(2)根据定义有:Y原码11011011Y反码10100100Y补码10100101补码表示的整数范围是2n-1(2n-11),其中n为机器字长。则:8位二进制补码表示的整数范围是12812716位二进制补码表示的整
21、数范围是3276832767 当运算结果超出这个范围时,就不能正确表示数了,此时称为溢出。4补码与真值之间的转换补码与真值之间的转换正数补码的真值等于补码的本身;负数补码转换为其真值时,将负数补码按位求反,末位加1,即可得到该负数补码对应的真值的绝对值。【例2.16】X补码01011001B,X补码11011001B,分别求其真值X。(1)X补码代表的数是正数,其真值:X1011001B(126124123120)(641681)(89)D(2)X补码代表的数是负数,则真值:X(1011001求反1)B(01001101)B(0100111)B(125122121120)(32421)(39)
22、D2.2.3 2.2.3 定点数和浮点数表示定点数和浮点数表示 1定点数定点数 由于定点位置不同,一般又分为两种情况。对于整数,小数点约定在最低位的右边,称为定点整数。对于纯小数,小数点约定在符号位之后,称为定点小数。2浮点数浮点数 如果要处理的数既有整数部分,又有小数部分,则采用定点数会遇到麻烦。为此可以采用浮点数,即小数点的位置不固定。2.3 2.3 字符编码字符编码 2.3.1美国信息交换标准代码(美国信息交换标准代码(ASCII码)码)ASCII(AmericanStandardCodeforInformationInterchange)码是美国信息交换标准代码的简称,用于给西文字符编
23、码;包括英文字母的大小写、数字、专用字符、控制字符等;这种编码由7位二进制数组合而成,可以表示128种字符;在ASCII码中,按其作用可分为:34个控制字符;10个阿拉伯数字52个英文大小写字母;32个专用符号2.3.2 2.3.2 二二十进制编码十进制编码BCDBCD码码 BCD(Binary-Coded Decimal)码又称为“二十进制编码”,专门解决用二进制数表示十进数的问题。最常用的是8421编码,其方法是用4位二进制数表示1位十进制数,自左至右每一位对应的位权是8、4、2、1。1 1压缩压缩BCDBCD码码 每一位数采用4位二进制数来表示,即一个字节表示2位十进制数。例如:二进制数
24、10001001B,采用压缩BCD码表示为十进制数89D。2 2非压缩非压缩BCDBCD码码 每一位数采用8位二进制数来表示,即一个字节表示1位十进制数。而且只用每个字节的低4位来表示09,高4位为0。例如:十进制数89D,采用非压缩BCD码表示为二进制数是:00001000 00001001B 2.4 2.4 汉字编码汉字编码2.4.1 基本概念基本概念计算机处理汉字信息的前提条件是对每个汉字进行编码,这些编码统称为汉字代码。在汉字信息处理系统中,对于不同部位,存在着多种不同的编码方式。比如,从键盘输入汉字使用的汉字代码(外码)就与计算机内部对汉字信息进行存储、传送、加工所使用的代码(内码)
25、不同,但它们都是为系统各相关部分标识汉字使用的。系统工作时,汉字信息在系统的各部分之间传送,它到达某个部分就要用该部分所规定的汉字代码表示汉字。因此,汉字信息在系统内传送的过程就是汉字代码转换的过程。这些代码构成该系统的代码体系,汉字代码的转换和处理是由相应的程序来完成的。1汉字输入码汉字输入码汉字输入码是为用户由计算机外部输入汉字而编制的汉字编码,又称为汉字外部码,简称外码。使用较多的有以下4类:(1)顺序码:如区位码、电报码等。(2)音码:如拼音码、自然码等。(3)形码:如五笔字型、大众码等。(4)音形码:如双拼码、五十字元等。2汉字机内码汉字机内码 汉字机内码是汉字处理系统内部存储、处理
26、汉字而使用的编码,简称内码。3汉字字形码汉字字形码 汉字字形码是表示汉字字形信息的编码。4汉字交换码汉字交换码汉字交换码是汉字信息处理系统之间或通信系统之间传输信息时,对每个汉字所规定的统一编码。2.4.2汉字代码的表示方法汉字代码的表示方法2.4.3 2.4.3 几种常用的汉字编码几种常用的汉字编码 1 1国标码国标码即“中华人民共和国国家标准信息交换汉字编码”(代号GB2312-80)。共收录汉字和图形符号7445个。其中:一级常用汉字3755个;二级非常用汉字和偏旁部首3008个;图形符号682个。2 2区位码区位码将GB2312-80全部字符集组成一个9494的方阵,每一行称为一个“区
27、”,编号从0194;每一列称为一个“位”,编号也是从01 94。这样,每一个字符便具有一个区码和一个位码,将区码置前,位码置后,组合在一起就成为区位码。3 3BIG-5BIG-5码码 BIG-5码是我国台湾地区编制和使用的一套中文内码。它是为了解决各生产厂家中文内码不统一的问题而设计出的一套编码,并采用5大套装软件的“五大”命名为“BIG-5”码,俗称“大五码”。4 4GB13000GB13000码码 国际标准化组织(ISO)于1993年公布了“通用多八位编码字符集”的国际标准(ISO/IEC 10646)。我国发布了与其一致的国家标准,即GB13000码。本章小结 本章着重介绍了计算机中数据
28、的表示方法,重点处理了二、八、十、十六进制数的相关概念及各类数制之间相互转换的方法、无符号数和带符号数的机器内部表示、字符编码和汉字编码等。通过本章的学习,要掌握计算机内部的信息处理方法和特点,熟悉各类数制之间的相互转换,理解无符号数和带符号数的表示方法,掌握BCD码和字符的ASCII码以及汉字编码及其应用。THANK YOU VERY MUCH本章到此结束,本章到此结束,谢谢您的光临!谢谢您的光临!16/32位PC机16位位PC机是指采用机是指采用16位位80 x86 CPU的的IBM PC/XT/AT这三款个人微机或它们的兼这三款个人微机或它们的兼容机。容机。32位位PC机是指采用机是指采
29、用32位位80 x86 CPU而形而形成的微机,其基本结构仍然源于成的微机,其基本结构仍然源于PC/AT机。机。人们日常谈论的人们日常谈论的PC机或微机是上述微型机或微机是上述微型计算机系统的统称。计算机系统的统称。第第3章章80X86微处理器及体系结构微处理器及体系结构第第3章章3.18086微处理器结构微处理器结构3.28086微处理器的存储器和微处理器的存储器和I/O组织组织3.38086的时钟和总线周期和操作时序的时钟和总线周期和操作时序3.480286、80386、80486等高档微处理器等高档微处理器3.1 80863.1 8086微处理器结构微处理器结构 3.1.18086微处理
30、器内部结构微处理器内部结构3.1.28086微处理器的寄存器结构微处理器的寄存器结构3.1.1 80863.1.1 8086微处理器内部结构微处理器内部结构教学提示教学提示EU和和BIU的功能难理解的功能难理解v重点介绍重点介绍8086微处理器微处理器的内部的内部EU和和BIU两大模块两大模块及其功能及其功能3.1.1 80863.1.1 8086微处理器微处理器内部结构内部结构微处理器(微处理器(CPU)=ALU+Control微型计算机微型计算机=CPU+I/O接口接口+I/O设备设备8086CPU基本性能指标基本性能指标v1616位,集成位,集成2.92.9万只晶体管万只晶体管v+5V+
31、5V,4040条条引脚引脚,双列直插,双列直插v5MHz10MHz5MHz10MHz,0.3ns0.6ns0.3ns0.6nsv1616根根DBDB和和2020根根ABAB,寻址空间达,寻址空间达1MB1MBv可组成多处理器系统可组成多处理器系统+M两大功能部件两大功能部件v执行部件执行部件EU(ExecutionUnit)结结构构:16位位的的ALU+8个个16位位通通用用寄寄存存器器+16位位的的状状态态标标志志寄寄存存器器+数数据据暂暂存存寄寄存存器器+执执行行部件的控制电路。部件的控制电路。主要功能主要功能:从指令队列中取指、译码、执行;从指令队列中取指、译码、执行;若若存存、取取数数
32、据据,向向BIU发发命命令令,读读/写写存存储储器器或或I/O接口。接口。v总线接口部件总线接口部件BIUBIU(Bus Interface Bus Interface UnitUnit)结构:四个四个1616位段地址位段地址寄存器寄存器(CS(CS、DSDS、SSSS和和ES)ES)+16 16位指令指针寄存器位指令指针寄存器IP IP+20 20位地址加位地址加法器法器 +6 6字节指令队列缓冲器字节指令队列缓冲器+总线控制电路。总线控制电路。主要功能:主要功能:根据根据EUEU的请求,负责完成的请求,负责完成CPUCPU与与存储器或存储器或I/OI/O设备之间的数据传送。设备之间的数据传
33、送。EU和和BIU并行工作并行工作等待取指等待取指1 执行执行1 等待取指等待取指2 执行执行2 等待取指等待取指3 执行执行3MPU总总线线忙忙闲闲忙忙闲闲忙忙闲闲传统微传统微处理器处理器的指令的指令执行过执行过程程取指取指1取指取指2取指取指3取指取指4取指取指5取指取指6EU总线总线执行执行1 执行执行2 执行执行3 执行执行4 执行执行5 执行执行6忙忙忙忙忙忙忙忙忙忙忙忙BIU8086CPU的的指令执指令执行过程行过程教学要求教学要求1.了解了解8086CPU的基本性能指标的基本性能指标2.掌握掌握8086CPU的的EU和和BIU的结构与功能的结构与功能3.理解理解8086CPU的的
34、EU和和BIU并行工作过程并行工作过程预习预习:P49-8086CPU的寄存器结构的寄存器结构思思考考:什什么么是是寄寄存存器器?为为什什么么在在CPU中中设置寄存器?设置寄存器?3.1.2 3.1.2 80868086微处理器的寄存器结构微处理器的寄存器结构教学提示教学提示介介绍绍8086微微处处理理器器的的寄存器结构寄存器结构及用途及用途寄存器是寄存器是CPUCPU内部的高速存储单元内部的高速存储单元它它们们为为处处理理器器提提供供各各种种操操作作所所需需要要的的数据或地址等信息数据或地址等信息汇编语言程序采用它们各自的符号名汇编语言程序采用它们各自的符号名3.1.28086微处理器的微处
35、理器的寄存器结构寄存器结构对程序员来说,对程序员来说,8086内部结构内部结构的最重要的最重要的是其寄存器组的是其寄存器组v8个通用寄存器个通用寄存器v1个指令指针寄存器个指令指针寄存器v1个标志寄存器个标志寄存器v4个段寄存器个段寄存器8086CPU内部寄存器内部寄存器结构结构累加器累加器基址寄存器基址寄存器计数寄存器计数寄存器数据寄存器数据寄存器堆栈指针寄存器堆栈指针寄存器基址指针寄存器基址指针寄存器源变址寄存器源变址寄存器目的变址寄存器目的变址寄存器指令指针寄存器指令指针寄存器标志寄存器标志寄存器代码段寄存器代码段寄存器段寄存器段寄存器附加段寄存器附加段寄存器堆栈段寄存器堆栈段寄存器数据
36、寄存器数据寄存器地址指针和地址指针和变址寄存器变址寄存器控制寄存器控制寄存器数据段寄存器数据段寄存器通用寄存器通用寄存器IPFLAGSAHALBHBLCHCLDHDLSPBPSIDIESSSDSCS一、一、8086的通用寄存器的通用寄存器8086的的16位通用寄存器是:位通用寄存器是:AXBXCXDXSIDIBPSP其中前其中前4个数据寄存器都还可分成高、低个数据寄存器都还可分成高、低8位位两个独立的通用寄存器:两个独立的通用寄存器:AHBHCHDHALBLCLDL对其中某对其中某8位的操作,并不影响另外对应位的操作,并不影响另外对应8位位的数据的数据1、数据寄存器、数据寄存器数据寄存器用来存
37、放计算的结果和操作数,数据寄存器用来存放计算的结果和操作数,BX也可以存放地址也可以存放地址每个寄存器又有它们各自的专用目的每个寄存器又有它们各自的专用目的AX累加器,使用频度最高,用于算术、累加器,使用频度最高,用于算术、逻辑运算以及与外设传送信息等;逻辑运算以及与外设传送信息等;BX基址寄存器,常用做存放存储器地址;基址寄存器,常用做存放存储器地址;CX计数器,循环和串操作等指令中的隐计数器,循环和串操作等指令中的隐含计数器;含计数器;DX数据寄存器,常用来存放双字长数据数据寄存器,常用来存放双字长数据的高的高16位,或存放外设端口地址。位,或存放外设端口地址。2、地址指针和变址寄存器、地
38、址指针和变址寄存器地址指针寄存器用于寻址内存地址指针寄存器用于寻址内存堆栈堆栈内数据内数据SPSP,堆堆栈栈指指针针寄寄存存器器,指指示示栈栈顶顶的的偏偏移移地地址,专用址,专用BPBP,基基址址指指针针寄寄存存器器,表表示示数数据据在在堆堆栈栈段段中的地址中的地址SPSP和和BPBP与与SSSS段段寄寄存存器器联联合合确确定定堆堆栈栈段段中中的的存储单元地址存储单元地址变址寄存器常用于存储器寻址时提供地址变址寄存器常用于存储器寻址时提供地址nSI是源变址寄存器是源变址寄存器nDI是目的变址寄存器是目的变址寄存器串操作类指令中,串操作类指令中,SI和和DI具有特别的功能具有特别的功能通用寄存器
39、的特定用法寄存器操作寄存器操作AX字乘,字除,字I/OCL移位次数AL字节乘,字节除,字节I/O,查表转换,十进制运算DX字乘,字除,I/O端口访问AH字节乘,字节除SP堆栈操作BX查表转换、存储单元偏移地址SI数据串地址CX数据串操作指令,循环指令DI数据串地址二、控制寄存器二、控制寄存器1、指令指针寄存器、指令指针寄存器IP指示代码段中指令的偏移地址指示代码段中指令的偏移地址与代码段寄存器与代码段寄存器CS联用,确定下一条指令的联用,确定下一条指令的物理地址物理地址计算机通过计算机通过CS:IP寄存器来控制指令序列的寄存器来控制指令序列的执行流程执行流程专用寄存器专用寄存器OF111512
40、DF10IF9TF8SF7ZF65AF43PF21CF02、标志寄存器、标志寄存器 程序设计需要利用标志的状态程序设计需要利用标志的状态标志(标志(Flag)用于反映指令执行结果或)用于反映指令执行结果或控制指令执行形式控制指令执行形式8086处理器的各种标志形成了一个处理器的各种标志形成了一个16位位的标志寄存器的标志寄存器FLAGS(程序状态字(程序状态字PSW寄寄存器存器)标志的分类标志的分类状态标志记录程序运行结果的状态状态标志记录程序运行结果的状态信息,许多指令的执行都将相应地设置信息,许多指令的执行都将相应地设置它它CFZFSFPFOFAF控制标志可由程序根据需要用指令控制标志可由
41、程序根据需要用指令设置,用于控制处理器执行指令的方式设置,用于控制处理器执行指令的方式DFIFTFv进位标志进位标志CFCF(Carry Carry FlagFlag)3AH+7CHB6H,没有进位:,没有进位:CF=0AAH+7CH(1)26H,有进位:,有进位:CF=1当运算结果的最高有效位有进位(加法)当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置或借位(减法)时,进位标志置1,即,即CF=1;否则;否则CF=0。v零标志零标志ZFZF(Zero FlagZero Flag)3AH+7CHB6H,结果不是零:,结果不是零:ZF=084H+7CH(1)00H,结果是零:,
42、结果是零:ZF=1 注意注意:ZF为为1表示的结果是表示的结果是0若运算结果为若运算结果为0,则,则ZF=1;否则否则ZF=0v符号标志符号标志SF(SignFlag)运算结果最高位为运算结果最高位为1,则,则SF=1;否则;否则SF=03AH+7CHB6H,最高位,最高位D71:SF=184H+7CH(1)00H,最高位,最高位D70:SF=0 有符号数据用最高有效位表示数据的符号有符号数据用最高有效位表示数据的符号所以,最高有效位就是符号标志的状态所以,最高有效位就是符号标志的状态v奇偶标志PF(ParityFlag)3AH+7CHB6H10110110B结果中有结果中有5个个1,是奇数:
43、是奇数:PF=0 PF标标志志仅仅反反映映最最低低8位位中中“1”的的个个数数是是偶或奇,即使是进行偶或奇,即使是进行16位字操作位字操作当运算结果最低字节中“1”的个数为零或偶数时,PF=1;否则PF=0v溢出标志溢出标志OF(OverflowFlag)若算术运算的结果有溢出,若算术运算的结果有溢出,则则OFOF1 1;否则;否则 OFOF0 03AH+7CHB6H,没有溢出:,没有溢出:OF=0 AAH+7CH(1)26H,产生溢出:,产生溢出:OF=1v辅助进位标志辅助进位标志AF(AuxiliaryCarryFlag)3AH+7CHB6H,D3有进位:AF=1运运算算时时D D3 3位
44、位(低低半半字字节节)有有进进位位或或借借位位时,时,AF=1AF=1;否则;否则AF=0AF=0。这这个个标标志志主主要要由由处处理理器器内内部部使使用用,用用于于十十进进制制算算术术运运算算调调整整指指令令中中,用用户一般不必关心户一般不必关心v方向标志方向标志DF(DirectionFlag)用于串操作指令中,控制地址的变化用于串操作指令中,控制地址的变化方向:方向:设置设置DFDF0 0,存储器地址自动增加;,存储器地址自动增加;设置设置DFDF1 1,存储器地址自动减少。,存储器地址自动减少。CLDCLD指令复位方向标志:指令复位方向标志:DFDF0 0STDSTD指令置位方向标志:
45、指令置位方向标志:DFDF1 1v中断允许标志中断允许标志IF(Interrupt-enableFlag)用于控制外部可屏蔽中断是否可以被用于控制外部可屏蔽中断是否可以被处理器响应:处理器响应:设置设置IFIF1 1,则允许中断;,则允许中断;设置设置IFIF0 0,则禁止中断。,则禁止中断。CLICLI指令复位中断标志:指令复位中断标志:IFIF0 0STISTI指令置位中断标志:指令置位中断标志:IFIF1 1v陷阱标志陷阱标志TF(TrapFlag)用于控制处理器进入单步操作方式:用于控制处理器进入单步操作方式:设置设置TFTF0 0,处理器正常工作;,处理器正常工作;设置设置TFTF1
46、 1,处理器单步执行指令。,处理器单步执行指令。单单步步执执行行指指令令处处理理器器在在每每条条指指令令执执行行结结束束时,便产生一个编号为时,便产生一个编号为1 1的内部中断的内部中断这种内部中断称为这种内部中断称为单步中断单步中断TFTF也称也称单步标志单步标志n逐条调试程序指令,即逐条调试程序指令,即单步调试单步调试三、段寄存器三、段寄存器8086有有4个个16位段寄存器位段寄存器CS(代码段)(代码段)指明指明代码段代码段的起始地址的起始地址SS(堆栈段)(堆栈段)指明指明堆栈段堆栈段的起始地址的起始地址DS(数据段)(数据段)指明指明数据段数据段的起始地址的起始地址ES(附加段)(附
47、加段)指明指明附加段附加段的起始地址的起始地址每个段寄存器用来确定一个逻辑段的起始地址,每个段寄存器用来确定一个逻辑段的起始地址,每种逻辑段均有各自的用途每种逻辑段均有各自的用途教学要求教学要求1.理解理解8086微处理器的微处理器的寄存器结构寄存器结构2.熟悉熟悉8086微处理器的寄存器用途微处理器的寄存器用途思思考考:若若CPU的的字字长长为为n位位,则则该该CPU的访存空间为多少的访存空间为多少B?预习:预习:8086微处理器的存储器微处理器的存储器堆栈(堆栈(Stack)堆栈是主存中一个特殊的区域堆栈是主存中一个特殊的区域采用采用先进后出先进后出FILOFILO(First In La
48、st OutFirst In Last Out)或或后进先出后进先出LIFOLIFO(Last In First OutLast In First Out)的原)的原则进行存取操作。则进行存取操作。通常由处理器自动维持。在通常由处理器自动维持。在80868086中,由堆中,由堆栈段寄存器栈段寄存器SSSS和堆栈指针寄存器和堆栈指针寄存器SPSP共同指示共同指示3.28086微处理器的存储器和微处理器的存储器和I/O组织组织3.2.18086微处理器的存储器微处理器的存储器3.2.28086微处理器的微处理器的I/O组织组织教学提示教学提示介绍介绍8086CPU的存储器和的存储器和I/O组织组织
49、8086微处理器存储器的分段、存储微处理器存储器的分段、存储体的连接与访问都很难理解体的连接与访问都很难理解注意区分物理地址与逻辑地址注意区分物理地址与逻辑地址3.2.18086微处理器的存储器微处理器的存储器寄存器是微处理器内部暂存数据的存储寄存器是微处理器内部暂存数据的存储单元,以名称表示单元,以名称表示存储器则是微处理器外部存放程序及其存储器则是微处理器外部存放程序及其数据的空间数据的空间程序及其数据可以长久存放在外存,在程序及其数据可以长久存放在外存,在程序需要时才进入主存程序需要时才进入主存主存需要利用地址区别主存需要利用地址区别一、存储器结构一、存储器结构1 1、存储器单元的地址和
50、内容、存储器单元的地址和内容存储单元地址存储单元地址:8086系统中,为了标识系统中,为了标识和存取每一个存储单元,给每个存储单和存取每一个存储单元,给每个存储单元规定的元规定的唯一编号唯一编号。存储单元的内容存储单元的内容:一个存储单元中存放:一个存储单元中存放的信息。的信息。存储单元存放的信息存储单元存放的信息从从图图可可看看到到,地地址址为为34560H的的字字节节的的存存储储单单元元中中的的内内容容是是34H,而而地地址址为为34561H的的字字节节存存储储单单元元中中的的内容是内容是12H。对准字和非对准字对准字和非对准字v任何两个相邻的字节组成一个字。任何两个相邻的字节组成一个字。