汇编语言程序设计第1章.ppt

上传人:牧羊曲112 文档编号:6475896 上传时间:2023-11-03 格式:PPT 页数:100 大小:447.50KB
返回 下载 相关 举报
汇编语言程序设计第1章.ppt_第1页
第1页 / 共100页
汇编语言程序设计第1章.ppt_第2页
第2页 / 共100页
汇编语言程序设计第1章.ppt_第3页
第3页 / 共100页
汇编语言程序设计第1章.ppt_第4页
第4页 / 共100页
汇编语言程序设计第1章.ppt_第5页
第5页 / 共100页
点击查看更多>>
资源描述

《汇编语言程序设计第1章.ppt》由会员分享,可在线阅读,更多相关《汇编语言程序设计第1章.ppt(100页珍藏版)》请在三一办公上搜索。

1、第1章 基 础 知 识,1.1 微型计算机系统的发展1.2 汇编语言程序设计1.3 数据表示方法1.4 结果的输出与打印,1.1 微型计算机系统的发展,1.1.1 微机技术的发展概况,1处理速度 微型计算机的处理速度在不断提高,主要表现在以下几个方面:(1)CPU的主频不断提高,如从4.77 MHz的8088CPU提高到几个GHz的Pentium,这主要是因为半导体制造工艺水平的提高。(2)增加了数据运算的宽度,从早期的8位发展到现在的32位、64位、128位甚至更高。,(3)采用了RISC技术。从CISC体系结构转变为RISC体系结构后,在同样的工艺水平(即同样的主频、同样的工艺尺寸、同样的

2、芯片面积)下,使CPU的速度和性能有了很大的提高。(4)降低电路工作电压,不断缩小工艺尺寸。工作电压的降低有利于工艺尺寸的缩小。(5)增加了芯片内并行工作的信息处理部件,如整数部件、浮点加法器、浮点乘法器、图形部件等。芯片内具有两个以上的并行指令流水线,每次并行地向各流水线分配多条指令以进行并行处理,这是利用硬件资源的重复来换取芯片性能的提高。,2存储容量 微机的计算、处理速度的提高必然要求存取信息的速度相应提高。当今存储器速度还远远跟不上CPU的速度,而存储容量的大小是与存取速度相矛盾的,因而只能采用分级存储方式。(1)芯片内的寄存器堆、指令Cache和数据Cache(416 KB)都能在一

3、个时钟周期完成存取,而且随着VLSI的发展其容量将继续增加。(2)芯片外的二级指令Cache和数据Cache,其大小在16256 KB。,(3)主存储器的大小在1 MB到几百个MB。(4)外部存储器仍以软盘、硬盘、光盘为主要介质,其容量可在1 MB至上百个GB。由于RAM芯片性能价格比提高,因而为克服外部存储器的慢速寻找,一般都采用RAM Cache(256 KB2 MB)来减小等待时间。除了解决大容量存储外,外部存储器还具有掉电时的信息保持特性。快擦存储器(Flash Memory)芯片的普及为外部存储提供了一种新的实现方法。,3人机接口 传统的键盘输入、显示、打印输出已经不能满足人们的需要

4、,人们希望计算机有更生动、直观、灵活的用户界面,最好能像人一样既可以接收、识别并理解声、文、图信息,又能给出声音、视像等信息。微型计算机系统性能的提高,价格的下降,已经为这些技术的实用化提供了基础。计算机处理视像和声音的多媒体技术也逐步地进入到各个应用领域。,1)汉字识别 汉字识别要比英文、数字识别难得多,因为汉字字数多、字体多。汉字识别是从扫描输入开始的,现在扫描仪的扫描精度已经完全够用,对静止图像输入来说其扫描精度与彩色分辨率也已能满足要求。通过对版面的分析和汉字的切分,计算机可对汉字进行识别。由于汉字字数多、字体多,因而其特征的选择与提取是识别的关键。印刷体汉字的识别已实用化,一般识别率

5、为95以上,识别速度为2030字/秒。,2)语音识别 汉语中一个汉字对应一个单音节,能独立发音的单音节(包括4种声调)只有1283个,从这点看对汉语的语音识别较为有利。但汉语中同音字很多,因而单音节识别率的提高是有难度的,利用字构成词的相关信息,词的识别率可以提高。中词表的特定人与小词表的非特定人的汉语语音识别已初步达到实用水平。,3)视频图像输入 从摄像机、录像机和彩电中来的视频图像信息,通过视频处理部件转换成二进制代码,以一定的图像文件格式存入计算机的外部存储器中。以VGA全屏显示方式计算(分辨率为640480,共256种色彩)则显示一帧所需存放的信息为300 KB。如果以50帧计算,则存

