汇编语言程序设计第1章汇编语言基础知识_第1页
汇编语言程序设计第1章汇编语言基础知识_第2页
汇编语言程序设计第1章汇编语言基础知识_第3页
汇编语言程序设计第1章汇编语言基础知识_第4页
汇编语言程序设计第1章汇编语言基础知识_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202118086/80888086/8088和基于和基于ARMARM核核汇编语言程序设计汇编语言程序设计 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/20212第第1章章 汇编语言基汇编语言基 础础 知知 识识 汇编语言基本概念汇编语言基本概念 数制、数制之间的转换、运算数制、数制之间的转换、运算 数和字符的表示数和字符的表示教学重点:教学重点: 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202131.2 进位计数制及其转换1.3 计算机中数和字符的表示方法 网络工程系网络工程系 安徽工业大学安徽工业大

2、学10/26/202141. 什么是什么是汇编语言汇编语言?2. 为什么为什么要要学学汇编(汇编有什么用)汇编(汇编有什么用)?3. 如何如何才能才能学学好汇编好汇编?4. 参考参考资料资料5. 教学教学大纲大纲 、教学计划、教学计划6. 答疑答疑 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/20215 自然语言自然语言是具有特定语音和语法等规范的、用是具有特定语音和语法等规范的、用于人类表达思想并实现相互交流的工具。人与人之于人类表达思想并实现相互交流的工具。人与人之间只有使用同一种语言才能进行直接交流,否则就间只有使用同一种语言才能进行直接交流,否则就必须通过必须通过翻译翻译

3、。要使计算机为人类服务,人们就必。要使计算机为人类服务,人们就必须借助某种工具,告诉计算机须借助某种工具,告诉计算机“做什么做什么”甚至甚至“怎怎么做么做”,这种工具就是,这种工具就是程序设计语言程序设计语言。 程序设计语言通常分为三类:程序设计语言通常分为三类:机器语言机器语言、汇编语汇编语言言和和高级语言高级语言。而前两种语言与机器密切相关,统。而前两种语言与机器密切相关,统称为低级语言。称为低级语言。1.1.1 1.1.1 汇编语言基本概念汇编语言基本概念 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/20216 计算机语言的发展计算机语言的发展 机器语言机器语言FORTRA

4、NFORTRANBASICBASICCOBOLCOBOLPASCALPASCALC/C+C/C+JAVAJAVA.汇编语言汇编语言高级语言高级语言1.1.1 1.1.1 汇编语言基本概念汇编语言基本概念 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/20217,而用其他语言编写的程序必,而用其他语言编写的程序必须经过须经过才能变换成机器语言程序,所以,机才能变换成机器语言程序,所以,机器语言程序被称为器语言程序被称为目标程序目标程序。机器语言机器语言1.1.1 1.1.1 汇编语言基本概念汇编语言基本概念 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/20218 为了克

5、服机器语言的缺点,人们采用为了克服机器语言的缺点,人们采用表示机器指令的表示机器指令的操作码操作码, ,用用代替操作数的存放地址等,这样就形成了汇编语代替操作数的存放地址等,这样就形成了汇编语言。言。 汇编语言是一种符号语言,比机器语言容易理解和掌握,也汇编语言是一种符号语言,比机器语言容易理解和掌握,也容易调试和维护。但是,容易调试和维护。但是,。这个翻译的过程称为。这个翻译的过程称为“”,这种,这种。 汇编语言汇编语言1.1.1 1.1.1 汇编语言基本概念汇编语言基本概念 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/20219例如,在例如,在80868086机器下,分别用汇

6、编语言和机器机器下,分别用汇编语言和机器语言计算语言计算10+2010+20的程序代码如下:的程序代码如下: MOV ALMOV AL,1010 B0 0AB0 0A ADD ALADD AL,2020 04 1404 14显然,使用汇编语言编写的程序要比机器语言显然,使用汇编语言编写的程序要比机器语言更容易理解。更容易理解。 1.1.1 1.1.1 汇编语言基本概念汇编语言基本概念 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202110 汇编语言虽然较机器语言直观,但仍然烦琐汇编语言虽然较机器语言直观,但仍然烦琐难懂。于是人们研制出了高级程序设计语言。难懂。于是人们研制出了高

7、级程序设计语言。目前广泛应用的高级语言有多种,如。目前广泛应用的高级语言有多种,如等等等等。高级语言高级语言1.1.1 1.1.1 汇编语言基本概念汇编语言基本概念 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202111 ,通常是为特定的计算机或计,通常是为特定的计算机或计算机系列算机系列的。的。 ,具有,具有的特点。的特点。 , , 如磁如磁盘、存储器、盘、存储器、CPUCPU、I/OI/O端口等。端口等。 ,是,是的程序设计语言。的程序设计语言。 ,应用十分广泛。,应用十分广泛。1.1.2 1.1.2 汇编语言的特点汇编语言的特点 网络工程系网络工程系 安徽工业大学安徽工业

