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

下载本文档

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

文档简介

8086/8088和基于ARM核汇编语言程序设计第1章汇编语言基础知识第1讲第1页,共62页。12/2/20221第1章汇编语言基础知识第1章汇编语言基础知识

汇编语言基本概念

数制、数制之间的转换、运算

数和字符的表示教学重点:第2页,共62页。12/2/20222第1章汇编语言基础知识1.1汇编语言概述1.2进位计数制及其转换1.3计算机中数和字符的表示方法第1章汇编语言基础知识第3页,共62页。12/2/20223第1章汇编语言基础知识1.

什么是汇编语言?2.

为什么要学汇编(汇编有什么用)?3.

如何才能学好汇编?4.

参考资料5.教学大纲

、教学计划6.答疑…第4页,共62页。12/2/20224第1章汇编语言基础知识

自然语言是具有特定语音和语法等规范的、用于人类表达思想并实现相互交流的工具。人与人之间只有使用同一种语言才能进行直接交流,否则就必须通过翻译。要使计算机为人类服务,人们就必须借助某种工具,告诉计算机“做什么”甚至“怎么做”,这种工具就是程序设计语言。程序设计语言通常分为三类:机器语言、汇编语言和高级语言。而前两种语言与机器密切相关,统称为低级语言。1.1.1汇编语言基本概念1.1汇编语言概述第5页,共62页。12/2/20225第1章汇编语言基础知识

计算机语言的发展

机器语言FORTRANBASICCOBOLPASCALC/C++JAVA...汇编语言高级语言1.1汇编语言概述1.1.1汇编语言基本概念第6页,共62页。12/2/20226第1章汇编语言基础知识

计算机能够直接识别的数据是由二进制数0和1组成的代码。机器指令就是用二进制代码组成的指令,一条机器指令控制计算机完成一个基本操作。

用机器语言编写的程序是计算机惟一能够直接识别并执行的程序,而用其他语言编写的程序必须经过翻译才能变换成机器语言程序,所以,机器语言程序被称为目标程序。机器语言1.1汇编语言概述1.1.1汇编语言基本概念第7页,共62页。12/2/20227第1章汇编语言基础知识

为了克服机器语言的缺点,人们采用助记符表示机器指令的操作码,用变量代替操作数的存放地址等,这样就形成了汇编语言。所以汇编语言是一种用符号书写的、基本操作与机器指令相对应的、并遵循一定语法规则的计算机语言。(例见下页)

用汇编语言编写的程序称为汇编源程序。

汇编语言是一种符号语言,比机器语言容易理解和掌握,也容易调试和维护。但是,汇编语言源程序要翻译成机器语言程序才可以由计算机执行。这个翻译的过程称为“汇编”,这种把汇编源程序翻译成目标程序的语言加工程序称为汇编程序。

汇编语言1.1汇编语言概述1.1.1汇编语言基本概念第8页,共62页。12/2/20228第1章汇编语言基础知识例如,在8086机器下,分别用汇编语言和机器语言计算10+20的程序代码如下:

汇编语言

机器语言

MOVAL,10

B00A

ADDAL,20

0414显然,使用汇编语言编写的程序要比机器语言更容易理解。1.1汇编语言概述1.1.1汇编语言基本概念第9页,共62页。12/2/20229第1章汇编语言基础知识

汇编语言虽然较机器语言直观,但仍然烦琐难懂。于是人们研制出了高级程序设计语言。高级程序设计语言接近于人类自然语言的语法习惯,与计算机硬件无关,易被用户掌握和使用。目前广泛应用的高级语言有多种,如BASIC、FORTRAN、PASCAL、C、C++等等。高级语言1.1汇编语言概述1.1.1汇编语言基本概念第10页,共62页。12/2/202210第1章汇编语言基础知识

面向机器的低级语言,通常是为特定的计算机或计算机系列专门设计的。

保持了机器语言的优点,具有直接和简捷的特点。

可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。

目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。(例见下页)经常与高级语言配合使用,应用十分广泛。1.1汇编语言概述1.1.2汇编语言的特点第11页,共62页。12/2/202211第1章汇编语言基础知识