6、放连续半小时的视像信息需要27 GB,对当前微型机来说这个信息量太大了。,由于图像对视觉的感受是整体的,部分的少量的错误不会引起直观的错误,因而图像信息的存储可采用不完全复真的压缩和还原方法。如用JPEG算法可使图像信息压缩为原来的1/81/25,静止图像即相当于一帧视像,需存储300 KB/幅,经过压缩后存储,即使有1万幅图像也只需120 MB的存储量。因而,当今微型机系统完全可以用于图像数据库。,4语音合成 声音的输出可分为两种情况,一种是声音采样存储后再回放,一种是文语的转换。对语音和音乐的采样要求是不同的。语音采样频率在1632 kHz,精度在8位左右即可,音乐的采样频率在40 kHz

7、,精度要14位左右。如果不采取压缩方法的话,连续半小时的乐曲存储量为144 MB,这个存储量还是很大的。因而,一般都采用压缩算法,语音可压缩为原来的1/8,而音乐仅能压缩到原来的1/4。用上述采样方法存储后再回放,可以和原信号毫无差异。数字录音技术即采用这种方法。,1.1.2 Intel微处理器体系及其演变 在介绍Intel微处理器体系之前,先介绍微处理器(Microprocessor)、微型计算机(Microcomputer)和微型计算机系统(Microcomputer System)这三个概念。微处理器,简称P或MP,是指由一片或几片大规模集成电路组成的具有运算器和控制器功能的中央处理机部

8、件,即CPU(Control Processing Unit)。微处理器本身并不等于微型计算机,它仅仅是微型计算机的中央处理器。,微型计算机,简称pC或MC,是指以微处理器为核心,配上由大规模集成电路制作的存储器、输入/输出接口电路及系统总线所组成的计算机(简称微型机)。如果把CPU、存储器和输入/输出接口电路都集成在单片芯片上,这样构成的微型计算机称为单片微型计算机(简称单片机)。微型计算机系统是指以微型计算机为中心,配以相应的外围设备、电源、辅助电路(统称硬件)以及控制微型计算机工作的系统软件所构成的计算机系统,简称CS或MCS。,在20世纪70年代,Intel的8080、8085,Mot

9、orola的6800、6808与Zilog的Z80都是8位微处理器,但发展到16位及16位以上微处理器时,只有Intel与Motorola两种产品,Zilog公司落后了。Motorola公司的MC68000功能强于Intel 8086,在工作站领域得到广泛使用。但由于IBM公司推出的IBM PC、PC/XT与PC/AT及大量兼容机采用了Intel公司的微处理器芯片,使得Intel公司实力大增。尤其是Intel 32位微处理器芯片80386、80486与1993年推出的Pentium,使Intel微处理器成为微型机市场首选的CPU芯片类型。目前,Intel的Pentium系列微处理器更使人有一枝

10、独秀的感觉。微处理器是微型机的心脏,它是利用超大规模集成电路技术将计算机CPU集成在一块硅片上。微型机性能的优劣基本取决于所选用的微处理器芯片功能的强弱。,1.1.3 Intel微处理器的主要特点 1971年推出的4004及其改进型4040,是一种4位的微处理器芯片,它具备MPU的基本特点,有专用指令读入键盘数据,进行十进制运算,每次处理4位数据,能与键盘、存储器、显示器一起构成一个简单系统。1972年推出了8008及其改进型8080,8080是一种8位的微处理器芯片,寻址空间为64 KB。它集成了16位的算术逻辑单元(ALU)和六个通用寄存器,以及程序计数器、堆栈指示器、指令寄存器与译码器等

11、,指令集包括78条指令。,1978年推出的8086是一种16位的微处理器,它的内部结构是16位的,数据总线也是16位的。它有包括乘法与除法指令的16位运算指令,既能处理16位数据,也能处理8位数据,在汇编语言上与8080、8085兼容,并增加了多条16位操作指令,有20根地址线,直接寻址能力可达1 MB。8088是8086的简化产品,它不是真正的16位芯片,它的内部总线是16位的,外部总线是8位的,是一种准16位芯片。,80186与80188是另一种高集成度的16/8位微处理芯片。它将8086/8088与其他常用的20多个器件集成在一块芯片上,同时增加了I/O(输入/输出)指令,寻址空间仍为1