8、大学10/26/202112#include stdafx.h #include stdio.h int main(int argc, char* argv) int a,b,c; a=1; b=2; c=a+b; printf(“c=%dn,c); return 0; C C 语言实现语言实现1.1.2 1.1.2 汇编语言的特点汇编语言的特点 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202113汇编汇编 语言实现语言实现data segmentdata segmenta db ?a db ?b db ?b db ?c db ?c db ?string db c=$stri

9、ng db c=$data endsdata endscode segmentcode segmentmain proc farmain proc far assume cs:code, ds:data, assume cs:code, ds:data, es:dataes:datastart:start: push dspush ds sub ax,ax sub ax,ax push ax push ax mov ax,data mov ax,data mov ds,ax mov ds,ax mov es,ax mov es,axmov a,1mov a,1 mov b,2 mov b,2

10、mov al,a mov al,a add al,b add al,b mov c,al mov c,al lea dx,stringlea dx,string mov ah,09 mov ah,09 int 21h int 21h add c,30h add c,30h mov dl,c mov dl,c mov ah,2 mov ah,2 int 21h int 21h mov dl,0ah mov dl,0ah int 21h int 21h mov dl,0dh mov dl,0dh int 21h int 21h ret retmain endpmain endpcode endsc

11、ode ends end start end start1.1.2 1.1.2 汇编语言的特点汇编语言的特点 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202114汇编语言的应用:汇编语言的应用:系统程序、效率代码、系统程序、效率代码、I/OI/O驱动程序驱动程序70%70%以上的系统软件是用汇编语言编写的。以上的系统软件是用汇编语言编写的。 某些快速处理、位处理、访问硬件设备等某些快速处理、位处理、访问硬件设备等 高效程序是用汇编语言编写的。高效程序是用汇编语言编写的。 高级绘图程序、视频游戏程序一般是用汇高级绘图程序、视频游戏程序一般是用汇 编语言编写的编语言编写的。 网络

12、工程系网络工程系 安徽工业大学安徽工业大学10/26/2021152. 为什么为什么要要学学汇编(汇编有什么用)汇编(汇编有什么用)? 汇编语言的应用汇编语言的应用 可以帮组理解微机的工作原理(见演示)可以帮组理解微机的工作原理(见演示) 后续课程的基础后续课程的基础 考研考研 返回返回 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/2021163. 如何如何才能才能学学好汇编好汇编? 学习方法学习方法: 课前预习课前预习+听课听课+课后复习课后复习 课程特点:课程特点:充分注意充分注意“汇编汇编”课实践性强的特点,课实践性强的特点, 多读程序多读程序,多写程序多写程序,多上机调试

13、程序多上机调试程序, 学学习习:作业和实验:作业和实验 学学问问:同学:同学 网络网络 老师老师 学习特点:学习特点:自学能力自学能力(查资料)(查资料)返回返回 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/2021174.4.参考资料:参考资料: 1. 徐建民等编著徐建民等编著. 汇编语言程序设计汇编语言程序设计. 北京:电子工业出版社北京:电子工业出版社 2. 2. 沈美明等编著沈美明等编著. IBM PC IBM PC 汇编语言程序设计汇编语言程序设计. 北京:清华大学出版社北京:清华大学出版社 3. 3. 杨季文等编著杨季文等编著. 80X86. 80X86汇编语言程序设

14、计教程汇编语言程序设计教程. 北京:北京:清华大学出版社清华大学出版社 4. 4. 赵彦强赵彦强. 微机原理与接口技术(安徽省高等学校微机原理与接口技术(安徽省高等学校“十一五十一五” 省级规划教材)省级规划教材) . 合肥:合肥工业大学大学出版社合肥:合肥工业大学大学出版社 5. 5. 周国祥周国祥. 微机原理与接口技术(安徽省高等学校微机原理与接口技术(安徽省高等学校“十一五十一五” 省级规划教材)省级规划教材). 合肥:中国科学技术大学出版社。合肥:中国科学技术大学出版社。 返回返回 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/2021185.5.汇编语言汇编语言教学大纲教