#include"stdafx.h"#include"stdio.h"intmain(intargc,char*argv[]){inta,b,c;a=1;b=2;c=a+b;printf(“c=%d\n",c);return0;}编程实现c=a+b,并在屏幕上显示出结果。

编译后的目标文件达到3.59KB1.1汇编语言概述C语言实现1.1.2汇编语言的特点第12页,共62页。12/2/202212第1章汇编语言基础知识汇编语言实现汇编后的目标文件只有208字节datasegmentadb?bdb?cdb?stringdb'c=$'dataendscodesegmentmainprocfarassumecs:code,ds:data,es:datastart:

pushdssubax,axpushaxmovax,datamovds,axmoves,ax

mova,1movb,2moval,aaddal,bmovc,al

leadx,stringmovah,09int21haddc,30hmovdl,cmovah,2int21hmovdl,0ahint21hmovdl,0dhint21hretmainendpcodeendsendstart1.1汇编语言概述编程实现c=a+b,并在屏幕上显示出结果。

1.1.2汇编语言的特点第13页,共62页。12/2/202213第1章汇编语言基础知识汇编语言的应用:系统程序、效率代码、I/O驱动程序

70%以上的系统软件是用汇编语言编写的。某些快速处理、位处理、访问硬件设备等高效程序是用汇编语言编写的。高级绘图程序、视频游戏程序一般是用汇编语言编写的。第14页,共62页。12/2/202214第1章汇编语言基础知识2.为什么要学汇编(汇编有什么用)?汇编语言的应用可以帮组理解微机的工作原理(见演示)后续课程的基础考研…返回第15页,共62页。12/2/202215第1章汇编语言基础知识3.如何才能学好汇编?学习方法:课前预习+听课+课后复习

课程特点:充分注意“汇编”课实践性强的特点,多读程序,多写程序,多上机调试程序,

学习:作业和实验学问:同学 网络 老师

学习特点:自学能力(查资料)返回第16页,共62页。12/2/202216第1章汇编语言基础知识4.参考资料:1.徐建民等编著.汇编语言程序设计.北京:电子工业出版社2.沈美明等编著.

IBMPC汇编语言程序设计.

北京:清华大学出版社3.杨季文等编著.80X86汇编语言程序设计教程.北京:清华大学出版社4.赵彦强.微机原理与接口技术(安徽省高等学校“十一五”省级规划教材)

.合肥:合肥工业大学大学出版社5.周国祥.微机原理与接口技术(安徽省高等学校“十一五”省级规划教材).合肥:中国科学技术大学出版社。

返回第17页,共62页。12/2/202217第1章汇编语言基础知识5.《汇编语言》教学大纲二、课程性质、目的与任务汇编语言程序设计是计算机专业中一门十分重要的专业必修课,通过本课程的学习,使学生掌握汇编语言程序设计方法和技能。本课程的基本任务是:使学生了解和掌握80x86计算机CPU的结构,存储器的组织方式,8086/8088计算机的寻址方式,8086/8088指令系统,80x86、Pentium增强和扩充指令,基本的汇编语言程序设计方法和技能及高级汇编语言技术,并能熟练运用汇编语言进行程序设计。

返回第18页,共62页。12/2/202218第1章汇编语言基础知识教学计划:

40课时+16上机第一章汇编语言数制数制之间的转换数和字符的表示运算第二章计算机组织CPU存储器外部设备第三章寻址方式指令系统BIOS和DOS调用第四章伪操作完整段定义格式上机过程第五章基本程序设计第六章输入/输出程序设计第七章循环程序设计第八章分支程序设计第九章子程序结构第十一章高级汇编语言技术复习返回第19页,共62页。12/2/202219第1章汇编语言基础知识6.答疑(解惑): 1.答疑(邮件、课中、课后)

3.成绩=平时(课堂、作业和实验)+考试

返回第20页,共62页。12/2/202220第1章汇编语言基础知识

Q:

下列哪个不是汇编语言的特点:(

)A、执行速度快 B、可以直接控制硬件 C、可以方便地移植 D、程序编制耗时