12、 MB,可以使用数值协处理器80187,但没有存储管理与保护部分。1982年推出的80286是真正的16位、具有存储管理与保护机制的微处理器芯片,它有实地址模式和虚拟地址保护模式两种运行方式。虚拟地址保护模式也称作保护模式。在实地址模式中,80286兼容了8086的全部功能,8086的汇编语言源程序可以不做任何修改在80286中运行。在保护模式中,它将实地址模式的能力与对存储器的管理,对虚拟存储器的支持,以及对地址空间的保护集为一体,因而能可靠地支持多用户系统。,1985年推出了高性能32位微处理器80386,它与8086、80286相兼容,这标志着32位微处理时代的到来。继80386之后,I

13、ntel公司于1989年又推出了80486微处理器;1993年又推出了更高性能的微处理器Pentium。目前,Pentium系列的微处理器已形成Pentium、Pentium、Pentium、Pentium四个系列多种型号的产品。,1.1.4 Intel微处理器的性能 180386、80486和Pentium的主要技术特点 80386是Intel公司为支持多任务操作,适应多种操作系统而设计的32位微处理器。由于80386有32位的寄存器和数据通路,因此,可以支持32位的地址与数据类型。80386能够支持4 GB的内存物理空间,64 TB的虚拟存储空间;支持多任务系统;支持段式管理与页式管理;支

14、持四级特权集,对任务与任务之间、任务与操作系统之间进行严格的保护隔离。由于采用指令流水线工作方式、较高的总线带宽、片内地址转移等措施,系统速度可以达到4 MIPS。,80486芯片相当于将80386与一片数值协处理器80387、一片8 KB的高速缓冲存储器Cache集成在一起,其中8 KB Cache用来存放指令与数据。由于访问内部Cache的速度远高于访问存储器的速度,因而可以大大提高系统性能,减少了处理器使用外部总线的时间,对内部Cache的操作完全由系统自动进行,对用户是透明的。80486的常用指令运行时间为1个时钟周期,系统速度可达20 MIPS。1992年,Intel公司正式将继80

15、486之后新一代微处理器称为Pentium。Intel不采用80586这一提法的原因主要有两点:一是商标的版权问题;二是说明Intel的微处理器设计由CISC技术向RISC技术过渡。出于商业原因,Intel在产品宣传中不突出RISC技术,而只用“超标量”,即Pentium采用双流水线超标量体系结构。,Pentium的内部总线是32位,但与外部存储器的接口总线是64位,因而处理器与存储器之间数据传输速率达528 MB/s,它的软件与80386、80486兼容。其主要特点是:指令Cache与数据Cache分开,容量均为8 KB;硬件上,两个整数执行流水线分开,地址产生部件与算术逻辑单元ALU分开;

16、可以在一个运行周期中发送两条整数指令;具有片上浮点寄存器、加法与乘/除法器;可以在一个运行周期发送一条或两条浮点指令;采用转移预测方法,使用两个预取缓冲器,一个以顺序方式预取指令,一个按转移预测设置的转移目标缓存BTB预取指令,所需指令永远是在执行前预先取出的。Pentium的片上存储管理部件与80386、80486完全兼容。,Pentium支持多用户操作系统,可以在Windows NT、OS/2、UNIX、Solaris操作系统中运行,可用于局域网client/server、虚拟实景、文字与语音识别、三维模型运算等更为广泛的应用领域。,280386、80486和Pentium微处理器的性能比

17、较 80386有32位的寄存器和数据通道,支持32位的地址和数据类型,是为支持多任务操作而进行优化的操作系统所设计的32位微处理器。与80386一样,80486也使用了指令流水线、RISC的设计思想。80486用静态RAM作为指令、数据共用的Cache,它采用成组传送方式,能在一个时钟周期内传送32位数据。80486的性能高于80386。从8086到80386,再到80486直至Pentium,可以看出Intel微处理器的发展趋势和特点:,遵循开放式标准,保持兼容性;结构设计从CISC向RISC过渡;功能升级,扩大应用范围;提高基于Intel微处理器的微型机性能,保持整机的兼容性。现在,微型机

18、的应用已从简单的数值计算、文字处理向多媒体、局域网、工程CAD、模式识别中的文字与语音识别、专家系统以及以图形界面为特征的立体图形与动态视频图像处理等方向发展。将多个中央处理器、高速数字运算单元及“智能”人机界面综合起来,以适应动态全景视频图像处理和语音与文字识别技术的要求。,1.2 汇编语言程序设计,1.2.1 程序设计语言 程序是为解决某一问题而编写在一起的指令序列,计算机程序可以用高级语言编写,也可以用汇编语言编写。指令是规定计算机执行特定操作的命令。CPU就是根据指令来指挥和控制微型机各部分协调地动作,以完成规定的操作。任何一条指令都包括两部分:操作码和地址码。操作码指明要完成操作的性

