版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2021-12-301单片微机原理及单片微机原理及应用应用2021-12-302教教 材材 严海蓉,薛涛等,嵌入式微处理器原理与应用严海蓉,薛涛等,嵌入式微处理器原理与应用-基于基于ARM Cortex-M3微控制器微控制器(STM32系列系列),清华大学出版社,清华大学出版社,2014年年12月月 第第1版。版。 参考书目: 1吴常玉,曹孟娟,王丽红.ARMCortex-M3与Cortex-M4权威指南(第3版),清华大学出版社,2015 2武奇生,白璘等,基于ARM的单片机应用及实践-STM32案例式教学,机械工业出版社,2014年6月第1版 3喻金钱,喻斌,STM32F系列ARMCort
2、ex-M3核微控制器开发与应用,清华大学出版社,2011 4杨光祥,梁华,朱军,STM32单片机原理与工程实践(第1版),武汉理工大学出版社,20132021-12-303课程目的和基本要求课程目的和基本要求 本课程要求学生掌握计算机中的数值概念,包括各类数据编码与存储方式;通过学习微型计算机的基本原理和组成结构,使学生掌握微型计算机的工作原理,对计算机建立从软件到硬件、从宏观到微观的正确认知;了解ARM系列处理器内核的发展历程和技术特点;通过课程学习,掌握Cortex-M3的体系结构,了解其先进技术及对性能的影响,掌握其操作模式、寄存器内容及功能。深入掌握STM32F10X单片机的内部结构、
3、核心技术、功能部件、内部资源以及编程方法,掌握其接口技术;通过应用实例的讲解与讨论,让学生进一步巩固所学知识,提高分析和设计技能,并促进综合素质的培养。课程主要内容(1)讲解微型计算机的基本原理、组成结构、先进技术,各类进制数的转换方法、定点数与浮点数的存储格式、无符号数和带符号数的编码方法、ASCII码、BCD码、汉字编码的基本技术。(2)ARM家族介绍,讲解微型计算机的基本原理与组成结构,学习单片微型计算机发展,简要介绍嵌入式系统基本概念、Cortex-M3内核的技术基础和功能特性。(3)讲解Cortex-M3体系结构,包括微处理器核结构、处理器的操作模式及状态。讲授Cortex-M3的寄
4、存器、总线矩阵和系统地址映射方法。(4)讲解STM32F10X的电源、时钟及复位电路,包括电源电路、时钟树结构、复位电路和启动设置。(5)讲解STM32F10X的最小系统与开发环境。主要内容包括:STM32F10X最小系统运行条件、STM32F10X最小系统设计规范、STM32F10X程序下载的几种方法,以实例为基础介绍STM32开发的基本要求和编程技能。(6)讲解STM32F10X的功能部件与内部资源,主要内容包括:电源控制、实时时钟RTC、GPIO、中断和事件、高级定时控制器TIM1、通用定时控制器TIMx、USART收发器、模拟数字转换ADC等。(7)应用实例:讲述基于STM32的工程设
5、计实例,以交通灯控制等内容为基础,针对设计要求讲解应用需求分析、硬件构成,软件设计方法等。2021-12-3042021-12-305成绩评定成绩评定 开卷考试开卷考试( (带教材与手写笔记带教材与手写笔记) ) 笔笔 试试(60)+(60)+ 平时成绩平时成绩(10)+(10)+ 上机考试上机考试(20)+(20)+ 实验报告实验报告(10)(10)2021-12-306引引 言言问题引入问题引入假设要设计一个电力监测的信息采集与传输终端假设要设计一个电力监测的信息采集与传输终端,实现以下功能,实现以下功能: :(1)(1)多种信号的数据采集多种信号的数据采集(2)(2)数据效验,帧结构制定
6、数据效验,帧结构制定(3)(3)数据本地存储数据本地存储(4)(4)液晶(液晶(LCDLCD)屏显示相关信息)屏显示相关信息(5)(5)通过通过3G/GPRS3G/GPRS网络与后台主机通信网络与后台主机通信(6)(6)按键实现人机交互按键实现人机交互引言2021-12-3072021-12-308第第1 1章章 微型计算机基础微型计算机基础 1 1计算机发展历程计算机发展历程2 2微型计算机结构、总线、计算机工作原理 3 3计算机中的编码及运算基础2021-12-3091 1 计算机发展历程计算机发展历程1 1计算机发展历程计算机发展历程 1.1 计算机的发展第一代计算机是电子管计算机。 计
7、算机发展史1946年2月宾夕法尼亚大学的莫奇利和艾克特研制成功世界上第一台计算机电子数字积分计算机ENIAC。ENIAC预示着科学家将从奴隶般的计算中解脱出来。但是ENIACA存在两大缺点:一、没有严格意义上的存储器;二、用布线接板进行控制。 1945年3月,冯诺伊曼起草了一份关于“离散变量自动电子算机EDVAC的设计报告,对ENIAC作了两项重大的改进: 一是在计算机内采用二进制,大大简化了计算机的结构和运算过程; 二是把程序和数据一起存贮在计算机内,使得计算机的全部运算成为真正的自动过程。 1956年,美国贝尔实验室用晶体管代替真空管,制成了世界上第一台全晶体管计算机(数值计算和处理)。
8、第二代计算机是晶体管计算机。 第三代计算机是中小规模集成电路计算机(60-70年代BASIC,开始处理图像、文字)。 第四代计算机是大规模集成电路计算机。 第五代计算机是人工智能计算机。 这一代的核心设计思想是突破冯诺伊曼体系结构。遗憾的是,迄今为止,还没有出现一台真正意义上的第五代计算机。 1.2 微机的发展与分类1. 微机的分类(1)按结构分可以把微机分成单片机和多片机 单片机是把中央处理器、随机存取存储器、只读存储器、输入/输出端口等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。 多片机是指将中央处理器、随机存取存储器、只读存储器、输入/输出端口、总线等主要计算机功能部件,采
9、用微焊接、封装等工艺分别用一块芯片集成,然后再组装起来的微型计算机。 (2)按组装方式可以把微机分为单板机和多板机 单板机是指将计算机的各个部分都组装在一块印制电路板上,包括微处理器、存储器、输入输出接口,还有简单的七段发光二极管显示器、小键盘、插座等其他外部设备。 多板机是指将CPU、存储器、I/O接口电路和总线接口等组装在一块主机板(即微机主板)上,再通过系统总线和其它多块外设适配板卡连接键盘、显示器、打印机、软/硬盘驱动器及光驱等设备。 (3)按外形可以把微机分为台式机、笔记本(4)按CPU的数据总线位数分 把微机分为4位机、8位机、16位机、32位机、64位机等。2. 微机的发展(1)
10、第一代:4位及低档8位微处理器(2)第二代:中、高档8位微处理器(3)第三代:16位微处理器(4)第四代:32位微处理器(5)第五代:高档32位微处理器(6)第六代:64位微处理器1.3 1.3 单片机发展史单片机发展史单片机发展史1958年,TI公司的杰克基尔比发明了第一块集成电路;1961年,TI公司研发出第一个基于IC的计算机;1965年,高登摩尔提出了描述集成电路工业发展规律的摩尔定律;同年,中国第一块集成电路诞生;1968年,Intel公司诞生,推出第一片1K字节的RAM;1981年,Intel公司推出了8位微控制器8051。单片机的发展趋势单片机的发展趋势走向集成、嵌入式走向集成、
11、嵌入式嵌入式系统的发展主要来源于两大动力,即社会需求的拉动和先进技术的推动,需求提供了市场,带动了新技术的产生,刺激了新技术的推广。嵌入式系统的发展动力示意图1.4 微型计算机基本组成微型计算机基本组成2021-12-30202 2 微型计算机基本原理微型计算机基本原理2021-12-3021 2微型计算机基本原理微型计算机基本原理计算机结构计算机结构 2021-12-30221. 1. 微型计算机结构微型计算机结构 在大规模集成电路技术的支撑下,计算机可做到体积小,在大规模集成电路技术的支撑下,计算机可做到体积小,重量轻,使用方便,功能完备,形成微型计算机。重量轻,使用方便,功能完备,形成微
12、型计算机。 2021-12-30231. 1. CPU (CPU (中央处理单元中央处理单元 微处理器微处理器) CPUCPU是微型计算机的核心,它包含:是微型计算机的核心,它包含:ALUALU:对输入对输入CPUCPU的数据进行运算(算术及逻的数据进行运算(算术及逻辑运算)辑运算)控制器:控制器:完成同步定时(时钟电路)及产生完成同步定时(时钟电路)及产生控制信号(控制电路)控制信号(控制电路)工作寄存器:工作寄存器:存放操作数及中间结果存放操作数及中间结果 2021-12-30242. 2. 存储器存储器 memorymemory 完成记忆功能,用于存储数据,由多个存储完成记忆功能,用于存
13、储数据,由多个存储单元构成。单元构成。存储单元存储单元:具有特定地址的存储单位,存储信息分为:具有特定地址的存储单位,存储信息分为若干二进制位,若干二进制位,8 8位机为位机为8 8位(位(bitbit), ,即即1byte1byte,1616位机为位机为1616位,即位,即1 1个字(个字(wordword)。)。地址地址:访问某存储单元的特定位置编号(例如,要在:访问某存储单元的特定位置编号(例如,要在教室找某一个人,要知道他在几排第几位),地教室找某一个人,要知道他在几排第几位),地址由二进制码构成,二进制位数决定了单元多少。址由二进制码构成,二进制位数决定了单元多少。2021-12-3
14、025存储容量:存储容量:存储容量与地址位数相关存储容量与地址位数相关 8 8位地址位地址 2 28 8 为为256256个存储单元个存储单元 1616位地址位地址 2 216 16 为为64K64K 32 32位地址位地址 2 23232 为为4G存储器读:存储器读:CPUCPU从存储器中取数据的过程,读数从存储器中取数据的过程,读数据不影响原存储单元内容。据不影响原存储单元内容。存储器写:存储器写:CPUCPU将数码写入存储器的过程,写入将数码写入存储器的过程,写入的新数据取代原数据。的新数据取代原数据。字长:字长: 计算机所用二进制代码的位数称为该计算机的字长计算机所用二进制代码的位数称
15、为该计算机的字长8 8位位字节字节bytebyte1616位位字字wordword3232位位双字双字double worddouble word3存储器存储器的字长及寻址能力的字长及寻址能力寻址能力:寻址能力:寻址能力指寻址能力指CPUCPU对存储器访问的空间的大小,对存储器访问的空间的大小,它取决于地址总线的宽度。它取决于地址总线的宽度。1010位位102410241K1K2020位位1024K1024K1M1M3030位位1024M 1024M 1G1G4040位位1024G1024G1P1P5050位位1024P 1024P 1T1T6060位位1024T 1024T 1E1EMCS-
16、51:1616位位64K64KSTM-32:3232位位4G4G3 存储器工作原理存储器工作原理以一个以一个256单元的存储器为例单元的存储器为例存储器原理结构图每个单元用两位每个单元用两位16进制数编号,进制数编号,称为单元地址:称为单元地址:如:如:00、01、02、03、FFH等等每个单元存放每个单元存放8位二进制信息,位二进制信息,即:数码内容。即:数码内容。每个单元的地址编码,与该地址单元中存放的内容,每个单元的地址编码,与该地址单元中存放的内容,两者为不同概念,不容混淆。两者为不同概念,不容混淆。必须注意:必须注意:AB(ABUS) 地址总线(此例地址总线(此例8-bit);(DB
17、US) 数据总线(数据总线(8-bit)。)。存储器工作过程:存储器工作过程:控制器控制下:控制器控制下: AB产生地址产生地址(此例(此例8位二进制数码),位二进制数码),经地址译码器产生某一(也是唯一)单元的选通信号,经地址译码器产生某一(也是唯一)单元的选通信号,然后既可对这个单元的信息内容进行读取或写入修改操作。然后既可对这个单元的信息内容进行读取或写入修改操作。DB存储器读操作示意图存储器读操作:存储器读操作: 以读取以读取04单元为例,单元为例,控制器送出地址控制器送出地址04到到AB,经地址译码器选中经地址译码器选中04单元,单元, 使其内容使其内容84H放到放到DB上,上,CP
18、U再控制将其读入并作相应处理。再控制将其读入并作相应处理。读操作数码类型读操作数码类型1、程序指令;、程序指令;2;原始;原始数码数码;(ROM)3、运算处理过程中间结果。、运算处理过程中间结果。(RAM)3 存储器工作原理存储器工作原理以一个以一个256单元的存储器为例单元的存储器为例存储器原理结构图每个单元用两位每个单元用两位16进制数编号,进制数编号,称为单元地址:称为单元地址:如:如:00、01、02、03、FFH等等每个单元存放每个单元存放8位二进制信息,位二进制信息,即:数码内容。即:数码内容。每个单元的地址编码,与该地址单元中存放的内容,每个单元的地址编码,与该地址单元中存放的内
19、容,两者为不同概念,不容混淆。两者为不同概念,不容混淆。必须注意:必须注意:存储器工作过程:存储器工作过程:控制器控制下:控制器控制下: AB产生地址产生地址(此例(此例8位二进制数码),位二进制数码),经地址译码器产生某一(也是唯一)单元的选通信号,经地址译码器产生某一(也是唯一)单元的选通信号,然后既可对这个单元的信息内容进行读取或写入修改操作。然后既可对这个单元的信息内容进行读取或写入修改操作。存储器写操作示意图AB(ABUS) 地址总线(此例地址总线(此例8-bit);(DBUS) 数据总线(数据总线(8-bit)。)。DB存储器写操作:存储器写操作:以向以向10H单元写入数码单元写入
20、数码26H为例,为例,控制器送出地址控制器送出地址10H到到AB,经地址译码器选中经地址译码器选中10H单元,单元,同同时控制时控制CPU把数码把数码26H放在放在DB, 再控制将该数码写入再控制将该数码写入10H内。内。数码信息写入后,没新信息写入前,一直保留数码信息写入后,没新信息写入前,一直保留不变不变;存储器读出是非破坏性的。存储器读出是非破坏性的。(输出输出)(双向双向)系统总线(系统总线(System Bus) 尽管各种微机的总线类型和标准有所不同,但是大体上都包含三种不同功能的总线,这就是数据总线DB(Data Bus)、地址总线AB(Address Bus)和控制总线CB(Co
21、ntrol Bus)。 输入输入/输出设备(输出设备(I/O设备即外围设备)及其接口电路设备即外围设备)及其接口电路 输入设备是将程序、数据、信息和询问信号送给微机的一类设备。 输出设备是将微机的计算和处理结果或回答信号以各种形式表现出来的一类设备。 输入输入/输出接口电路输出接口电路输入/输出接口电路是CPU和I/O设备打交道的必经之路,具有协调和转换功能,通常又简称为接口。4. 4. 微型计算机其他重要部分微型计算机其他重要部分5机器语言汇编语言与高级语言 机器指令 机器指令是指能被CPU识别和执行的一个二进制位串形式的指令。 机器语言程序 机器语言是计算机能够识别和执行的唯一语言。机器语
22、言程序由一条一条的机器指令组成的程序。 汇编指令 二进制位串形式的机器指令不便于使用和记忆,人们用几个英文字符构成的助记符来表示的机器指令,就是所谓的汇编指令,或者称为符号指令。 汇编指令和机器指令基本上是一一对应的。 汇编语言源程序 是指程序员使用汇编指令(符号指令)编写的源程序。 汇编程序 是一种系统程序,能够将汇编语言程序(源程序)编译成CPU能够识别并执行的目标指令(二进制)代码的程序。 目标程序 汇编程序编译源程序而得的二进制机器指令程序。 汇编 汇编程序将汇编语言源程序编译成目标程序的过程称为汇编过程,简称汇编。 汇编原理:两次扫描 机器指令操作代码表;伪指令操作表;符号表。 第一
23、次扫描:主要完成符号表的建立; 第二次扫描:将程序转换为机器指令代码或数据等。 汇编语言程序设计的特点 1.指令与机器硬件密切相关; 2.对语句的选择重要; 3.编写复杂程序时,不要直接编程,先画流程图; 4.使用实际的机器来调试。 汇编语言程序设计的步骤 与其他程序设计语言编程一样: 1.理解设计任务; 2.建立数学模型; 3.确定算法; 4.模块化程序设计。 汇编语言与高级语言的比较 1.高级语言的优点:容易学习和使用 2.高级语言的缺点: 不能由CPU直接执行,必须通过编译和连接过程转换得到机器语言程序才能最终由CPU解释执行; 可执行程序的执行效率低(汇编语言执行效率高);程序的机器指
24、令代码不如汇编程序精炼(但高级语言的源代码比较简单);2021-12-30353 3 计算机中数据表示与存储2021-12-30363.1 位置计数制 3.2 负数在计算机中的编码 3.3 实数在计算机中的表示 3.4 十进数的编码3.5 字符的编码 3.6 模拟信号编码的一般过程 3.7 数据压缩3 3 计算机中数据表示与存储2021-12-3037各种数据在计算机中如何表示 计算机的基本功能是对数据进行计算和处理加工。冯诺依曼体系结构的基础是二进制,计算机中只能直接处理二值的数字数据。因此,现实世界的各种数据都要转换为二进制代码,才可以输入到计算机中进行存储和处理。按照一定规则,用二进制代
25、码表示具体数据就称为编码。2021-12-30383.1 位置计数制 位置计数制是一种数的表示方法,特点是:同样的数字出现在数的不同位置,所代表的值是不同的。 位置计数制也称为进位计数制。每一位计满若干个数后就会进位。常用的进位计数制的数有十进制数、二进制数、八进制数和十六进制数。2021-12-30393.1 位置计数制 数的按权展开式 各种进位制的数 不同数制的转换 基本的二进制运算2021-12-3040数的按权展开式 每一个进位计数制的数,都可以用按权展开式来表示100112211nmiiimmnnnnbdbdbdbdbdbdD数码数码权权基数基数0.0060.050.7420300
26、106105107104102103 (324.756)756.32432101210可以展开为:如十进制数2021-12-3041各种进位制的数数制数制基数基数位权位权运算规则运算规则尾符尾符十进制十进制0 09 91010n n逢十进一逢十进一D D或或1010二进制二进制0 01 12 2n n逢二进一逢二进一B B或或2 2八进制八进制0 07 78 8n n逢八进一逢八进一O O或或8 8十六进制十六进制0 09 9、A AF F1616n n逢十六进一逢十六进一H H或或16162021-12-3042各种进位制的数(续)10122101221012216816D1631648 .
27、D43848185878114.1752121212021)11.101()(例如:十六进制数)(例如:八进制数例如:二进制数2021-12-3043不同数制的转换其他进位制的数转换成十进制数将其他进制的数写成按权展开式;将按权展开式在十进制中进行计算,得到的结果就是等值的十进制数。2021-12-3044不同数制的转换其他进位制的数转换成十进制数 将十六进制数7AC.1B转换成十进制数 。的等值十进制数是即:十六进制数)(制的形式,并计算:把按权展开式写为十进)(解:写为按权展开式:8751964.10546B1AC.76875)(1964.105404296875. 00625. 0121
28、601792161116116121610167B1 .AC716B16116C16A167B1 .AC7102-1012162-1012162021-12-3045十进制转换为其他进制整数部分 十进制整数转换为其他进制整数的方法是:除基取余,逆序读数。 将十进制数除以另一进制的基数,保留余数。 当上一次的商不等于0时,将商再除以基数,保留余数。直到商等于0,除法停止。 后得到的余数,先读取;先得到的余数,后读取。这样排列的余数就是转换结果。2021-12-3046十进制转换为其他进制整数部分 将十进制数28转换为二进制数。解:二进制的基数是2,具体方法就是:除2取余,逆序读数。转换过程如下:
29、 即:十进制数28的等值二进制数是(11100)2 2021-12-3047十进制转换为其他进制小数部分 十进制小数转换为其他进制小数的方法是:乘基取整,顺序读数。将十进制小数乘以另一进制的基数,保留乘积的整数部分。若乘积的小数部分不等于0,将小数再乘以另一进制的基数,保留乘积的整数。直到乘积的小数部分等于0,或者转换后的精度已够时,乘法停止。先得到的整数,先读取;后得到的整数,后读取。这样排列的整数部分就是转换结果。2021-12-3048十进制转换为其他进制小数部分 将十进制小数0.125转换为二进制小数。解:二进制的基数是2,具体方法就是:乘2取整,顺序读数。转换过程如下:即:十进制小数
30、0.125的等值二进制小数是(0.001)22021-12-3049二进制数和八进制数的转换 八进制转化为二进制一个八进制数可以写为3位二进制数。只要将八进制数中的每一位转换为3位二进制数即可,首尾的0可以不写。将八进制数315.26转换成二进制数。 解:解: (315.26)(315.26)8 8=(=(011011 001001 101101. .010010 110110) )2 2=(11001101.01011)=(11001101.01011)2 22021-12-3050二进制数和八进制数的转换 二进制转化为八进制从小数点开始,向左、右两边每3位二进制数分成一组,高位不足3位在高
31、位补0,低位不足3位在低位补0。将每组二进制数写为等值的八进制数,即可完成转换。将二进制数1011010111.1011转换成八进制数。(高位补0) 001 011 010 111 . 101 100 (低位补0)1327.542021-12-3051二进制数和十六进制数的转换 十六进制转化为二进制一个十六进制数可以写为4位二进制数。只要将十六进制数中的每一位转换为4位二进制数即可,首尾的0可以不写。将十六进制数3A5.2E转换成二进制数 解: (3A5.2E)16=(0011 1010 0101 . 0010 1110)2 =(1110100101.0010111)22021-12-3052
32、二进制数和十六进制数的转换 二进制转化为十六进制从小数点开始,向左、右两边每4位二进制数分成一组,高位不足4位在高位补0,低位不足4位在低位补0。将每组二进制数写为等值的十六进制数,即可完成转换。将二进制数1011010111.101转换成十六进制数。 (高位补0) 0010 1101 0111 . 1010(低位补0) 2 D 7 . A 即:(1011010111.101)2 = (2D7.A)162021-12-3053基本的二进制运算算术运算加加减减乘乘除除1+1 = 01+1 = 0(进位)(进位)1-1 = 01-1 = 01 1* *1 = 11 = 11/1 =11/1 =11
33、+0 = 11+0 = 11-0 = 11-0 = 11 1* *0 = 00 = 00/1 =00/1 =00+1 = 10+1 = 10-1 = 10-1 = 1(借位)(借位)0 0* *1 = 01 = 00+0 = 00+0 = 00-0 = 00-0 = 00 0* *0 = 00 = 02021-12-3054基本的二进制运算算术运算计算:101.10+11.01解:101.10+11.011000.11结果是:101.10+11.01=1000.11计算:101.10 * 10.1 1 0 1 . 1 0 * 1 0 . 1 1 0 . 1 1 0 0 0 0 . 0 0 1
34、0 1 1 . 0 1 1 0 1 . 1 1 0 结果是:101.10 * 10.1 = 1101.1102021-12-3055基本的二进制运算逻辑运算2021-12-30563.2 负数在计算机中的编码 原码 反码 补码 补码运算码制:原码 对一个二进制数而言,若是最高位表示数的符号(0表示正数,1表示负数),其余各位表示数值本身,则称为原码。如: 原码真值数 81010100011010001 81110100011010001 0000000000000000 0100000000000000 可以看到,在八位机器字长表示数据的计算机中,用原码表示81和81的原码的低七位是相同的。原
35、码简单,与真值转换方便。 容易推导得出: 1原码000000011原码10000001 127原码01111111127原码11111111 0原码000000000原码10000000 原码表示的整数范围是: (2n-11)(2n-11),其中n为机器字长。 则:8位二进制原码表示的整数范围是-127+127; 16位二进制原码表示的整数范围是-32767+32767 32位码制:反码 正数的反码与其原码相同,最高位为0表示正数,其余位为数值位。 负数的反码是其对应的正数连同符号位取反求得。如: 原码反码 810101000101010001 811101000110101110 00000
36、000000000000 01000000011111111 容易推导得出: 1反码000000011反码11111110 127反码01111111127反码10000000 0反码000000000反码11111111 反码表示的整数范围与原码相同。 反码通常用作求补码过程中的中间形式。码制:补码 正数的补码与其原码或者反码相同。 负数的补码为其反码在最低位加1。 原码反码补码 81010100010101000101010001 81110100011010111010101111 0000000000000000000000000 0100000001111111100000000 可
37、以验证: 补码表示的整数范围是-2n-1(2n-1-1),其中n为机器字长。 则: 8位二进制补码表示的整数范围是128127; 16位二进制补码表示的整数范围是3276832767 32位?思考1 根据定义,完成以下问题: 1、已知一个真值数,如:33,求:原码、反码、补码; 2、已知一个原码为11100100,求真值; 3、已知一个反码为11100100,求真值; 4、已知一个补码为11100100,求真值。补码运算规则 定点数的加减运算算法有原码、补码和反码三种。 当采用原码时,首先要判断参加的运算的两个操作数的符号,再根据操作的要求决定进行相加还是相减运算,最后还要根据两个操作数绝对值
38、的大小决定结果的符号。整个运算过程过于复杂。 采用反码时,无需考虑操作数的符号(符号位),直接按照二进制方式运算,但运算结果需要修正。 补码表示法运算的特点是:将视为数据位直接参与运算、从而简化了加、减法的规则,并能使减法变成加法运算,从而。 由于加减运算最为频繁,因此现代计算机中普遍使用补码作为有符号数的表示方式。补码运算规则 补码加减法的规则是: X补+Y补X+Y补。 即: 公式1:X+Y补=X补+Y补。 公式2:XY补=X+(Y)补=X补+Y补 (条件:X、Y、X+Y、X-Y都在字长的合法表示范围之内。) 补码的加减运算规则: 参加运算的两个操作数均用补码表示; 符号位不再单独处理、视为
39、数的一部分参加运算; 求差时将减数求补,用求和代替求差; 运算结果为补码; 最高位(符号位)的进位为模值,对结果无意义:丢弃!(实际上被存放在CPU的进位标志位触发器里面。) 注意:当运算结果超出字长能够表示的合法范围时,结果就不再正确。此时称为。 为了让程序员获知有符号数运算过程中的溢出信息,CPU提供了一个专门的硬件触发器:溢出标志位。 一旦出现溢出,程序员必须作出相应的正确处理。 例:以28为模,设X补00000100(真值为4),Y补11110010(真值为14),求X+Y补和XY补。 解: XY补X补Y补 00000100+11110010=011110110(-10的补码) XY补
40、X补Y补 00000100+00001110000010010(18的补码) 补充:例: (1)假设X=66,Y=51,机器字长n=8,求X+Y及X-Y。 解:X=+1000010,Y=+0110011 X补=01000010, Y补=00110011 -Y补=11001101 X+Y补=X补+Y补=01000010+00110011 =001110101,所以X+Y=+1110101B=+117 X-Y补=X补+-Y补=01000010+11001101 =100001111=00001111(字长8位,!) 所以XY=+0001111B=+15 (2)假设X=66,Y=99,机器字长n=8
41、,求X+Y。 解:X=+1000010,Y=+1100011 X补=01000010 Y补=01100011 X+Y补=X补+Y补=01000010+01100011 =010100101(显然,这是一个负数的补码) 因为:10100101=-1011011补=-91补 所以:X+Y=-91 显然,X=66为正,Y=99为正,两正数相加应该为正,但是得到负数,故(X+Y)相加后的和超出表示范围-128,127,从而产生溢出。 (3)假设X=-66,Y=-99,机器字长n=8,求X+Y 解:X=-1000010,Y=-1100011 X补=10111110 Y补=10011101 X+Y补=10
42、111110+10011101 =101011011(字长8位,进位丢弃) =01011011(这是正数) 因为01011011=+1011011补=+91补 所以:X+Y=91 显然,X=-66为负,Y=-99为负,负数相加应该为负数,但是得到正数,故相减后的差超出表示范围-128,127,从而产生溢出。2021-12-3073补码运算 例: 用补码加法计算:-61+(-33) -61=(10111101)原码=(11000011)补码 -33 = (10100001)原码 = (11011111)补码也就是:(11000011)补码+(11011111)补码 = (10100010)补码
43、= (11011110)原码 = (-94)102021-12-3074补码运算 例: 用补码加法计算:65+70 65 = (01000001)补 70 = (01000110)补 求和结果,符号位为1。两个正数相加的和不可能是负数,说明结果产生了溢出。 2021-12-30753.3 实数在计算机中的表示 定点数 浮点数2021-12-3076 定点数 定点数是指小数点位置固定不变的数。 定点小数小数点位置固定在数的开头,那么定点小数就是纯小数。 定点整数小数点位置固定在数的末尾,那么定点数表示的是整数2021-12-3077定点数八位定点数定点小数定点小数定点整数定点整数2021-12-
44、3078浮点数 浮点数通过阶码和尾数来表示,如下图阶码和尾数都可正、可负,用阶符和尾符决定其正负。浮点数N=2阶码 尾数 浮点数是小数点可以左右移动的数。 例如:45.3125=+101101.0101 =+0.10110101012+6 =+10110101012-4 即可以写成二进制格式:S2J 其中:+/-J为阶码(Exponenet),表示小数点位置;+/-S为尾数(Mantissa或者Significand)。 由于一个浮点数在机器中可以有多种表示,运算时不方便,故对其进行规格化,使得表示方法唯一。 浮点数的规格化(Normalized)定义:一个规格化的浮点数真值满足: (1)尾数
45、为纯小数,且小数点后第一位为1; (2)阶码为整数。 例如:45.3125的规格化数为:+0.10110101012+6 而不是+0.010110101012+7 也不是+101.10101012+32021-12-3082浮点数 在尾数不变的情况下,阶码发生变化,小数点的位置就发生变化,所以称为“浮点数”。为了尽可能提高浮点数表示的精度,对于尾数要进行规格化。 IEEE754标准浮点数float和双精度数double。 例设字长为16位,阶符为1位,阶码为4位,尾符为1位,尾数为10位。要求把X=-101101.0101B写成规格化的浮点补码数,阶码和尾数均用补码表示。 解: 0011010
46、100101011阶符阶码尾符尾数.浮点数的数值范围和精度 浮点数的数值范围是指浮点机器数能表示的真值范围。 阶码位数用来确定浮点数的大小;尾数的位数用来确定浮点数的表示精度。 显然:在相同字长的条件下,浮点数分配给阶码的位数越多,能表示的数的范围越大。同时,由于尾数的位数减少,浮点数的表示精度减小。对比:浮点数与定点数 体会:在相同字长的条件下,浮点数所能表示的数值范围比定点数大,表示数值的精度也比定点数高!2021-12-30863.4 十进制数的编码BCD码十进制数8421BCD码十进制数8421BCD码012345670000000100100011010001010110011189
47、101112131415100010010001 00000001 00010001 00100001 00110001 01000001 01012021-12-30873.5 字符的编码 ASCII编码 汉字的编码 汉字处理过程 Unicode编码 2021-12-3088ASCII编码 美国信息交换标准代码 ASCII编码已经成为一种国际标准,是一种7位的信息代码,表示127种字符和符号,包括:数字:0、1、2、3、4、5、6、7、8、9;大小写英文字母:A、B、.、Z,a、b、.、z;专用符号:+、-、*、/、_、空格(SP)等;33个非打印字符:BEL(响铃)、LF(换行)、CR(回车)等。 扩展的ASCII码是把原来的7位码扩展成8位码2021-12-3089标准ASCII码
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 诊所营销方案活动儿童(3篇)
- 重锤夯扩施工方案(3篇)
- 长高宣传活动策划方案(3篇)
- 面馆营销吸引方案(3篇)
- 高端楼盘广告营销方案(3篇)
- 法学生职业规划指南
- 物理学职业发展方向
- 玻璃加工工安全知识宣贯知识考核试卷含答案
- 制药灭菌发酵工风险评估水平考核试卷含答案
- 芳香保健师岗前基础评估考核试卷含答案
- 2026年社工初级综合能力真题及答案
- 2026湖北神农架林区公安局招聘辅警22人考试备考试题及答案解析
- 2025年江西省公安厅招聘警务辅助人员笔试真题(附答案)
- 浙商银行2026校园招聘无领导面试仿真题
- 2026浙江杭州市萧山区人民法院招聘14人笔试备考试题及答案解析
- 2026中国农业大学烟台研究院非事业编学生管理岗招聘3人考试模拟试题及答案解析
- 全民国家安全教育日知识普及课件
- (正式版)DB36∕T 1442.6-2022 《水利工程标准化管理规程 第6部分:农村水电站》
- 中国人民革命军事博物馆
- 跆拳道训练体系
- 航天发射与卫星运维手册
评论
0/150
提交评论