A:

C第二讲第21页,共62页。12/2/202221第1章汇编语言基础知识1.1汇编语言概述1.2进位计数制及其转换1.3计算机中数和字符的表示方法第1章汇编语言基础知识第22页,共62页。12/2/202222第1章汇编语言基础知识

计算机内部的信息分为两大类:控制信息和数据信息。控制信息是一系列的控制命令,用于指挥计算机如何操作;数据信息是计算机操作的对象,一般又可分为数值数据和非数值数据。对计算机而言,不论是控制命令还是数据,它们都要用“0”和“1”两个基本符号即基2码来编码表示,这是由于以下三个原因:(1)基2码在物理上最容易实现。例如,用高、低两个电位表示“1”和“0”,或用脉冲的有、无表示“1”和“0”等等,可靠性都较高。(2)基2码用来表示二进制数,其编码及加减运算规则简单。(3)基2码的两个符号“1”和“0”正好与逻辑数据“真”与“假”相对应,为计算机实现逻辑运算带来了方便。因此,不论是什么信息,在输入计算机内部时,都必须用基2码编码表示,以方便存储、传送和处理。

1.2进位计数制及其转换第23页,共62页。12/2/202223第1章汇编语言基础知识预备知识存储容量1K=1024B=210(Kilo)1M=1024K=220(Mega)1G=1024M=230(Giga)1个二进制位:bit(比特)8个二进制位:Byte(字节)1Byte=8bit2个字节:Word(字)1Word=2Byte=16bit1.2进位计数制及其转换第24页,共62页。12/2/202224第1章汇编语言基础知识1.2.1数与数制1.数的表示

数制基数数码二进制

Binary20,1八进制

Octal80,1,2,3,4,5,6,7十进制

Decimal100,1,2,3,4,5,6,7,8,9十六进制

Hexadecimal60,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F二进制:基数为2,逢二进一

11012=1×23+1×22+1×20=1310十六进制:基数为16,逢十六进一

1001,0001,1000,01119187=9×163+1×162+8×161+7×1601.2进位计数制及其转换为什么引入八进制、十六进制?第25页,共62页。12/2/202225第1章汇编语言基础知识任何进制的数都可用如下方法表示:

N

=±Ki*ri

其中:Ki是任一个数码;ri是各位对应的权

r是基数ni=-m1.2进位计数制及其转换1.2.1数与数制第26页,共62页。12/2/202226第1章汇编语言基础知识2.计数制的书写规则

为了区别不同的计数制,可采用下列两种方法:(1)在数字后面加写相应的英文字母作为标识,英文字母不分大小写。本书约定采用大写字母形式。如:1100011B。B后缀表示为二进制数(Binary)。2357O。O后缀表示为八进制数(Octal)。由于英文字母O容易和零误会,所以也可以用Q来表示八进制。1000D。D后缀表示为十进制数(Decimal)。3AB5H。H后缀表示为十六进制数(Hexadecimal)。如果记数符号a,b,c,d,e,f打头,头部应加0,如0A8F5H;记数符号a,b,c,d,e,f不区别大小写,与ABCDEF等效。缺省后缀时,一般约定为十进制数。(2)在括号外面加数字下标。如:(1011)2表示二进制数的1011(2DF2)16表示十六进制数的2DF21.2进位计数制及其转换1.2.1数与数制第27页,共62页。12/2/202227第1章汇编语言基础知识1.2.2不同数制之间的转换1.十进制数与二进制数之间的转换

(1)十进制整数转换成二进制整数方法:除2取余法注意:第一次得到的余数为二进制数的最低位,最后得到的余数为二进制数的最高位。(2)十进制小数转换成二进制小数方法:乘2取整法注意:最后将每次得到的整数部分(必定是0或1)按先后顺序从左到右排列即得到所对应二进制小数。1.2进位计数制及其转换第28页,共62页。12/2/202228第1章汇编语言基础知识例:117.8125D=1110101.1101B

2117258……1229……0214……127……023……121……10……10.8125×2