19、质,如加、减、乘、除、数据传送、移位等;地址码指明参加上述规定操作的数据存放地址或操作数。计算机全部指令的集合称为计算机指令系统,指令系统准确定义了计算机的处理能力。,高级语言程序就是用高级语言编写的程序。如C语言源程序、PASCAL语言源程序等均是高级语言程序。计算机是不能直接运行高级语言源程序的,要执行高级语言源程序,就必须把用高级语言编写的源程序翻译成用机器指令表示的目标程序,这样就需要有各种解释程序或编译程序。,在计算机中,以二进制代码形式存在的指令,叫机器码指令。机器码指令构成的指令系统叫机器语言,用机器语言编写的程序叫机器语言程序。用助记符构成的指令系统叫汇编语言(Assemble

20、 Language),用汇编语言编写的程序叫汇编语言程序。汇编语言程序翻译成机器语言程序的过程称为汇编(Assemble),高级语言程序翻译成机器语言程序的过程叫解释(Interpretation)或编译(Compilation)。通常将汇编、解释、编译前的程序叫源程序,而将翻译后的机器语言程序叫目标程序。完成汇编、解释、编译的程序则分别称为汇编程序(Assembler)、解释程序(Interpreter)、编译程序(Compiler)。,1.2.2 汇编语言 我们知道,计算机系统由计算机硬件和计算机软件两个部分组成,有时又将计算机的硬件与软件统称为计算机资源。计算机的硬件是指构成计算机系统的

21、物理实体或物理装置。由运算器、控制器、存储器、输入/输出接口等部件构成主机,称为计算机。主机再配以输入/输出设备,便构成了计算机的硬件系统。,计算机软件系统是指计算机系统所使用的各种程序的集合。它的功能是利用计算机提供的逻辑功能来合理地组织计算机的工作,以便简化人们使用计算机的环节,并为用户提供一个便于掌握、操作简便的工作环境。计算机软件通常包括:操作系统、数据库系统、计算机网络软件、汇编程序、各种高级语言的编译或解释程序、各种标准程序库、各种应用程序等。作为计算机重要组成部分的软件系统,汇编语言在其中占有重要的地位。汇编语言程序设计是计算机专业人员的基本功。那么,什么是汇编语言及汇编语言程序

22、设计?与高级语言相比,汇编语言又有什么特点?如何学习汇编语言及如何使用汇编语言进行程序设计呢?,汇编语言(Assembler Language)是一种面向机器的程序设计语言,这是一种用符号表示的低级程序语言,通常是为特定的计算机专门设计的,与机器语言很接近。用这种语言写成的程序,需经过汇编程序翻译成机器语言程序才能被计算机执行。汇编语言指令和翻译成的机器语言之间的关系,基本上是一一对应的关系。但有的汇编语言中可以有宏指令,它与一串特定的机器指令相对应(对应方式由用户按一定规则自行定义),这样的汇编语言有时也叫宏汇编语言。由此可看出,汇编语言是一种与计算机的代码机器指令一一对应,并紧密依赖于某一

23、具体计算机的、面向机器的语言。,机器语言是利用0、1的各种组合来构成指令的,采用的是二进制编码。没有配备任何软件的计算机称之为裸机,它只能识别“0”和“1”两种代码。为了使用这样的计算机,程序设计人员只能用机器指令或机器语言编写程序,这就要求程序设计人员熟记计算机以“0”、“1”表示的全部指令,这是十分困难的事情。用机器语言编写程序时,工作量大,易于出错且不易修改。为了摆脱用机器指令编程的困难,出现了用指令符号来编写程序的方法,用符号语言编写的程序称为符号程序。在编制程序时,只要记住指令的助记符就可以了,而助记符可使用指令的英文名称的缩写,较指令编码容易记忆。例如,取数指令用LDA表示、加法指

24、令用ADD表示等。对这种符号语言再作一些扩充就是所谓的汇编语言。机器语言与汇编语言的比较见表1-1。,这里有一个问题:汇编语言程序为人们编写程序、阅读和交流程序都带来了方便,但机器只认识用机器语言编写的目标程序,即0、1代码,换句话说,机器根本就识别不了汇编语言程序。为了让机器能识别人们用汇编语言编写的程序,在计算机执行每条汇编指令之前,必须将其先翻译成机器语言的目标程序。完成这一功能的程序就是前面提及的汇编程序。,汇编程序的主要功能是把用汇编语言编写的源程序加工成机器语言写的目标程序。汇编过程有以下三步:用汇编语言编写出源程序;将源程序输入到计算机内,由汇编程序把它加工成计算机能执行的目标程

