汇编言语基础知识全解Word下载.docx
《汇编言语基础知识全解Word下载.docx》由会员分享,可在线阅读,更多相关《汇编言语基础知识全解Word下载.docx(33页珍藏版)》请在冰豆网上搜索。
存储器按读、写方式分为随机存储器RAM(RandomAccessMemory)和只读存储器ROM(ReadonlyMemory)。
RAM也称为读/写存储器,工作过程中CPU可根据需要随时对其内容进行读或写操作。
ROM的内容只能读出不能写入,断电后其所存信息仍保留不变,是非易失性存储器。
(3)输入/输出接口电路(I/O接口)
输入/输出接口电路是微型计算机连接外部输入、输出设备及各种控制对象并与外界进行信息交换的逻辑控制电路。
由于外设的结构、工作速度、信号形式和数据格式等各不相同,因此它们不能直接挂接到系统总线上,必须用输入/输出接口电路来做中间转换,才能实现与CPU间的信息交换。
(4)总线(BUS)
总线是计算机系统中各部件之间传送信息的公共通道。
它由若干条通信线和驱动器组成,驱动器由起隔离作用的各种三态门器件组成。
微型计算机在结构形式上总是采用总线结构,即构成微机的各功能部件(微处理器、存储器、I/O接口电路等)之间通过总线相连接,这是微型计算机系统结构上的独特之处。
采用总线结构之后,使系统中各功能部件间的相互关系转变为各部件面向总线的单一关系,一个部件(功能板/卡)只要符合总线标准,就可以连接到采用这种总线标准的系统中,从而使系统功能扩充或更新容易、结构简单、可靠性大大提高。
1.1.3微型计算机的特点和应用
1.微型计算机的特点
微型计算机除了具有一般计算机的运算速度快、计算精度高、记忆功能和逻辑判断力强、自动工作等常规特点外,还有它自己的独特优点。
(1)体积小、重量轻、功耗低
(2)可靠性高、使用环境要求低
(3)结构简单灵活、系统设计方便、适应性强
(4)性能价格比高
2.微型计算机的应用
微型计算机得到了广泛的应用,如卫星、导弹的发射、石油勘探、天气预报、邮电通信、空中交通管制和航空订票、CAD/CAM、智能仪器、家用电气乃至电子表、儿童玩具等,他已渗透到国民经济的各个部门,到人类社会生产和生活的各个方面。
普及到广大民大众乃至中小学生,成为人们工作和生活不可缺少的工具,从而归纳有以下几个方面:
(1)科学计算科学计算一直是电子计算机的重要应用领域。
(2)信息处理和事务管理
(3)工业控制/自动控制
(4)计算机辅助设计与制造(CAD/CAM)CAD/CAM是微机应用的另一重要领域。
(5)人工智能(AI)
1.1.4现代微型计算机及相关技术的发展趋势
微型计算机沿着两个方向发展:
一是生产性能更好的如8位、16位的单片微型计算机,主要是面向要求低成本的家电、传统工业改造及普及教育等,其特点是专用化、多功能、可靠性好;
二是发展32位、64位微型计算机,面向更加复杂的数据处理,OA和DA科学计算等,其特点是大量采用最新技术成果,在IC技术、体系结构等方面,向高性能、多功能的方向发展。
下面主要介绍高档微处理器技术发展的一些趋势。
1.多级流水线结构
在一般的微处理器中,在一个总线周期(或一个机器周期)未执行完以前,地址总线上的地址是不能更新的。
在流水线结构情况下,如80286以上的总线周期中,当前一个指令周期正执行命令时,下一条指令的地址已被送到地址线,这样从宏观上来看两条指令执行在时间上是重叠的。
这种流水线结构可大大提高微处理器的处理速度。
2.芯片上存储管理技术
该技术是把存储器管理部件与微处理器集成在一个芯片上。
目前把数据高速缓存、指令高速缓存与MMU(存储器管理单元)结合在一起的趋势已十分明显,这样可以减少CPU的执行时间,减轻总线的负担。
例如,摩托罗拉的MC68030将256个字节的指令高速缓存及256个字节的数据高速缓存与MMU做在一起构成Cache/MemoryUnit。
3.虚拟存储管理技术
该技术已成为当前存储器管理中的一个重要技术,它允许用户将外存看成是主存储器的扩充,即模拟—个比实际主存储器大得多的存储系统,而且它的操作过程是完全透明的。
4.并行处理的哈佛(HarVard)结构
为了克服CPU数据总线宽度的限制,尤其是在单处理器情况下,进一步提高微处理器的处理速度,采用高度并行处理技术——哈佛(HarVard)结构已成为引入注目的趋势。
哈佛结构的基本特性是:
采用多个内部数据/地址总线;
将数据和指令缓存的存取分开;
使MMU和转换后援缓冲存储器(TLB)与CPU实现并行操作。
该结构是一种非冯·
诺依曼结构。
5.RISC结构
所渭RISC结构就是简化指令集的微处理器结构。
其指导思想是在微处理器芯片中.将那些不常用的由硬件实现的复杂指令改由软件来实现,而硬件只支持常用的简单指令。
这种方法可以大大减少硬件的复杂程度,并显著地减少了处理器芯片的逻辑门个数,从而提高了处理器的总性能。
这种结构更适合于当前微处理器芯片新半导体材料的开发和应用,例如,用砷化镓(CaAs)取代硅半导体材料制成的微处理器,具有抗幅射、对温度不敏感、低功耗等优点。
6.整片集成技术(Wafer-scaleIntegration)
目前高档微处理器已基本转向CMOSVLS工艺,集成度已突破千万晶体管大关。
一个令人瞩目的动向是新一代的微处理器芯片已将更多的功能部件集成在一起,并做在一个芯片上。
目前在一个CPU的芯片上已实现了芯片上的存储管理、高速缓存、浮点协处理器部件、通信I/O接口、时钟定时器等。
同时,单芯片多处理器并行处理技术也已由不少厂家研制出来。
另外,从微型计算机系统角度来看,采用多机系统结构、增强图形处理能力、提高网络通信性能等方面都是当微型计算机系统所追求的目标。
1.2计算机中的数和编码系统
1.2.1计算机中的进位计数制
1.进位计数制的基本概念
(1)日常生活中的十进制计数
十进制的特点是“逢十进一”,有十个不同的数字符号0~9。
我们知道,在一个十进制数中,同一个数字符号处在不同位置上所代表的值是不同的,例如数字5在十位数位置上时表示50,在百位数位置上时表示500,而在小数点后第1位上则表示0.5。
通常我们称某个固定位置上的计数单位为“位权”或“权”,每一位数码与该位“位权”的乘积表示了该位数值的大小。
十进制计数中的10称为基数。
“位权”和“基数”是进位计数制的两个要素。
(2)计算机中采用的进位计数制
在计算机内部,一切信息(包括数值、字符、指挥计算机动作的指令等)的存储、处理与传送均采用二进制的形式。
由于八进制、十六进制与二进制间有着非常简单的对应关系,在阅读与书写时常常采用八进制或十六进制。
表1.1和表1.2给出了常用的四种计数法的表示及其相互关系。
表1.1四种进制的表示
计数法
二进制
八进制
十进制
十六进制
进位规则
逢二进一
逢八进一
逢十进一
逢十六进一
基数R
2
8
10
16
所用符
0,1
0,1,2,…,7
0,1,2,…,9
0,1,2,…9,A,B,…,F
权
2i
8i
10i
16i
数字标识
B
Q
D
H
表1.2四种计数法表示数的对应关系
9
1001
11
1
1010
12
A
1011
13
3
1100
14
C
4
100
1101
15
5
101
1110
E
6
110
1111
17
F
7
111
10000
20
1000
2.四种不同进制数的相互转换
(1)任意进制数(R进制)的表示
任意一个n位整数,m位小数的R进制数表示如下,称为位权展开式。
其中:
ri为计数制中任一个数字,R为基数。
例如:
十进制数309.84可按权展开式写成:
3*102十0*101+9*100+8*10-1+4*10-2
对于八进制数(406)8=4*82+6*80
二进制数(110101)2=1*25+1*24+1*22十1*20
十六进制数(AC7.B)16=10*162+12*161+7*160+11*16-1
从上可知,按权展开式的和就是该数转换为十进制的值。
(2)二进制与十进制数的相互转换
1)二进制数转换为十进制数
方法:
直接按位权展开求和。
【例1.1】请把二进制数(11011)转化为十进制数。
解:
(11011)2=1*24+1*23十1*21+1*20=16+8+2+1=27
【例1.2】请把二进制数(111.011)转化为十进制数。
(111.011)2=1*22+1*21+1*20+1*2-2+1*2-3=4+2+1+0.25+0.125=7.375
2)十进制数转换为二进制数
整数采用“除以2取余法”,小数采用“乘以2取整法”。
【例1.3】将十进制数37.375转换为二进制数,其方法如下。
将整数和小数部分分别转换如下:
故:
(37.375)10=(100101.011)2
我们发现这样的规律,以20为基准向左每一位依次×
2,向右每一位依次÷
2就得到上面表中的十进制值。
例如,(86.625)10的整数86可看成由64+16+4+2组成,0.625可看成0.5+0.125,那么在相应的权值下面写上1,其余写0,如下所示:
64321684210.50.250.125
l010110.101
就是它等值的二进制数。
故:
(86.625)10=(1010110.101)2
(3)二进制数与八进制数的相互转换
1)二进制数转换成八进制数
将二进制数自小数点开始分别向左、向右划段,每3位划为一段,不足3位者用0补满,每段写成1位八进制数即可。
【例1.4】将(1111100.0111011)转换为八进制数。
001111100.011101100
174.354
(1101100.0111011)2=(174.354)8
2)八进制数转换成二进制数
将八进制数整数部分和小数部分的数字逐个用对应的3位二进制数替代即可。
【例1.5】将(645.25)8转换为二进制数。
645.05
110100101.010101
(635.05)8=(110100101.010101)2
【例1.6】将(762.413)8转换为二进制数。
762.413
111110010.100001011
(762.413)8=(111110010.100001011)2
(4)二进制数与十六进制数的相互转换
1)二进制数转换为十六进制数
从小数点开始,分别向左、向右每4位数字划分为一段,不足4位者填0补足,每段二进制数用1位十六进制数替代即可。
【例1.7】将(1011011100011.001101)2转换成十六进制数。
0001011011100011.00110110
16E336
(1011011100011.0011011)2=(16E3.36)16
【例1.8】将(11111011001.011)2转换成十六进制数。
011111011001.0110
7D9.6
(11111011001.011)2=(7D9.6)16
2)十六进制转换成二进制数
将十六进制数的整数部分和小数部分分别用相应的4位二进制数替代即可。
【例1.9】将(AE7.D2)16转换成二进制数。
AE7.D2
101011100111.11010010
(AE7.D2)16=(101011100111.1101001)2
【例1.10】(2C5.21F8)16转换成二进制数。
2C5.21F8
001011000101.0010000111111000
(2C5.21F8)16=(1011000101.001000011111)2
1.2.2计算机中带符号数的表示
计算机中,为便于识别,需将带符号数的正、负号数字化。
通常的做法是用一位二进制表示符号,称为”符号位”,放在有效数字的前面,用“0”表示正,用“1”表示负。
带符号的二进制数在计算机中有三种表示形式:
原码、反码和补码。
下面的讨论假定计算机字长为8位。
1.原码、反码和补码的表示方法
(1)原码
表示方法:
在数值的前面直接加一符号位的表示法称为原码表示法。
【例1.11】数+7和-7的原码分别为:
符号位数值位
[+7]原码00000111
[-7]原码10000111
注意:
1)在这种表示法中,数0的原码有两种形式:
即[+0]原码=00000000,[-0]原码=10000000
2)若微型计算机字长为8位,则原码的表示范围为—127~+127;
若字长为16位,则原码的农示范围为-32767~+32767。
(2)反码
正数的反码与原码相同;
负数的反码,符号位仍为“1”,数值部分“按位取反”。
【例1.12】+7和-7的反码分别为:
[+7]反=00000111B=07H
[-7]反=11111000B=F8H
1)在这种表示法中,数0的反码也有两种形式:
即[+0]反=00000000=OOH,[-0]反=11111111=FFH
2)字长为8位和16位时,反码的表示范围分别为-127一+127和-32767~+32767。
(3)补码
1)模的概念
把一个计量单位称之为模或模数,用M表示。
例如,时钟是以12为计数循环,即以12为模。
在时钟上,时针加上(正拨)12的整数倍或减去(反拨)12的整数倍,时针的位置不变。
14点钟在舍去模12后,成为(下午)2点钟(14=14-12=2)。
从0点出发逆时针拨10格即减去lOh,也可看成是从0点出发顺时针拨2格(加上2h),即2点(0-10=-10=-10+12=2)。
因此,在模12的前提下,-10可映射为+2。
现实中还有许多以模为计数单位的例子。
10和2对模12而言互为补数。
在计算机中称为“补码”。
计算机的运算部件与寄存器都有一定字长的限制,产生溢出的量就是计算器的模。
如前述8位二进制数,它的模数为28=256。
2)补码的表示
正数的补码与原码相同;
负数的补码则是符号位为“1”,数值部分按位取反后再在末位(最低位)加1。
【例1.13】+7和-7的补码分别为:
[+7]补=00000111B=07H
[-7]补=1111100lB=F9H
补码在微型机中是一种重要的编码形式,请注意如下事项:
①采用补码后,可以方便地将减法运算转化为加法运算,运算过程得到简化。
因此,现在微型计算机中带符号数一般采用补码表示。
【例1.14】计算35-28可转化为35+(-28),分别求出35与-28的补码后,按其补码加法运算,如下所示:
②采用补码进行运算,所得结果仍为补码。
为了得到结果的真值,还得进行转换(还原)。
转换前应先判断符号位,若符号为0,则所得结果为正数,其值与真值相同(如例1.13所示);
若符号位为1,则应将它转换成原码,然后得到它的真值。
③补码与原码、反码不同,数值0的补码只有一个,即[0]补=00000000B=00H。
④若字长为8位,则补码所表示的范围为-128~+127;
若字长为16位,则补码所表示的范围为-32768~+32767。
⑤进行补码运算时,应注意所得结果不应超过上述补码所能表示数的范围,否则会产生溢出而导致错误。
采用其他码制运算时同样应注意这一问题。
2.原码、反码和补码之间的转换
由于正数的原码、补码表示方法相同,不存在转换问题。
下面以负数情况分析。
(1)已知原码,求补码
【例1.15】已知某数X的原码为10110100B,试求X的补码。
由[X]原=10110100B可知,X为负数。
求其补码表示时,符号位不变反,其余各位变反,再在末位加1。
[X]补=11001100B。
(2)已知补码,求原码
[X]原=[[X]补]补
【例1.16】已知某数X的补码11101110B,试求其原码。
由[X]原=[[X]补]补得:
[X]原=[11101110B]补=1OO1OO1OB
(3)求补(已知[X]补,求[-X]补的过程称为求补)
就是将[X]补的所有位(包括符号位)一起逐位取反,然后在末位加1,即可得到-X的补码。
不管X是正数还是负数,都应按该方法操作。
【例1.17】试对-97进行求补(即求+97的补码)。
已知:
[-97]补=10011111B,则[10011111]求补=01100001B=+97
注:
求补操作实际上就是求相反数的补码。
如果已知的是负数补码,求补后就正数的补码,即是该数的绝对值。
(4)已知补码,求对应的十进制数
【例1.18】已知某数X的补码为10101011B,试求其所对应的十进制数。
该补码最高位(符号位)为1,因此它表示的是负数。
其数值部分于真值,应予转换。
转换时可采用两种方法。
方法一:
“求反加一”法。
采用这种方法时,将补码的符号位和数值部分视为一个整体,按位取反,再最低位上加1,得到真实结果的二进制数的绝对值。
在此结果前面加一负号即得正确答案。
将上面的补码按位求反,并加1,可得:
01010100+1=01010101B=85,所求‘十进制数为–85。
方法二:
“零减补码”法。
该方法仍将补码的符号位和数值部分视为一个整体,用数零去减补码,作减法时不理会最高位产生的借位。
所得到的结果即为该二进制数的绝对值。
1.2.3计算机中常用的编码
1.十进制数的二进制编码(BCD码)
用二进制数来直接表示十进制数,保留各数位之间“逢十进一”的关系,这就是二一十进制编码或称BCD码(BinaryCodedDecimal)。
这种编码将一位十进制数用4位二进制数表示,通常以8421为权进行编制。
它有十个不同的数字符号,按“逢十进一”原则进位。
十进制与8421BCD码的对应关系列于表1.3中。
表1.3十进制与BCD码对照表
十进制数
BCD码
0000
1000
0001
1001
0010
00010000
0011
00010001
0100
00010010
0101
00010011
0110
00010100
0111
00010101
【例1.19】将(867.51)10转换成BCD码。
(567.54)10=(010101100111.01010100)BCD
【例1.20】将(1101010110.01010011011)BCD转换成十进制数。
(001101010110.010100110110)BCD=(356.536)10
2.字符的编码
目前微机中应用最普遍的是美国标准信息交换码(简称ASCII码,AmericanStandardCodeforInformationInterchange),EBCDIC码(ExtendedBinaryCodedDecimalInterchangeCode)和对汉字进行编码的GB-2312国标码。
下面分别介绍它们的编码。
(1)ASCII码
ASCII码用7位二进制码对字符进行编码,如附录1所示。
每个ASCII码字符用七位编码,最高位用0填充,或者加一位奇偶校验位构成一个满字节。
存储器中以字节作为基本的编址单位,正好存放一个字符的ASCII码。
(2)汉字的编码
由于汉字的数量多(常用汉字就有几千个),它的编码相对要复杂些,编码后的二进制位数也较多。
汉字的编码有机内码和机外码两类。
机内码是汉字的标识码,机外码则用于汉字的输入,以满足不同的需要。
下面分别介绍汉字的国标码、机内码和机外码。
1)国标码为了在信息交换中有个通用标准,我国在1981年公布了国家标准GB232-1980《信息交换用汉字编码字符基本集》,简称国标码。
2)机内