1.625……1

×2

1.25……1

×20.5……0×2

1.0……1(3)一般的十进制数转换成二进制数为了将一个既有整数又有小数部分的十进制数转换成二进制数,可以将其整数部分和小数部分分别进行转换,然后再组合起来。1.2进位计数制及其转换1.2.2不同数制之间的转换第29页,共62页。12/2/202229第1章汇编语言基础知识(4)二进制数转换十进制数方法:按位权展开后相加。注意:用其各位所对应的系数,按“位权展开求和”的方法就可以得到,其基数为2。例1.4将(101.11)2转换成十进制数。其过程如下:(101.11)2 =1×22+0×21+1×20+1×2-1+1×2-2 =4+0+1+0.5+0.25 =(5.75)101.2进位计数制及其转换1.2.2不同数制之间的转换第30页,共62页。12/2/202230第1章汇编语言基础知识(1)十进制整数转换成八进制整数方法:除8取余法注意:采用基数8连续去除该十进制整数,直至商等于“0”为止,然后逆序排列所得到的余数。(2)十进制小数转换成八进制小数方法:乘8取整法注意:连续用基数8去乘以该十进制小数,直至乘积的小数部分等于“0”,然后顺序排列每次乘积的整数部分。(3)八进制数转换成十进制数方法:按位权展开后相加。用其各位所对应的系数,按“位权展开求和”的方法就可以得到,其基数为8。1.2进位计数制及其转换2.十进制与八进制之间的转换1.2.2不同数制之间的转换第31页,共62页。12/2/202231第1章汇编语言基础知识(1)十进制整数转换成十六进制整数方法:除16取余法注意:采用基数16连续去除该十进制整数,直至商等于“0”为止,然后逆序排列所得到的余数。例1.8将十进制整数(2347)10转换为十六进制整数,采用“除16倒取余”的方法,过程如下:

16︳2347余数为11,即A0=B(十六进制数为B)16︳146余数为2,即A1=216︳9余数为9,即A2=90余数为0,结束

最后结果为:(2347)10=(A2A1A0)16=(92B)161.2进位计数制及其转换3.十进制与十六进制之间的转换1.2.2不同数制之间的转换第32页,共62页。12/2/202232第1章汇编语言基础知识(2)十进制小数转换成十六进制小数方法:乘16取整法注意:连续用基数16去乘以该十进制小数,直至乘积的小数部分等于“0”,然后顺序排列每次乘积的整数部分。例1.9将十进制小数0.6875转换成十六进制小数。其过程如下:

0.6875

×16

11.0000 整数部分为11,即A−1=B 0.0000 余下的小数部分为0,结束最后结果为:(0.6875)10=(0.A-1)16=(0.B)161.2进位计数制及其转换1.2.2不同数制之间的转换第33页,共62页。12/2/202233第1章汇编语言基础知识(3)十六进制数转换十进制数方法:按位权展开后相加注意:用其各位所对应的系数,按“位权展开求和”的方法就可以得到,其基数为16。

BF3CH=11163+15162+3161+12160

=48956D1.2进位计数制及其转换1.2.2不同数制之间的转换第34页,共62页。12/2/202234第1章汇编语言基础知识因为:23=8,所以每三位二进制数对应一位八进制数;24=16,所以每四位二进制数对应一位十六进制。(1)二进制数转换成八进制数从小数点所在位置分别向左向右每三位一组进行划分。若小数点左侧的位数不是3的整数倍,在数的最左侧补零;若小数点右侧的位数不是3的整数倍,在数的最右侧补零。然后参照表1.2,将每三位二进制数转换成对应的一位八进制数,即为二进制数对应的八进制数。例1.11将(11010.11)2转换为八进制数。其过程如下:

011 010 .1103 2 .6所以(11110.11)2=(32.6)8

1.2进位计数制及其转换1.2.2不同数制之间的转换4.二进制与八进制、十六进制数之间的转换第35页,共62页。12/2/202235第1章汇编语言基础知识(2)八进制数转换成二进制数方法:参照表1.2,将每一位八进制数转换成对应的三位二进制数,即为八进制数对应的二进制数。例1.12将(34.6)8转换为二进制数。其过程如下:3 4. 6011100. 110所以(34.6)8=(11100.11)2