25、序;执行目标程序,得到计算结果。,表1-1 机器语言与汇编语言的比较,表1-1 机器语言与汇编语言的比较,其中,源程序是由一串符号化的指令组成,当汇编程序加工源程序时,总是从头到尾,一个符号接着一个符号的阅读,称为扫描源程序。从头到尾扫描一次源程序为扫描一遍,一般汇编程序是扫描两遍源程序。第一遍扫描把源程序中所有出现的名字进行造表,确定每个名字将占用的内存位置;第二遍扫描时,按所造出的表,把每条符号化指令变换成数码形式的机器指令。,除此之外,汇编程序还具有查错、修改、打印等功能。当用户编写的汇编语言程序不符合汇编语言所要求的书写格式和语法要求时,汇编程序就会指出源程序的某个位置出了什么性质的错

26、误等,这就是汇编程序的查错功能。汇编程序提供修改源程序的方法简便,用户把修改的要求提供给汇编程序,由汇编程序实现对源程序的自动修改。在汇编过程中,当发现错误时,将错误信息打印出来,必要时可打印出名字表及目标程序,还可打印出修改后源程序的文本等。,实用的汇编语言中,还包括一些用户编程时十分需要的指令,这些指令并无对应的机器指令,这些指令称为伪指令。众所周知,用高级语言编写的程序,机器是不能直接执行的,需要由编译程序或解释程序将它翻译成对应的机器语言,计算机才能接受并执行。通过编译或解释程序生成的机器语言程序往往比较冗长,占用存储空间较大,执行速度慢。用高级语言编写程序时,程序员无法直接利用机器硬

27、件系统的许多特性,如寄存器、标志位以及一些特殊指令等,影响许多程序设计技巧的发挥。而汇编语言程序是直接利用机器提供的指令系统编写程序的,与机器语言程序一一对应,所以占用存储空间少,执行速度快,特别是在一些有实时控制要求的场合,与使用汇编语言相比,使用高级语言就不那么方便了,二者的区别主要表现在以下几个方面:,(1)与汇编语言程序相比,高级语言程序要多占用0.51倍的存储单元,执行程序花费的时间要长0.52倍。(2)汇编语言可直接使用输入/输出指令通过低级接口与外设打交道,而高级语言就不那么方便了。,使用汇编语言编写程序,能充分发挥机器硬件的作用,高效地使用机器。汇编语言是编写计算机通用软件的基

28、础。一般来说,某些对执行时间和存储容量有较高要求的程序,通常使用汇编语言来编制,汇编语言的应用场合是:计算机控制系统(包括实时控制系统);计算机检测系统;外设驱动程序;智能化仪器仪表;高性能软件等。,1.2.3 学习汇编语言的方法 由于汇编语言是面向机器的语言,是与机器密切相关的一种程序设计语言。所以要掌握汇编语言,使用汇编语言进行程序设计时,就必须对机器的一些特性有所了解,这样才能编出正确的汇编语言程序。概括起来,应了解的机器特性有:(1)微处理器的结构(如8086/8088、80386、80486或Pentium等),存储器的组织方式、存储器的基本单元即编址的基本单位、容量即基本单元的数量

29、是多少。该机存储器的基本单元是什么?是字节还是字、双字等。以相邻字节为单位进行操作的单元有哪些种类?例如,字、半字、双字等。其字长是多少?存储容量多大?地址表示的方法及地址变换机构又是怎样的?是否支持虚拟存储器等。,(2)控制器的功能及相互关系。如,通用寄存器(包括累加器)的数量、功能、标志位的内容及使用等。(3)数据类型及格式。该机器能处理哪些类型的数据?例如,定点数、浮点数、十进制数、字符数据的格式是什么样的?每种数据在机器内的表示方法(即机内格式)又是怎样的?(4)指令格式、长度、功能及寻址方式。对机器指令系统的深入了解是汇编语言程序设计的重要任务之一,它包括:指令格式和长度、寻址方式、

30、指令的种类、每一条指令的功能,如何使用这些指令进行程序设计。,(5)控制器的其他特性。汇编语言程序设计要了解算术逻辑部件和控制器的状态、中断、时钟等。应了解哪些中断与程序设计有关?中断时的现场保护在什么地方?如何屏蔽与开放中断?等等。(6)外部设备的特性。外设是计算机与外部世界进行交换信息的手段。进行汇编语言程序设计时,必须了解有哪些外部设备可供使用;每种外设的具体使用方法如何(包括信息交换的机构和交换方式);如何使外设与算术逻辑部件和控制器协调工作(包括速度匹配);有无通道设施;如何组织通道程序等。,(7)指令系统、DOS和BIOS的调用方法。使用汇编语言编制汇编语言程序应注意以下几点:(1

31、)要有一个好的算法。所选定的算法必须结构清晰、层次分明、逻辑正确无误。算法描述形式应该简洁明了,对于数据结构不太复杂的中小程序,可采用流程图的形式,否则应使用类C语言、类PASCAL语言或类似的简化语言描述。(2)程序要模块化。根据解决的任务划分功能模块,每个模块功能单一,入口、出口简单。这样,程序容易编制、调试,也容易修改和扩充。,(3)对指令的使用要有选择。在编制程序时,能用简单和常用指令的,决不用复杂和不常用的指令。使用后一类指令虽然在一定程度上能显示程序员对指令系统的理解程度和驾驭能力,但却增加了调试和阅读程序的困难。比较起来,朴实无华的程序较容易保证其正确性,也易于维护。(4)要充分