15、学大纲二、课程性质、目的与任务二、课程性质、目的与任务 汇编语言程序设计是计算机专业中一门十分重汇编语言程序设计是计算机专业中一门十分重要的要的专业必修课专业必修课,通过本课程的学习,使学生掌握,通过本课程的学习,使学生掌握汇编语言程序设计方法汇编语言程序设计方法和技能。和技能。 本课程的本课程的基本任务基本任务是:使学生了解和掌握是:使学生了解和掌握80 x86计算机计算机CPU的结构,存储器的组织方式,的结构,存储器的组织方式,8086/8088计算机的寻址方式,计算机的寻址方式,80868088指令系统,指令系统, 80 x86、Pentium增强和扩充指令增强和扩充指令,基本的汇编语言

16、程序设计基本的汇编语言程序设计方法和技能及高级汇编语言技术,并能熟练运用汇方法和技能及高级汇编语言技术,并能熟练运用汇编语言进行程序设计。编语言进行程序设计。 返回返回 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202119教学计划:教学计划: 4040课时课时+ +1616上机上机第一章第一章 汇编语言汇编语言 数制数制 数制之间的转换数制之间的转换 数和字符的表示数和字符的表示 运算运算第二章第二章 计算机组织计算机组织 CPU CPU 存储器存储器 外部设备外部设备第三章第三章 寻址方式寻址方式 指令系统指令系统 BIOSBIOS和和DOSDOS调用调用 第四章第四章 伪