1.2进位计数制及其转换1.2.2不同数制之间的转换第36页,共62页。12/2/202236第1章汇编语言基础知识

0011010110111111

35BF∴0011,0101,1011,1111B=35BFH

A19C

1010000110011100∴A19CH=1010,0001,1001,1100B(4)十六进制数转换成二进制数方法:将每一位十六进制数转换成对应的四位二进制数,即为十六进制数对应的二进制数。

(3)二进制数转换成十六进制数从小数点所在位置分别向左向右每四位一组进行划分。若小数点左侧的位数不是4的整数倍,在数的最左侧补零;若小数点右侧的位数不是4的整数倍,在数的最右侧补零1.2进位计数制及其转换1.2.2不同数制之间的转换第37页,共62页。12/2/202237第1章汇编语言基础知识(5)十六进制和二进制的相互转换举例方法:对于二进制整数,只要从右到左每4位组成一组,不足4位最左边补0,即可得到相应的十六进制。对于二进制小数,只要从左到右每4位组成一组,不足4位最右边补0,即可得到相应的十六进制。01111101.01011100

7D5C∴(1111101.0101111)2=(7D.5C)16

如果将十六进制转成二进制数,只要每一位十六进制数用四位二进制数表示即可。

补0补01.2进位计数制及其转换1.2.2不同数制之间的转换第38页,共62页。12/2/202238第1章汇编语言基础知识1.1汇编语言概述1.2进位计数制及其转换1.3计算机中数和字符的表示方法第1章汇编语言基础知识第39页,共62页。12/2/202239第1章汇编语言基础知识1.3计算机中数和字符的表示方法计算机中数值型数据是用二进制数来表示的,而非数值型数据包括英文字母、标点符号、专用符号、汉字等,也是用二进制数来编码的。第40页,共62页。12/2/202240第1章汇编语言基础知识计算机中正负数的表示

76543210符号位

数值位假设机器字长为16位:符号位=0正数

数值位

=1负数1514131211109876543210假设机器字长为8位:1.

二进制数的编码及运算1.3.1数值型数据的编码1.3计算机中数和字符的表示方法第41页,共62页。12/2/202241第1章汇编语言基础知识数的常用表示法——原码反码补码原码表示法:符号+绝对值例:n=8bit[+3]原码=0000,0011=03H[-3]原码=1000,0011=83H[+0]原码=0000,0000=00H[-0]原码=1000,0000=80H

0的表示不惟一反码表示法:正数的反码同原码,负数的反码数值位与原码相反例:n=8bit[+5]反码=0000,0101=05H[-5]反码=1

111,1010=FAH[+0]反码=0000,0000=00H[-0]反码=1

111,1111=FFH

0的表示不惟一1.3计算机中数和字符的表示方法1.3.1数值型数据的编码为什么引入反码、补码?返回第42页,共62页。12/2/202242第1章汇编语言基础知识例:机器字长8位,[-46]补码=?

[46]补码

=00101110

1101000111010010=D2H

机器字长16位,[-46]补码=FFD2H

[+0]补码=00000000

1111111100000000=[-0]补码

0的表示惟一按位求反末位加一按位求反末位加一补码(Two’sComplement)表示法:正数的补码:同原码负数的补码:(1)写出与该负数相对应的正数的补码

(2)按位求反

(3)末位加一1.3计算机中数和字符的表示方法1.3.1数值型数据的编码第43页,共62页。12/2/202243第1章汇编语言基础知识十进制二进制十六进制十进制十六进制n=8n=16

+127011111117F

+327677FFF+126011111107E+327667FFE......……...+20000001002+20002+10000000101+100010000000000000000-111111111FF-1FFFF-211111110FE-2FFFE......……...-1261000001082-327668002-1271000000181-327678001-1281000000080

-327688000n位二进制补码的表数范围:-2n-1≤N≤2n-1-1无符号整数的表数范围:0≤N≤2n-1