32、利用寄存器。汇编语言的优点之一就是能充分利用机器资源。在编制程序时,应充分利用汇编语言的这个长处,合理使用寄存器,尽量使操作在寄存器或寄存器之间进行,减少访问内存单元次数,以便节省时间,提高效率。,(5)数据与指令的使用要正确。数据存储单元和工作单元应集中放在一起,并且与可执行指令分开,这样可使程序结构清晰,便于阅读,也便于修改。(6)不应编写自我修改的程序。程序的可执行指令代码在程序执行过程中应保持不变,那种在程序执行过程中,自身修改某些指令代码以获得某些效果的做法早已被摒弃,否则会给程序的调试带来极大的困难。,(7)要有简明而充分的注释。注释应成为程序中必不可少的部分,注释不光是解释指令意

33、义,而应着重描述指令在程序中所起的作用。写注释并不增加程序的篇幅。注释对程序的运行虽然不起作用,但对程序的调试、修改、阅读和交流乃至测试、维护等都有着重要影响。,1.3 数据表示方法,1.3.1 数与数制 数制是指用一组固定的数字符号和统一的规则表示数的方法。基数和权是数制要涉及到的两个基本概念。数制中,每个数位(数字位置)所用到的不同数字的个数叫做基数。常用的十进制,是采用09这10个数字表示的,它的基数是10。在一个数中,数字在不同的数位所代表的数值是不同的,每个数字所表示的数值等于它本身乘以与所在数位有关的常数,通常称这个常数为位权,简称权。例如,十进制数个位的位权是1,十位的位权是10

34、,百位的位权是100,千位的位权是1000等。相邻两位权的比值就等于基数。一个数的数值大小就等于它的各位数码乘以相应位权的总和。,1数制 计算机常用的数制有二进制、八进制、十进制、十六进制。1)十进制 由十个数字09组成,基数为10,小数点左边从右至左其各位的位权依次是:100,101,102,103,;小数点右边从左至右其各位的位权依次是:l0-1,10-2,10-3,。例如,十进制数678.5可以表示为678.56102+7101+8100+510-1,十进制数字的表示方法是在09数字序列后可跟一个字母D或不跟D,例如,128D或128。十进制实数的表示分为底数与指数两部分,正号“+”可有

35、可无,指数部分写在E之后,若省略E,则底数部分应有小数点。例如,1E-32,3.1415。,2)二进制 由数字0和1组成,基数为2。小数点左边从右至左其各位的位权依次是:20,21,22,;小数点右边从左至右其各位的位权依次是:2-1,2-2,2-3,。表示方法是在0、1序列后跟一个字母B,例如,110B、1100011B。3)八进制 计算机中经常使用的八进制和十六进制可用于解决二进制数书写长且不易阅读的问题。八进制数由07共8个数字组成,基数为8,小数点左边从右至左其各位的位权依次是:80,81,82,;小数点右边从左至右其各位的位权依次是:8-1,8-2,8-3,。表示方法是在07组成的数

36、后跟一个字母O或Q。例如,1477O或1477Q。,4)十六进制 由16个数字符号(数字09、符号A、B、C、D、E、F)组成,16为基数。小数点左边从右至左其各位的位权依次是:160,161,162,;小数点右边从左至右其各位的位权依次是:16-1,16-2,16-3,。表示方法是在09的数字或AE的字母序列之后跟一个字母H,但必须以数字打头,例如,40490EH、0C0000H。,2数制的转换 1)十六进制数转换为二进制数 不论是十六进制的整数或小数,只要把每一位十六进制的数用相应的4位二进制数代替,就可以转换为二进制数。例1-1 将(3AB)16转换为二进制数。,3 A B 0011 1