17、操作伪操作 完整段定义格式完整段定义格式 上机过程上机过程第五章第五章 基本程序设计基本程序设计 第六章第六章 输入输入/ /输出程序设计输出程序设计第七章第七章 循环程序设计循环程序设计 第八章第八章 分支程序设计分支程序设计 第九章第九章 子程序结构子程序结构 第十一章第十一章 高级汇编语言技术高级汇编语言技术 复习复习 返回返回 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/2021206.答疑答疑(解惑)(解惑): :1. 1.答疑答疑(邮件、课中、课后)(邮件、课中、课后)2.E-mail:2.E-mail:3.3.成绩成绩=平时平时( (课堂、作业和实验课堂、作业和实验

18、)+)+考试考试返回返回 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202121 Q: 下列哪个不是汇编语言的特点:(下列哪个不是汇编语言的特点:( ) A、执行速度快、执行速度快 B、可以直接控制硬件、可以直接控制硬件 C、可以方便地移植、可以方便地移植 D、程序编制耗时、程序编制耗时 A: C第二讲第二讲 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/2021221.1 汇编语言概述1.3 计算机中数和字符的表示方法 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202123 计算机内部的信息分为两大类:计算机内部的信息分为两大类:。控制。控制信息是

19、一系列的控制命令,用于指挥计算机如何操作;数据信息信息是一系列的控制命令,用于指挥计算机如何操作;数据信息是计算机操作的对象,一般又可分为数值数据和非数值数据。是计算机操作的对象,一般又可分为数值数据和非数值数据。 对计算机而言,不论是控制命令还是数据,它们都要用对计算机而言,不论是控制命令还是数据,它们都要用“0”0”和和“1”1”两个基本符号即基两个基本符号即基2 2码来编码表示,这是由于以下三个原码来编码表示,这是由于以下三个原因:因:例如,用高、低两个电位表例如,用高、低两个电位表示示“1”1”和和“0”0”,或用脉冲的有、无表示,或用脉冲的有、无表示“1”1”和和“0” 0” 等等,

20、等等,可靠性都较高。可靠性都较高。( 因此,不论是什么信息,在输入计算机内部时,都必须用基因此,不论是什么信息,在输入计算机内部时,都必须用基2 2码编码表示,以方便存储、传送和处理。码编码表示,以方便存储、传送和处理。 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202124预预 备备 知知 识识存储容量存储容量1K = 1024B = 21K = 1024B = 210 10 (KiloKilo) 1M = 1024K = 21M = 1024K = 22020 (MegaMega) 1G = 1024M = 21G = 1024M = 230 30 (GigaGiga)1

21、1个二进制位:个二进制位:bit bit (比特)(比特)8 8个二进制位:个二进制位:Byte Byte (字节)(字节) 1Byte = 8bit 1Byte = 8bit2 2个字节:个字节: Word Word (字)(字) 1Word = 2Byte = 16bit 1Word = 2Byte = 16bit 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/2021251.2.1 1.2.1 数与数制数与数制 数数 制制 基基 数数 数数 码码 2 0, 1 2 0, 1 8 0, 1, 2, 3, 4, 5, 6, 7 8 0, 1, 2, 3, 4, 5, 6, 7 1

22、0 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 6 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 6 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F A, B, C, D, E, F 11012 = 12 3 + 12 2 + 12 0 = 1310 1001, 0001, 1000, 0111 9 1 8 7 = 9 16 3 + 1 16 2 + 8 16 1 + 7 16 0 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202126: N

23、N = = K Ki i * * r ri i 其中:其中:ni=-m1.2.1 1.2.1 数与数制数与数制 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202127 为了区别不同的计数制,可采用下列两种方法:为了区别不同的计数制,可采用下列两种方法:本书约定采用大写字母形式。本书约定采用大写字母形式。如:如:1100011B1100011B。B B后缀表示为二进制数(后缀表示为二进制数(BinaryBinary)。)。2357O2357O。OO后缀表示为八进制数(后缀表示为八进制数(OctalOctal)。由于英文字母)。由于英文字母OO容易和零误会,所以也可以用容易和零误会

24、,所以也可以用QQ来表示八进制。来表示八进制。1000D1000D。D D后缀表示为十进制数(后缀表示为十进制数(DecimalDecimal)。)。3AB5H3AB5H。H H后缀表示为十六进制数(后缀表示为十六进制数(HexadecimalHexadecimal)。如)。如果记数符号果记数符号a a,b b,c c,d d,e e,f f打头,头部应加打头,头部应加0 0,如,如0A8F5H0A8F5H;记数符号记数符号 a a,b b,c c,d d,e e,f f不区别大小写,与不区别大小写,与ABCDEFABCDEF等效。等效。缺省后缀时,一般约定为十进制数。缺省后缀时,一般约定为十

25、进制数。如:(如:(10111011)2 2 表示二进制数的表示二进制数的10111011 (2DF22DF2)1616表示十六进制数的表示十六进制数的2DF2 2DF2 1.2.1 1.2.1 数与数制数与数制 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/2021281.2.2 1.2.2 不同数制之间的转换不同数制之间的转换 方法:除方法:除2 2取余法取余法注意:第一次得到的余数为二进制数的最低位,最后得到注意:第一次得到的余数为二进制数的最低位,最后得到的余数为二进制数的最高位。的余数为二进制数的最高位。 方法:乘方法:乘2 2取整法取整法注意:最后将每次得到的整数部分(

26、必定是注意:最后将每次得到的整数部分(必定是0 0或或1 1)按先后顺)按先后顺序从左到右排列即得到所对应二进制小数。序从左到右排列即得到所对应二进制小数。 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202129:117.8125D = 2 117 2 58 1 2 29 0 2 14 1 2 7 0 2 3 1 2 1 1 0 10.8125 2 .625 1 2 .25 1 2 0.5 0 2 .0 1 为了将一个既有整数又有小数部分的十进制数转换成二进制为了将一个既有整数又有小数部分的十进制数转换成二进制数,可以将其整数部分和小数部分分别进行转换,然后再组合数,可以将其整

27、数部分和小数部分分别进行转换,然后再组合起来。起来。 1.2.2 1.2.2 不同数制之间的转换不同数制之间的转换 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202130 方法:按位权展开后相加。方法:按位权展开后相加。 注意:用其各位所对应的系数,按注意:用其各位所对应的系数,按“位权展开求和位权展开求和”的方法就可以得到,其基数为的方法就可以得到,其基数为2 2。例例1.4 1.4 将将(101.11)2(101.11)2转换成十进制数。其过程如下:转换成十进制数。其过程如下:(101.11)(101.11)2 2=1=12 22 2+0+02 21 1+1+12 20 0

28、+1+12 2-1 -1+1+12 2-2-2=4+0+1+0.5+0.25=4+0+1+0.5+0.25=(5.755.75)10101.2.2 1.2.2 不同数制之间的转换不同数制之间的转换 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202131方法:除方法:除8 8取余法取余法注意:采用基数注意:采用基数8 8连续去除该十进制整数,直至商等于连续去除该十进制整数,直至商等于“0”0”为为止,然后逆序排列所得到的余数。止,然后逆序排列所得到的余数。方法:乘方法:乘8 8取整法取整法注意:连续用基数注意:连续用基数8 8去乘以该十进制小数,直至乘积的小数部去乘以该十进制小数

29、,直至乘积的小数部分等于分等于“0”0”,然后顺序排列每次乘积的整数部分。,然后顺序排列每次乘积的整数部分。 方法:按位权展开后相加。方法:按位权展开后相加。用其各位所对应的系数,按用其各位所对应的系数,按“位权展开求和位权展开求和”的方法就可以得的方法就可以得到,其基数为到,其基数为8 8。 1.2.2 1.2.2 不同数制之间的转换不同数制之间的转换 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202132方法:除方法:除1616取余法取余法注意:采用基数注意:采用基数1616连续去除该十进制整数,直至商等于连续去除该十进制整数,直至商等于“0”0”为为止,然后逆序排列所得到

30、的余数。止,然后逆序排列所得到的余数。 例例1.8 1.8 将十进制整数(将十进制整数(23472347)1010转换为十六进制整数,采用转换为十六进制整数,采用“除除1616倒取余倒取余”的方法,过程如下:的方法,过程如下: 16 16 2347 2347 余数为余数为1111, 即即A A0 0=B=B(十六进制数为(十六进制数为B B) 16 16 146 146 余数为余数为2 2, 即即A A1 1=2=2 16 16 9 9 余数为余数为9 9, 即即A A2 2=9=9 0 0 余数为余数为0 0, 结束结束 最后结果为:最后结果为:(23472347)1010(A A2 2 A

31、 A1 1 A A0 0)1616= =(92B92B)16161.2.2 1.2.2 不同数制之间的转换不同数制之间的转换 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202133方法:乘方法:乘1616取整法取整法注意:连续用基数注意:连续用基数1616去乘以该十进制小数,直至乘积的小去乘以该十进制小数,直至乘积的小数部分等于数部分等于“0”0”,然后顺序排列每次乘积的整数部分。,然后顺序排列每次乘积的整数部分。例例1.9 1.9 将十进制小数将十进制小数0.68750.6875转换成十六进制小数。其过程如转换成十六进制小数。其过程如下:下:0.68750.6875 16 1

32、6 11.0000 11.0000 整数部分为整数部分为11 11,即,即A A1 1=B=B 0.0000 0.0000 余下的小数部分为余下的小数部分为0 0,结束,结束最后结果为:(最后结果为:(0.68750.6875)1010=(0.A0.A-1 -1) 16=16=(0.B0.B)16161.2.2 1.2.2 不同数制之间的转换不同数制之间的转换 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202134方法:按位权展开后相加方法:按位权展开后相加注意:用其各位所对应的系数,按注意:用其各位所对应的系数,按“位权展开求和位权展开求和”的方的方法就可以得到,其基数为法就

33、可以得到,其基数为1616。 BF3CH = 11163 +15162 +3161 +12160 = 48956D1.2.2 1.2.2 不同数制之间的转换不同数制之间的转换 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202135因为:因为:2 23 3=8=8,所以每三位二进制数对应一位八进制数;,所以每三位二进制数对应一位八进制数;2 24 4=16=16,所以每四位二进制数对应一位十六进制。,所以每四位二进制数对应一位十六进制。 从小数点所在位置分别向左向右每三位一组进行划分。若小数从小数点所在位置分别向左向右每三位一组进行划分。若小数点左侧的位数不是点左侧的位数不是3

34、3的整数倍,在数的最左侧补零;若小数点右的整数倍,在数的最左侧补零;若小数点右侧的位数不是侧的位数不是3 3的整数倍,在数的最右侧补零。然后参照表的整数倍,在数的最右侧补零。然后参照表1.21.2,将每三位二进制数转换成对应的一位八进制数,即为二进制数对将每三位二进制数转换成对应的一位八进制数,即为二进制数对应的八进制数。应的八进制数。例例1.11 1.11 将(将(11010.1111010.11)2 2转换为八进制数。其过程如下:转换为八进制数。其过程如下: 011011 010 010. 110. 110 3 3 2 2. 6. 6 所以所以 (11110.1111110.11)2 2

35、= =(32.632.6)8 8 1.2.2 1.2.2 不同数制之间的转换不同数制之间的转换 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202136方法:参照表方法:参照表1.21.2,将每一位八进制数转换成对应的三位二,将每一位八进制数转换成对应的三位二进制数,即为八进制数对应的二进制数。进制数,即为八进制数对应的二进制数。例例1.12 1.12 将(将(34.634.6)8 8转换为二进制数。其过程如下:转换为二进制数。其过程如下: 3 3 4. 4. 6 6 011 100. 011 100. 110110 所以所以 (34.634.6)8 8=(11100.11111

36、00.11)2 2 1.2.2 1.2.2 不同数制之间的转换不同数制之间的转换 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202137 0011 0101 1011 1111 3 5 B F 0011,0101,1011,1111B = 35BFH A 1 9 C 1010 0001 1001 1100 A19CH = 1010,0001,1001,1100B方法:将每一位十六进制数转换成对应的四位二进制数,即为方法:将每一位十六进制数转换成对应的四位二进制数,即为十六进制数对应的二进制数。十六进制数对应的二进制数。 从小数点所在位置分别向左向右每四位一组进行划分。若从小数点

37、所在位置分别向左向右每四位一组进行划分。若小数点左侧的位数不是小数点左侧的位数不是4 4的整数倍,在数的最左侧补零;若小数的整数倍,在数的最左侧补零;若小数点右侧的位数不是点右侧的位数不是4 4的整数倍,在数的最右侧补零的整数倍,在数的最右侧补零 1.2.2 1.2.2 不同数制之间的转换不同数制之间的转换 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202138(5) 十六进制和二进制的相互转换举例十六进制和二进制的相互转换举例 方法:对于二进制整数,只要从右到左每方法:对于二进制整数,只要从右到左每4 4位组成一组,位组成一组,不足不足4 4位最左边补位最左边补0 0,即可得

38、到相应的十六进制。对于二进,即可得到相应的十六进制。对于二进制小数,只要从左到右每制小数,只要从左到右每4 4位组成一组,不足位组成一组,不足4 4位最右边补位最右边补0 0,即可得到相应的十六进制。,即可得到相应的十六进制。 0 111 1101. 0101 11 0 00 111 1101. 0101 11 0 0 7 D 5 C 7 D 5 C (1111101.01011111111101.0101111)2 2 = = (7D.5C7D.5C)1616 如果将十六进制转成二进制数,只要每一位十六进制数如果将十六进制转成二进制数,只要每一位十六进制数用四位二进制数表示即可。用四位二进制

39、数表示即可。 补补0补补01.2.2 1.2.2 不同数制之间的转换不同数制之间的转换 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/2021391.1 汇编语言概述1.2 进位计数制及其转换 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202140 计算机中数值型数据是用二进制数来表示的,而计算机中数值型数据是用二进制数来表示的,而非数值型数据包括英文字母、标点符号、专用符号、非数值型数据包括英文字母、标点符号、专用符号、汉字等,也是用二进制数来编码的。汉字等,也是用二进制数来编码的。 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202141计算机中正

40、负数的表示计算机中正负数的表示 7 6 5 4 3 2 1 0符号位符号位 数值位数值位假设机器字长为假设机器字长为1616位:位:符号位符号位 = 0 正数正数 数值位数值位 = 1 负数负数15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0假设机器字长为假设机器字长为8 8位位:H.O.ByteH.O.ByteL.O.ByteL.O.Byte1. 1. 二进制数的编码及运算二进制数的编码及运算1.3.1 1.3.1 数值型数据的编码数值型数据的编码 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202142数的常用表示法数的常用表示法 原码表示法原码表示

41、法:例:例:n = 8bit +3原码原码 = 0 000,0011 = 03H - 3原码原码 = 1 000,0011 = 83H +0原码原码 = 0 000,0000 = 00H - 0原码原码 = 1 000,0000 = 80H 反码表示法反码表示法:例:例:n = 8bit +5反码反码 = 0 000,0101 = 05H - 5反码反码 = 1 111,1010 = FAH +0反码反码 = 0 000,0000 = 00H - 0反码反码 = 1 111,1111 = FFH 1.3.1 1.3.1 数值型数据的编码数值型数据的编码为什么引入为什么引入反码反码 、补码?、补

42、码?返回返回 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202143例:例: 机器字长机器字长8 8位,位,- 46- 46补码补码 = ?= ? = 0 0 1 0 1 1 1 00 0 1 0 1 1 1 0 1 1 0 1 0 0 0 11 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 = D2HD2H +0补码 = 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 = - 0补码补码 0 0 的表示的表示惟一按位求反按位求反末位加一末位加一按位求反按位

43、求反末位加一末位加一:1.3.1 1.3.1 数值型数据的编码数值型数据的编码 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202144十进制十进制 二进制二进制 十六进制十六进制 十进制十进制 十六进制十六进制 n=8 n=16 +32767 7FFF +126 0111 1110 7E +32766 7FFE . . . +2 0000 0010 02 +2 0002 +1 0000 0001 01 +1 0001 0 0000 0000 00 0 0000 -1 1111 1111 FF -1 FFFF -2 1111 1110 FE -2 FFFE . . .-126 1

44、000 0010 82 -32766 8002-127 1000 0001 81 -32767 8001 -32768 8000 1.3.1 1.3.1 数值型数据的编码数值型数据的编码 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202145补码的加法和减法:补码的加法和减法:求补运算求补运算 :对一个二进制数按位求反、末位加一对一个二进制数按位求反、末位加一 求补求补 求补求补 X补码补码 -X补码补码 X补码补码加法规则加法规则:X+Y补码补码 = X补码补码 + Y补码补码减法规则减法规则:X-Y补码补码 = X补码补码 + + -Y补码补码 补码减法可转换为补码加法补码

45、减法可转换为补码加法 64 0100 0000例:例:1.3.1 1.3.1 数值型数据的编码数值型数据的编码返回返回 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202146 由于运算结果超出了位数由于运算结果超出了位数, ,最高有效位向前的进位,这最高有效位向前的进位,这一位自然丢失,一般不表示结果的对错。一位自然丢失,一般不表示结果的对错。表示结果超出了字长允许表示的范围,表示结果超出了字长允许表示的范围, 一般会造成结一般会造成结果出错。果出错。例:例: (64) 11000000 127 01111111 64 01000000 + 1 00000001 0 00000

46、000 128 10000000 进位进位 溢出溢出1.3.1 1.3.1 数值型数据的编码数值型数据的编码 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202147符号位 数值位2. 2. 无符号整数的编码无符号整数的编码 在某些情况下,计算机要处理的数据全是正数,此时机在某些情况下,计算机要处理的数据全是正数,此时机器数再保留符号位就没有意义了。这时,我们将机器数最高有器数再保留符号位就没有意义了。这时,我们将机器数最高有效位也作为数值位处理,也就是说,假设机器字长为效位也作为数值位处理,也就是说,假设机器字长为n n位,则位,则有符号整数的编码格式如图有符号整数的编码格式如

47、图1.11.1所示。所示。 1位 n-1位图图1.1 1.1 有符号整数编码格式有符号整数编码格式1.3.1 1.3.1 数值型数据的编码数值型数据的编码 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202148 无符号整数的编码格式如图无符号整数的编码格式如图1.21.2所示。所示。 n n位位 图图1.2 1.2 无符号整数编码格式无符号整数编码格式 无符号整数的表示范围为:无符号整数的表示范围为:0N20N2n n 1 1。 例如,当例如,当n=8n=8位时,表示范围为:位时,表示范围为:0N2550N255; 当当n=16n=16位时,表示范围为:位时,表示范围为:0N6

48、55350N65535。 在计算机中最常见的无符号整数是在计算机中最常见的无符号整数是地址地址。另外,。另外,双字长数据的双字长数据的低位字低位字也是无符号整数。也是无符号整数。 要注意的是,计算机本身不论是对有符号数还是无符号数,总要注意的是,计算机本身不论是对有符号数还是无符号数,总是按照补码的运算规则做运算。是按照补码的运算规则做运算。1.3.1 1.3.1 数值型数据的编码数值型数据的编码 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202149人们在日常生活中习惯使用十进制数,而在计算机内,采人们在日常生活中习惯使用十进制数,而在计算机内,采用二进制数表示和处理数据更方

49、便。因此,在往计算机里输用二进制数表示和处理数据更方便。因此,在往计算机里输入和输出数据时,要进行十入和输出数据时,要进行十二和二二和二十的进制转换。但是,十的进制转换。但是,在某些特定的应用领域中,如商业统计,数据的运算很简单,在某些特定的应用领域中,如商业统计,数据的运算很简单,但数据的输入、输出量很大,这样,数制转换所占的时间比但数据的输入、输出量很大,这样,数制转换所占的时间比例很大。从提高计算机的运行效率考虑,可以在计算机内部例很大。从提高计算机的运行效率考虑,可以在计算机内部直接用十进制数表示和处理数据。以下介绍在计算机内部十直接用十进制数表示和处理数据。以下介绍在计算机内部十进制

50、数的编码方法及运算方法。进制数的编码方法及运算方法。 1.3.1 1.3.1 数值型数据的编码数值型数据的编码3. 3. 十进制数的编码十进制数的编码 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202150BCDBCD码码 BCDBCD(Binary-Coded DecimalBinary-Coded Decimal)码又称为码又称为“二二十进十进制编码制编码”,专门解决用二进制数表示十进数的问题。,专门解决用二进制数表示十进数的问题。最最常用的是常用的是84218421编码,其方法是用编码,其方法是用4 4位二进制数表示位二进制数表示1 1位十位十进制数,自左至右每一位对应的

51、位权是进制数,自左至右每一位对应的位权是1.3.1 1.3.1 数值型数据的编码数值型数据的编码 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202151BCDBCD码有两种格式:码有两种格式: 用用4 4个二进制位表示一个十进制位,就是用个二进制位表示一个十进制位,就是用0000B-1001B0000B-1001B来来表示十进制数表示十进制数0-90-9。 例如:十进制数例如:十进制数42564256的压缩的压缩BCDBCD码表示为:码表示为: 0100 0010 0101 01100100 0010 0101 0110 B B 用用8 8个二进制位表示一个十进制位,其中,高四

52、位无意义,个二进制位表示一个十进制位,其中,高四位无意义,我们一般用我们一般用xxxxxxxx表示,低四位和压缩表示,低四位和压缩BCDBCD码相同。码相同。 例如:十进制数例如:十进制数42564256的非压缩的非压缩BCDBCD码表示为:码表示为: xxxx0100 xxxx0010 xxxx0101 xxxx0110 xxxx0100 xxxx0010 xxxx0101 xxxx0110 B B 1.3.1 1.3.1 数值型数据的编码数值型数据的编码 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/2021521.3.2 1.3.2 非数值型数据的编码非数值型数据的编码 现代

53、计算机不仅处理数值数据,而且还要处理大量现代计算机不仅处理数值数据,而且还要处理大量的非数值数据,像英文字母、标点符号、专用符号、汉的非数值数据,像英文字母、标点符号、专用符号、汉字等等。前面已说过,不论什么数据,都必须用基字等等。前面已说过,不论什么数据,都必须用基2 2码编码编码后才能存储、传送及处理,非数值数据也不例外。下码后才能存储、传送及处理,非数值数据也不例外。下面我们分别介绍常见的非数值数据的二进制编码方法。面我们分别介绍常见的非数值数据的二进制编码方法。 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202153字符的表示字符的表示ASCIIASCII码码: 例:例

54、: A A 4141H H a a 6161H H 1 1 3131H H 换行换行 0A0AH H 回车回车 0D0DH H 空格空格 2020H H 使用最多、最普遍的是使用最多、最普遍的是ASCIIASCII字符编码,即美国标准信息交换字符编码,即美国标准信息交换代码代码(American Standard Code for Information Interchance)(American Standard Code for Information Interchance),具体见表具体见表1.51.5。1. 1. 字符编码字符编码1.3.2 1.3.2 非数值型数据的编码非数值型数据

55、的编码 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202154ASCIIASCII码表有以下几个特点:码表有以下几个特点:实际上,在计算机内部,每个字符是用实际上,在计算机内部,每个字符是用8 8位(即一个字节)表示的。一位(即一个字节)表示的。一般情况下,将最高位置为般情况下,将最高位置为“0”0”,即,即B7B7为为“0”0”。需要奇偶校验时,最高位用。需要奇偶校验时,最高位用做校验位。做校验位。它们分别是:它们分别是: 3232个控制字符个控制字符,主要用于通信中的通信控制或对计算机设备的功能控制,主要用于通信中的通信控制或对计算机设备的功能控制,编码值为编码值为0 03

56、131(十进制)。(十进制)。 间隔字符间隔字符(也称空格字符)(也称空格字符)SPSP,编码值为,编码值为20H20H。 删除控制码删除控制码DELDEL,编码值为,编码值为7FH7FH。 9494个可印刷字符个可印刷字符(或称有形字符)。这(或称有形字符)。这9494个可印刷字符编码有如下规律个可印刷字符编码有如下规律 字符字符0 09 9这这1010个数字符的高个数字符的高3 3位编码都为位编码都为011011,低,低4 4位为位为0000000010011001,屏蔽,屏蔽掉高掉高3 3位的值,低位的值,低4 4位正好是数据位正好是数据0 09 9的二进制形式。这样编码的好处是既满的二

57、进制形式。这样编码的好处是既满足正常的数值排序关系,又有利于足正常的数值排序关系,又有利于ASCIIASCII码与二进制码之间的转换。英文字母码与二进制码之间的转换。英文字母的编码值满足的编码值满足A AZ Z或或a az z正常的字母排序关系。另外,大小写英文字母编码正常的字母排序关系。另外,大小写英文字母编码仅是仅是B5B5位值不相同,位值不相同,B5B5为为1 1是小写字母,这样编码有利于大小写字母之间的是小写字母,这样编码有利于大小写字母之间的编码转换。编码转换。1.3.2 1.3.2 非数值型数据的编码非数值型数据的编码 网络工程系网络工程系 安徽工业大学安徽工业大学10/26/202155 计算机在处理汉字时,汉字字符也必须用基计算机在处理汉字时,汉字字符也必须用基2 2码编码表示,码编码表示,一般汉字编码采用两个字节即一般汉字编码采用两个字节即1616位二进制数。但由于汉字的特位二进制数。但由于汉字的特殊性,在汉字的输入、存储、输出过程中所使用的汉字编码是殊性,在汉字的输入、存储、输出过程中所使用的汉字编码是不一样的,输入时有输入编码,存储时有汉字机内码,输出时不一样的,输入时有输入编码,存储时有汉字机内码,输出时有汉字字形码

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论