1.3计算机中数和字符的表示方法1.3.1数值型数据的编码第44页,共62页。12/2/202244第1章汇编语言基础知识补码的加法和减法:求补运算

:对一个二进制数按位求反、末位加一

求补求补[X]补码

[-X]补码

[X]补码加法规则:[X+Y]补码

=[X]补码

+[Y]补码减法规则:[X-Y]补码

=[X]补码

+[-Y]补码

补码减法可转换为补码加法64(-46)

18+010000001101001000010010+例:1.3计算机中数和字符的表示方法1.3.1数值型数据的编码返回第45页,共62页。12/2/202245第1章汇编语言基础知识进位和溢出进位:由于运算结果超出了位数,最高有效位向前的进位,这一位自然丢失,一般不表示结果的对错。溢出:表示结果超出了字长允许表示的范围,一般会造成结果出错。例:(-64)1100000012701111111+6401000000+100000001000000000128

10000000

1

进位溢出1.3计算机中数和字符的表示方法1.3.1数值型数据的编码第46页,共62页。12/2/202246第1章汇编语言基础知识符号位

数值位2.无符号整数的编码

在某些情况下,计算机要处理的数据全是正数,此时机器数再保留符号位就没有意义了。这时,我们将机器数最高有效位也作为数值位处理,也就是说,假设机器字长为n位,则有符号整数的编码格式如图1.1所示。

1位n-1位图1.1有符号整数编码格式

1.3计算机中数和字符的表示方法1.3.1数值型数据的编码第47页,共62页。12/2/202247第1章汇编语言基础知识无符号整数的编码格式如图1.2所示。

n位图1.2无符号整数编码格式无符号整数的表示范围为:0≤N≤2n–1。例如,当n=8位时,表示范围为:0≤N≤255;当n=16位时,表示范围为:0≤N≤65535。在计算机中最常见的无符号整数是地址。另外,双字长数据的低位字也是无符号整数。要注意的是,计算机本身不论是对有符号数还是无符号数,总是按照补码的运算规则做运算。数值位1.3计算机中数和字符的表示方法1.3.1数值型数据的编码第48页,共62页。12/2/202248第1章汇编语言基础知识人们在日常生活中习惯使用十进制数,而在计算机内,采用二进制数表示和处理数据更方便。因此,在往计算机里输入和输出数据时,要进行十→二和二→十的进制转换。但是,在某些特定的应用领域中,如商业统计,数据的运算很简单,但数据的输入、输出量很大,这样,数制转换所占的时间比例很大。从提高计算机的运行效率考虑,可以在计算机内部直接用十进制数表示和处理数据。以下介绍在计算机内部十进制数的编码方法及运算方法。1.3计算机中数和字符的表示方法1.3.1数值型数据的编码3.十进制数的编码第49页,共62页。12/2/202249第1章汇编语言基础知识BCD码

BCD(Binary-CodedDecimal)码又称为“二—十进制编码”,专门解决用二进制数表示十进数的问题。最常用的是8421编码,其方法是用4位二进制数表示1位十进制数,自左至右每一位对应的位权是8、4、2、1。1.3.1数值型数据的编码1.3计算机中数和字符的表示方法第50页,共62页。12/2/202250第1章汇编语言基础知识BCD码有两种格式:(1)压缩BCD码格式(PackedBCDFormat)用4个二进制位表示一个十进制位,就是用0000B-1001B来表示十进制数0-9。例如:十进制数4256的压缩BCD码表示为:

0100001001010110

B(2)非压缩BCD码格式(UnpackedBCDFormat)用8个二进制位表示一个十进制位,其中,高四位无意义,我们一般用xxxx表示,低四位和压缩BCD码相同。例如:十进制数4256的非压缩BCD码表示为:

xxxx0100xxxx0010xxxx0101xxxx0110B1.3计算机中数和字符的表示方法1.3.1数值型数据的编码第51页,共62页。12/2/202251第1章汇编语言基础知识1.3计算机中数和字符的表示方法1.3.2非数值型数据的编码现代计算机不仅处理数值数据,而且还要处理大量的非数值数据,像英文字母、标点符号、专用符号、汉字等等。前面已说过,不论什么数据,都必须用基2码编码后才能存储、传送及处理,非数值数据也不例外。下面我们分别介绍常见的非数值数据的二进制编码方法。第52页,共62页。12/2/202252第1章汇编语言基础知识字符的表示ASCII码:

用一个字节来表示一个字符,低7位为字符的ASCII值,最高位一般用作校验位。

例:‘A’41H

‘a’61H‘1’31H换行0AH回车0DH空格20H1.3计算机中数和字符的表示方法使用最多、最普遍的是ASCII字符编码,即美国标准信息交换代码(AmericanStandardCodeforInformationInterchance),具体见表1.5。1.

字符编码1.3.2非数值型数据的编码第53页,共62页。12/2/202253第1章汇编语言基础知识1.3计算机中数和字符的表示方法ASCII码表有以下几个特点:(1)每个字符用7位基2码表示,其排列次序为B6B5B4B3B2B1B0。实际上,在计算机内部,每个字符是用8位(即一个字节)表示的。一般情况下,将最高位置为“0”,即B7为“0”。需要奇偶校验时,最高位用做校验位。(2) ASCII码共编码了128个字符,它们分别是:Ø

32个控制字符,主要用于通信中的通信控制或对计算机设备的功能控制,编码值为0~31(十进制)。Ø

间隔字符(也称空格字符)SP,编码值为20H。Ø

删除控制码DEL,编码值为7FH。Ø

94个可印刷字符(或称有形字符)。这94个可印刷字符编码有如下规律字符0~9这10个数字符的高3位编码都为011,低4位为0000~1001,屏蔽掉高3位的值,低4位正好是数据0~9的二进制形式。这样编码的好处是既满足正常的数值排序关系,又有利于ASCII码与二进制码之间的转换。英文字母的编码值满足A~Z或a~z正常的字母排序关系。另外,大小写英文字母编码仅是B5位值不相同,B5为1是小写字母,这样编码有利于大小写字母之间的编码转换。1.3.2非数值型数据的编码第54页,共62页。12/2/202254第1章汇编语言基础知识计算机在处理汉字时,汉字字符也必须用基2码编码表示,一般汉字编码采用两个字节即16位二进制数。但由于汉字的特殊性,在汉字的输入、存储、输出过程中所使用的汉字编码是不一样的,输入时有输入编码,存储时有汉字机内码,输出时有汉字字形码。(1)汉字输入编码为了能把汉字这种象形文字通过西文标准键盘输入到计算机内,就必须对汉字用键盘已有的字符设计编码,这种编码称为汉字的输入编码,又称为汉字外部码,简称外码。使用较多的有以下4类:①顺序码:如区位码、电报码等。②音码:如拼音码、自然码等。③形码:如五笔字型、大众码等。④音形码:如双拼码、五十字元等。

1.3计算机中数和字符的表示方法2.汉字的编码1.3.2非数值型数据的编码第55页,共62页。12/2/202255第1章汇编语言基础知识(2)汉字机内码汉字机内码也称汉字内部码,简称内码。它是机器存储和处理汉字时采用的统一编码。每个汉字的机内码是惟一的,用两个字节表示。为了避免与西文字符的ASCII码之间产生二义性,汉字机内码中两个字节的最高位均规定为“1”。(3)汉字字形码汉字字形码也叫汉字字模点阵码,是汉字输出时的字形点阵代码,是一串基2码编码。

1.3计算机中数和字符的表示方法1.3.2非数值型数据的编码第56页,共62页。12/2/202256第1章汇编语言基础知识

逻辑数据是用来表示“是”与“否”,或称“真”与“假”两个状态的数据。在计算机中,用“1”表示“真”或“是”,用“0”表示“假”或“否”。需要注意的是,这里的1和0没有数值和大小概念,只有逻辑意义。

对逻辑数据只能进行逻辑运算,例如逻辑非、逻

温馨提示

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

评论

0/150

提交评论