37、010 1011(3AB)16(0011 1010 1011)2(11 1010 1011)2,例1-2 将(0.7A53)16转换为二进制数。,7 A 5 3 0111 1010 0101 0011(0.7A53)16(0.0111 1010 0101 0011)2,2)二进制数转换为十六进制数 二进制的整数部分由小数点向左,每4位一分,最前面不足4位的在前面补0;小数部分由小数点向右,每4位一分,最后不足4位的后面补0。然后把每4位二进制数用相应的十六进制数代替,即可转换为十六进制数。例1-3,0001 1011 1110 0011.1001 0111 1000 1 B E 3 9 7 8

38、2(1BE3.978)16,总之,数在机器中是用二进制表示的,但是,一个二进制数书写起来太长,且容易出错。大部分微型机的字长是4位、8位、16位或32位的,都是4的整数倍,在书写时用十六进制来表示。一个字节就可以用两位十六进制数表示,两个字节可以用4位十六进制表示,书写、阅读方便且不容易出错。,1.3.2 计算机中的数据表示 计算机只能识别二进制数,因此数、字符等在计算机中都是使用二进制形式表示的。数可以分为带符号数和无符号数。1带符号数的表示法 1)机器数与真值 上面提到的二进制数,没有提到符号问题,故是一种无符号数的表示。数总有正负之分,那么符号在计算机中又是如何表示的呢?机器中通常用一个

39、数的最高位表示符号位。字长为8位的数,用最高位D7表示符号位,余下的7位D6D0为数字位,符号位为“0”表示正,为“1”表示负。如:,X(0101 1011)291而 X(1101 1011)291这样连同一个符号位在一起的一个数,称为机器数,它的数值称为机器数的真值。为了运算方便,即统一加减运算,机器中的负数有3种表示法原码、反码和补码。,2)原码 若正数的符号位用“0”表示,负数的符号位用“1”表示,这种表示法就称为原码。X105,X0 1101001 X105,X1 1101001 符号位 数值,其中,字长为8位的数,其最高位为符号位,后面7位是数值;若字长为16位,则后面的15位是数值

40、。用原码表示时,105和105它们的数值位相同,而符号位不同。原码表示简单易懂,与真值的转换方便。但是,两个异号数相加或两个同号数相减,就要做减法,难以实现加减法的统一。反码和补码的引进,就是为了把减法运算转换为加法运算。,3)反码 正数的反码表示与原码相同,最高位为符号位,“0”表示正,其余位为数值位。如:,而负数的反码是它的正数连同符号位按位取反而形成的。如:,(+4)反0 0000100,(-4)反1 1111011(+31)反0 0011111,(-31)反1 1100000(+127)反0 1111111,(-127)反1 0000000(+0)反0 0000000,(-0)反1 1

41、111111,负数反码的表示与原码表示有很大的区别:最高位仍为符号位,“0”表示正数,“1”表示负数,但数值位就不同了。如:(-127)反 1 0000000 符号位 取反数值8位二进制数的反码表示如表1-2所示。,表1-2 原码、补码和反码对照表,反码的特点有以下3点:(1)“0”有两种表示法。(2)8位二进制反码所能表示的数值范围为-127+127。,(3)当一个带符号数由反码表示时,最高位为符号位。当符号位为0(即正数)时,后面的七位为数值部分;当符号位为1(即负数)时,后面几位表示的不是此负数的数值,一定要把它们按位取反,才能得到它的数值。例如,一个反码表示的数为 10010100 这

42、是一个负数,它不表示(20)10,而表示的是 1101011(l26l25l23l211)(643283)(107)10,4)补码 正数的补码表示与原码相同,即最高位为符号位,“0”表示正数,其余位为数值。如:(+4)补 00000100 符号位 二进制数值(+31)补 00011111 符号位 二进制数值(+127)补 01111111 符号位 二进制数值,负数的补码是先求其反码,再在最后位(即最低位)加1。如:,(+4)原00000100,(-4)反11111011,(-4)补11111100,(+31)原00011111,(-31)反11100000,(-31)补11100001,(+1

43、27)原01111111,(-127)反10000000,(-127)补10000001,(+0)原00000000,(-0)反11111111,(-0)补00000000,8位带符号位的补码表示如表1-2所示,有以下特点:(1)+0补-0补 00000000。(2)8位二进制补码所能表示的数值为-128+127。(3)一个用补码表示的二进制数,最高位为符号位,当符号位为“0”(即正数)时,其余七位即为此数的二进制值;当符号位为“1”(即负数)时,其余几位不是此数的数值,其数值获取的方法是将其按位取反,并在最低位加1。,例1-4 X补 10010100,它不等于(20)10,它的数值为由001

