第1章汇编语言基础108.ppt
《第1章汇编语言基础108.ppt》由会员分享,可在线阅读,更多相关《第1章汇编语言基础108.ppt(76页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、新新新新 编编编编汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计1 1第一章第一章 汇编语言基础汇编语言基础 1.1 1.1 计算机内数据的表示计算机内数据的表示 1.2 1.2 计算机组织计算机组织1.3 1.3 指令、程序和程序设计语言指令、程序和程序设计语言1.4 801.4 80 x86x86寄存器寄存器1.5 801.5 80 x86 CPUx86 CPU的工作模式的工作模式习题一习题一2 2汇编语言的特点:汇编语言的特点:1.1.面向计算机面向计算机“硬件硬件”进行程序设计进行程序设计2.2.使用与机器指令同级的符号指令编写程序使用与机器指令同级的符号指令编写程序
2、3.3.程序短小、运行速度快、发挥计算机的全部性能程序短小、运行速度快、发挥计算机的全部性能学习汇编语言的目的:学习汇编语言的目的:1.1.深刻理解计算机硬件、软件的工作原理深刻理解计算机硬件、软件的工作原理2.2.深刻理解基本控制结构程序的编制、计算机实现深刻理解基本控制结构程序的编制、计算机实现3.3.编写要求实时、高效的应用程序编写要求实时、高效的应用程序3 31.1.1 1.1.1 进位计数制进位计数制1.1.2 1.1.2 数据组织数据组织 1.1.3 1.1.3 无符号数的表示无符号数的表示 1.1.4 1.1.4 有符号数的表示有符号数的表示 1.1.5 1.1.5 字符编码字符
3、编码 1.1.6 1.1.6 BCDBCD码码 1.1 1.1 计算机内数据的表示计算机内数据的表示4 4进位计数制三个基本特征:有有限限个个数数字字符符号号:0,1,2,R-1,“R”称称为为“基基数数”;“逢逢R进进1”;“权展开式权展开式”:小数点向左各数字的小数点向左各数字的“权权”分别是分别是R0,R1,R2,R3,。小数点向右各数字的小数点向右各数字的“权权”分别是分别是R-1,R-2,R-3,。D=dn-1dn-2dn-3d2d1d0.d-1d-2d-m=dn-1Rn-1+d1R1+d0R0+d-1R-1+d-mR-m1.1.1 1.1.1 进位计数制进位计数制5 51010个数
4、字符号:个数字符号:0 0,1 1,2 2,9 9;“逢十进一逢十进一”;小数点向左各数字的小数点向左各数字的“权权”是是10100 0,10101 1,10102 2,10103 3,小数点向右各数字的小数点向右各数字的“权权”是是1010-1-1,1010-2-2,1010-3-3,。例例:323.31=310323.31=3102 2+210+2101 1+310+3100 0+310+310-1-1+110+110-2-2。十进制数用它原来的形式表示,如十进制数用它原来的形式表示,如123123,-36-36等,等,也可以在数值后面加上字母也可以在数值后面加上字母“D”D”或或“d”d
5、”,如如123123D D,-36d-36d等。等。1.十进制计数法十进制计数法6 6计算机内部采用计算机内部采用“二进制二进制”表示数据。表示数据。2 2个数字符号:个数字符号:0 0,1 1;“逢二进一逢二进一”:用:用“进位进位”的方法表示大于的方法表示大于1 1的数;的数;“权展开式权展开式”:小数点向左各数字的小数点向左各数字的“权权”是:是:2 20 0,2 21 1,2 22 2,2 23 3,。小数点向右各数字的小数点向右各数字的“权权”是:是:2 2-1-1,2 2-2-2,2 2-3-3,。2.2.二进制计数法二进制计数法7 7十进制数转换为二进制数8 8二进制数转换为十进
6、制数(11011.101)2=124+123+022+121+120+12-1+02-2+12-3=(27.625)10 9 93.3.八进制和十六进制计数法八进制和十六进制计数法八进制:八进制:八进制使用的数字符号:八进制使用的数字符号:0 0,1 1,2 2,3 3,4 4,5 5,6 6,7 7。一位一位8 8进制数可以方便地转换成进制数可以方便地转换成3 3位二进制数位二进制数 (1101100.0101)(1101100.0101)2 2 =(=(1 1 101101 100100.010010 1 1)2 2 =(=(00001 1 101101 100100.010010 1 1
7、0000)2 2=(=(154154.2424)8 81010十六进制十六进制十六进制使用的数字符号:十六进制使用的数字符号:09,AF。一位十六进制数可以方便地转换成一位十六进制数可以方便地转换成4位二进制数位二进制数(1101100.0101)2(1101100.0101)2=(=(110110 11001100.01010101)2)2 =(=(0 0110110 11001100.01010101)2)2 =(6C.5)16=(6C.5)1611111.1.21.1.2 数据组织数据组织 1位(位(bit)-最小信息表示单位最小信息表示单位2字节(字节(Byte)-最小信息存储单位最小
8、信息存储单位3字(字(Word)和双字(和双字(DoubleWord)12121.1.31.1.3 无符号数的表示无符号数的表示 用字节、字、双字或者更多的字节来存储和表示。用字节、字、双字或者更多的字节来存储和表示。用用N位位二二进进制制表表示示一一个个无无符符号号数数时时,最最小小的的数数是是0,最最大大的的数数是是2N-1(二进制二进制111111)。)。无无符符号号数数需需要要增增加加它它的的位位数数时时,在在它它的的左左侧侧添添加加若若干干个个“0”,称为,称为“零扩展零扩展”。“进进位位标标志志(CarryoutFlag,CF)”表表示示二二个个无无符符号号数数运运算算结结果果的的
9、特特征征。如如果果CF=1,表表示示它它们们的的加加法法有有“进进位位”,或或者者它它们的减法有们的减法有“借位借位”。CF=0,则没有产生进位或借位。则没有产生进位或借位。-正数和零的集合正数和零的集合 13131.1.41.1.4 有符号数的表示有符号数的表示1原码原码最最左左边边一一位位二二进进制制表表示示这这个个数数的的符符号号:“0”代代表表正正,“1”代代表负表负后面是它的后面是它的“有效数字有效数字”一一个个字字节节存存储储有有符符号号数数原原码码,有有127个个正正数数(1127),127个个负负数数(-1-127)和和2个个“0”,“正正”0:00000000,“负负”0:1
10、0000000。原原码码的的表表示示规规则则简简单单,但但是是运运算算规规则则比比较较复复杂杂,不不利利于于计计算算机机高速运算的实现。高速运算的实现。-原码、反码、补码原码、反码、补码14142.反码反码用最高位用最高位“0”表示符号为正,表示符号为正,“1”表示符号为负。表示符号为负。符号位之后的二进制位用来存储这个数的有效数字:符号位之后的二进制位用来存储这个数的有效数字:正数的有效数字不变,负数的有效数字取反。正数的有效数字不变,负数的有效数字取反。对于正数对于正数X=dn-2dn-3d2d1d0,X反反=X=0dn-2dn-3d2d1d0。对于负数对于负数Y=dn-2dn-3d2d1
11、d0,Y反反=1111111|Y|=2n-1-|Y|=2n1+Y。1字节存储有符号数反码,有字节存储有符号数反码,有127个正数(个正数(1127),),127个个负数(负数(-1-127)和)和2个个“0”,“正正”0:00000000,“负负”0:11111111。反码的运算规则仍然比较复杂,可以用作原码和常用的补码反码的运算规则仍然比较复杂,可以用作原码和常用的补码之间的一个过渡。之间的一个过渡。15153补码补码用最高有效位(用最高有效位(MSB)表示一个有符号数的符号:表示一个有符号数的符号:“1”表示负,表示负,“0”表示正。表示正。其他二进制位用来存储这个数的有效数字:其他二进制
12、位用来存储这个数的有效数字:正数的有效数字不变,负数的有效数字取反后最低位加正数的有效数字不变,负数的有效数字取反后最低位加1。用字节存储一个有符号数时,用字节存储一个有符号数时,对于正数对于正数X=dn-2dn-3d2d1d0,X补补=X=0dn-2dn-3d2d1d0。对于负数对于负数Y=dn-2d1d0,Y补补=1(dn-2d1d0)#+1=1111111|Y|+1=2n|Y|=2n+Y。1616一字节存储有符号数补码时,有一字节存储有符号数补码时,有127个正数(个正数(1127),),128个负数(个负数(-1-128),),1个个“0”(00000000)。)。其中,其中,-1补补
13、=11111111,-128补补=10000000。把一个数补码的所有位(包括符号位)把一个数补码的所有位(包括符号位)“取反加取反加1”,得到这,得到这个数相反数的补码。称为个数相反数的补码。称为“求补求补”,X补补求补求补=-X补补。已知一个负数的补码,求这个数自身时,可以先求出这个数相已知一个负数的补码,求这个数自身时,可以先求出这个数相反数的补码。反数的补码。例:已知X补=1 010 1110,求X的值:-X补=X补求补=1 010 1110求补=0 101 0001+1=0 101 0010 于是,-X=+101 00102=+82 于是,X=-82 1717真值(十进制)真值(十进
14、制)二进制表示二进制表示原原码码反反码码补补码码12711111110111111101111111011111111000000100000001000000010000000100000000000000000000000000000000000000001000000011111111000000001000000110000001111111101111111120000010100000101111110111111110127111111111111111100000001000000112810000000无无无无100000001818一个补码需要增加它的位数时,一个补码需要增
15、加它的位数时,对于正数,需要在它的左侧添加若干个对于正数,需要在它的左侧添加若干个“0”,对于负数,则需要在它的左侧添加若干个对于负数,则需要在它的左侧添加若干个“1”。用它的符号位来填充增加的用它的符号位来填充增加的“高位高位”,称为,称为“符号扩符号扩展展”。4 补码的扩展补码的扩展例:-5补=1 111 1011(8位)=1 111 1111 1111 1011(16位)+5补=0 000 0101(8位)=0 000 0000 0000 0101(16位)1919补码的运算遵循以下规则:补码的运算遵循以下规则:X+Y补补=X补补+Y补补XY补补=X补补Y补补(XY补补=X补补-Y补补=
16、X补补Y补补求补求补)“溢出标志溢出标志(OverflowFlag,OF)”表示有符号数运算特征。表示有符号数运算特征。OF=1,表示运算结果超过了表示范围,称为表示运算结果超过了表示范围,称为“溢出溢出”,OF=0,没有产生溢出。没有产生溢出。计算机自身用计算机自身用“双进位法双进位法”判断是否产生判断是否产生“溢出溢出”:补码最左边补码最左边2个位上的进位相等,没有溢出,反之有溢出。个位上的进位相等,没有溢出,反之有溢出。5 补码的运算补码的运算2020同号数和异号数相加使用相同的规则;同号数和异号数相加使用相同的规则;有符号数和无符号数加法使用相同的规则有符号数和无符号数加法使用相同的规
17、则减法可以用加法实现(对于电子计算机内的开关电路,减法可以用加法实现(对于电子计算机内的开关电路,求补是十分容易实现的)求补是十分容易实现的)补码运算规则的优点:补码运算规则的优点:上述特性可以用来简化运算器电路,简化指令系统上述特性可以用来简化运算器电路,简化指令系统 计算机内的有符号数一般都用补码表示,除非特别说明。计算机内的有符号数一般都用补码表示,除非特别说明。2121ASCII(AmericanStandardCodeforInformationInterchange,美国信息交换标准编码美国信息交换标准编码)。)。7位二进制表示一个字母、数字或符号,包含位二进制表示一个字母、数字或
18、符号,包含128个不同的编个不同的编码。码。一个字符的一个字符的ASCII码占用一个字节,低码占用一个字节,低7位是它的位是它的ASCII码,码,最高位置最高位置“0”,或者用作,或者用作“校验位校验位”。1.1.51.1.5 字符编码字符编码2222ASCII编码的前编码的前32个(编码个(编码00H1FH)用来表示用来表示“控制字符控制字符”,例如,例如CR(“回车回车”,编码,编码0DH),),LF(“换行换行”,编码,编码0AH)。)。ASCII编码编码30H39H用来表示数字字符用来表示数字字符“0”“9”。它们。它们的高的高3位为位为011,低,低4位就是这个数字字符对应的二进制表
19、示。位就是这个数字字符对应的二进制表示。ASCII编码编码41H5AH用来表示大写字母用来表示大写字母“A”“Z”,它们它们的高的高2位为位为10。ASCII编码编码61H7AH用来表示小写字母用来表示小写字母“a”“z”,它们它们的高的高2位为位为11。小写字母的编码比对应的大写字母大小写字母的编码比对应的大写字母大20H。2323用一组四位二进制来表述一位十进制数,组间仍然按照用一组四位二进制来表述一位十进制数,组间仍然按照“逢十逢十进一进一”的规则进行,称为的规则进行,称为“BCD码(码(BinaryCodedDecimal)”。压缩的压缩的BCD码用一个字节存储码用一个字节存储2位十进
20、制数,高位十进制数,高4位二进制表示位二进制表示高位十进制数,低高位十进制数,低4位二进制表示低位十进制数。用相同数字位二进制表示低位十进制数。用相同数字的十六进制数表述。的十六进制数表述。非压缩的非压缩的BCD码用一个字节存储码用一个字节存储1位十进制数,低位十进制数,低4位二进制表位二进制表示该位十进制数,对高示该位十进制数,对高4位的内容不作规定。位的内容不作规定。1.1.61.1.6 BCDBCD码码十进制数十进制数25的压缩的压缩BCD码用码用25H表示。表示。数字字符数字字符7的的ASCII码码37H就是数就是数7的非压缩的非压缩BCD码码242441H:有符号数有符号数+65的补
21、码的补码无符号数无符号数65大写字母大写字母A的的ASCII码码十进制数十进制数41D的压缩的压缩BCD码码计算机内的一组二进制编码和它们的计算机内的一组二进制编码和它们的“原型原型”之间存在着之间存在着 “一对多一对多”的关系:的关系:知情者知情者:定义、使用该数据的程序员。定义、使用该数据的程序员。25251.2 1.2 计算机组织计算机组织 1.2.1 1.2.1 计算机组成计算机组成 1.2.2 1.2.2 中央处理器中央处理器 1.2.3 1.2.3 存储器存储器 1.2.4 1.2.4 总线总线 1.2.5 1.2.5 外部设备和接口外部设备和接口 2626“存储程序原理存储程序原
22、理”:把程序事先存储在计算机内部,计算机通把程序事先存储在计算机内部,计算机通过过执行程序实现高速数据处理。执行程序实现高速数据处理。“五大功能模块五大功能模块”:电子数字计算机由运算器、控制器、存储电子数字计算机由运算器、控制器、存储器器、输入设备、输出设备组成。、输入设备、输出设备组成。“冯冯诺依曼体系结构诺依曼体系结构”:2727中央处理器中央处理器(CentralProcessUnit,CPU)”或或“微处理器微处理器(MicroProcessUnit,MPU)”:把控制器、运算器、寄存器和高速缓冲把控制器、运算器、寄存器和高速缓冲存储器集成在一块集成电路上存储器集成在一块集成电路上。
23、Intel8086与它兼容的若干微处理器,统称为与它兼容的若干微处理器,统称为8080X86X86微处理器微处理器。寄存器寄存器:由电子线路构成的一个电子器件,可以用来储存若干:由电子线路构成的一个电子器件,可以用来储存若干位二进制。寄存器可以存储运算过程的中间结果,节省反复访位二进制。寄存器可以存储运算过程的中间结果,节省反复访问内存储器的时间开销问内存储器的时间开销高速缓冲存储器高速缓冲存储器(Cache):容量较小,速度较快的存储器。把将容量较小,速度较快的存储器。把将要执行的程序指令和将要使用的数据要执行的程序指令和将要使用的数据“提前提前”取到取到CPU的内部,的内部,加速程序的执行
24、。加速程序的执行。1.2.21.2.2 中央处理器中央处理器2828存储器用于存储程序和数据,是计算机的重要部件。存储器用于存储程序和数据,是计算机的重要部件。存存储储器器属属于于计计算算机机“主主机机”的的一一部部份份,为为了了和和磁磁盘盘存存储储器器等等“外外部部存存储储器器”加加以以区区分分,也也称称为为“内内存存储储器器”或或者者“主存储器主存储器”。1.2.31.2.3 存储器存储器292980X86微微 机机 内内 存存 储储 器器 以以“字字 节节”为为 基基 本本 单单 位位,称为称为“存储单元存储单元”。每个字节用一组二进制数进行编号,称为每个字节用一组二进制数进行编号,称为
25、“地址地址”地址的位数决定了可以编号的字节的个数,也就是地址的位数决定了可以编号的字节的个数,也就是内存储器的大小,或者内存储器的大小,或者容量容量。1 存储器物理组织存储器物理组织假设假设“地址地址”20300H的单元存放了数据的单元存放了数据34H,可以写作(可以写作(20300H)=34H30301KB(千字节千字节)=210B=1024B103B1MB(兆字节兆字节)=210KB=220B106B1GB(吉字节吉字节)=210MB=230B109B1TB(太字节太字节)=210GB=240B1012B用用16位二进制表示存储器地址:位二进制表示存储器地址:最小地址为最小地址为0000H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 基础 108
限制150内