44、0100按位取反得1101011,然后再加l为1101100。即 X1101100(126125123122)(643284)(108)10当负数采用补码表示时,就可以把减法转换为加法。,例1-5 X641064(10)X补 64补10补 6464补01000000 1000001010 10补 11110110,于是,01000000 01000000 00001010 11110110 00110110 100110110 自然丢失由于在字长为8位的机器中,第7位(即D7)的进位是自然丢失的,故做减法与补码相加的结果是相同的。,例1-6 346834(68)+34补00100010+68补

45、01000100-68补 10111100于是 00100010 10111100 11011110即为和的补码,符号位为1,和为负数,数值部分应由后七位按位取反再加1,即为0100010。所以,和为(34)10。,在日常生活中,有不少“补”数的例子。就以校对时间来讲,若标准时间为6点整,而现在有一只表为10点,要拨到6点,可以有两种拨法:第一种方法倒拨:1046 第二种方法顺拨:1086 所以,在这里,10加8与10减4(或加(4)是相同的。这当然是有条件的,在钟表中108126,而12称为模,即一个系统的量程或此系统所能表示的最大的数,它是自然丢掉的,如:104108(mod l2)表示的

46、是,等号两边同除以12,它们的余数相同,12称为模,或称(104)与(108)对模12是同余的,也即(8)与(4)对模12互为补数。一般说来,若数Z、Y、K满足下列关系:ZnKY(n为整数)则称Z与Y对模K是同余的,记为ZY(mod K),在上面的例子中,K12。因此(4)与8,(5)与7,(6)与6等对于模12都是同余的,也即它们对模12来说互为补数。由上述的例子和同余的概念,不难得出结论:对于某一确定的模,某数减去小于模的一个数,总可以用加上该数的负数与其模数之和(即补数)来代替。所以,引进了补码以后,减法就可以转换为加法了,使加减法运算可以统一。,把减法转换为加法实际上是利用了补码的概念

47、,所有的负数(X)的补码都可由模 28X来得到。但是,利用把正数连符号位按位取反再加1这样的简便方法,避免了求补码过程中的减法,使2的补码的运算具有实用价值。因此,在微型机中,凡是带符号数一律是用补码表示的,这样,运算的结果也是用补码表示的。由于计算机的字长是有一定限制的,所以一个带符号数有一定的范围。字长为8位用补码表示时其范围为:128127。当运算的结果超出这个表达范围时,就不正确了,这种情况称为溢出。这时,数就要用多字节(如16、24位等)来表示。,2无符号整数 机器数的表示方法就是把数的符号数码化了,它既能表示数的绝对值又能表示数的符号。如果把所有有效位都用于表示数的绝对值而不保留符

48、号位(即所有数位都是有效数字),则用这种方法表示的数叫做无符号数,计算机中有时需要无符号数形式。例如,地址用无符号整数表示。,3字符编码 在计算机中,数字是用二进制表示的。而计算机处理的对象又不仅仅是数字,还包括各种字符,如大小写英文字母、标点符号、运算符号等等。为了使计算机能识别和处理它们,这些字符应如何表示呢?由于计算机中的基本物理器件是具有两个状态的器件,所以各种字符只能按特定的规则用若干位二进制码的组合来表示。编码可以有各种方式,目前,在计算机中字符编码普遍采用的是ASCII码(American Standard Code for Information Interchange,美国标

49、准信息交换码)。ASCII码现已被国际标准化组织(ISO)接收为国际标准。ASCII码有7位版本和8位版本两种,国际上通用的ASCII码是7位版本。它包含10个阿拉伯数字、52个英文大小写字母、32个标点符号和运算符、34个控制码,共128个字符,所以可用7位二进制数表示。7位ASCII码见表1-3。,要确定一个数字、字母、符号或控制字符的ASCII码,可在表中先找出它的位置,然后找出它所对应的十进制值或十六进制值。例如,小写字母“a”的ASCII码其十进制值是97,十六进制值是61H,转换成二进制值是0110000lB。大写字母AZ的ASCII码是41H5AH,小写字母az的ASCII码是6

50、1H7AH。数字09的ASCII码值用十进制数表示是4857,用十六进制数表示是30H39H。在微型计算机中,要输出的十进制数必须用ASCII码表示,例如,要想在显示器上显示9,应使用其对应的ASCII码,即39H。,表1-3 ASCII码表,注:NUL、BEL、LF、FF、CR、DEL等是控制字符,NUL表示空,BEL是告警符,BS是退格符,LF是换行符,FF是换页符,CR是回车符,SP是空格符,DEL是删除符。,1.3.3 数据类型 1基本的数据类型 基本的数据类型是字节、字与双字。字节是任何逻辑地址的8位相邻位串。位标号为07,位0为最低有效位。字是在任何字节地址开始的两个相邻的字节,低

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号