欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第1章汇编语言基础108.ppt

    • 资源ID:69824895       资源大小:261.50KB        全文页数:76页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第1章汇编语言基础108.ppt

    新新新新 编编编编汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计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.使用与机器指令同级的符号指令编写程序使用与机器指令同级的符号指令编写程序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 字符编码字符编码 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个数字符号:个数字符号: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”,如如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二进制数转换为十进制数(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 10000)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)-最小信息存储单位最小信息存储单位3字(字(Word)和双字(和双字(DoubleWord)12121.1.31.1.3 无符号数的表示无符号数的表示 用字节、字、双字或者更多的字节来存储和表示。用字节、字、双字或者更多的字节来存储和表示。用用N位位二二进进制制表表示示一一个个无无符符号号数数时时,最最小小的的数数是是0,最最大大的的数数是是2N-1(二进制二进制111111)。)。无无符符号号数数需需要要增增加加它它的的位位数数时时,在在它它的的左左侧侧添添加加若若干干个个“0”,称为,称为“零扩展零扩展”。“进进位位标标志志(CarryoutFlag,CF)”表表示示二二个个无无符符号号数数运运算算结结果果的的特特征征。如如果果CF=1,表表示示它它们们的的加加法法有有“进进位位”,或或者者它它们的减法有们的减法有“借位借位”。CF=0,则没有产生进位或借位。则没有产生进位或借位。-正数和零的集合正数和零的集合 13131.1.41.1.4 有符号数的表示有符号数的表示1原码原码最最左左边边一一位位二二进进制制表表示示这这个个数数的的符符号号:“0”代代表表正正,“1”代代表负表负后面是它的后面是它的“有效数字有效数字”一一个个字字节节存存储储有有符符号号数数原原码码,有有127个个正正数数(1127),127个个负负数数(-1-127)和和2个个“0”,“正正”0:00000000,“负负”0:10000000。原原码码的的表表示示规规则则简简单单,但但是是运运算算规规则则比比较较复复杂杂,不不利利于于计计算算机机高速运算的实现。高速运算的实现。-原码、反码、补码原码、反码、补码14142.反码反码用最高位用最高位“0”表示符号为正,表示符号为正,“1”表示符号为负。表示符号为负。符号位之后的二进制位用来存储这个数的有效数字:符号位之后的二进制位用来存储这个数的有效数字:正数的有效数字不变,负数的有效数字取反。正数的有效数字不变,负数的有效数字取反。对于正数对于正数X=dn-2dn-3d2d1d0,X反反=X=0dn-2dn-3d2d1d0。对于负数对于负数Y=dn-2dn-3d2d1d0,Y反反=1111111|Y|=2n-1-|Y|=2n1+Y。1字节存储有符号数反码,有字节存储有符号数反码,有127个正数(个正数(1127),),127个个负数(负数(-1-127)和)和2个个“0”,“正正”0:00000000,“负负”0:11111111。反码的运算规则仍然比较复杂,可以用作原码和常用的补码反码的运算规则仍然比较复杂,可以用作原码和常用的补码之间的一个过渡。之间的一个过渡。15153补码补码用最高有效位(用最高有效位(MSB)表示一个有符号数的符号:表示一个有符号数的符号:“1”表示负,表示负,“0”表示正。表示正。其他二进制位用来存储这个数的有效数字:其他二进制位用来存储这个数的有效数字:正数的有效数字不变,负数的有效数字取反后最低位加正数的有效数字不变,负数的有效数字取反后最低位加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补补=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真值(十进制)真值(十进制)二进制表示二进制表示原原码码反反码码补补码码12711111110111111101111111011111111000000100000001000000010000000100000000000000000000000000000000000000001000000011111111000000001000000110000001111111101111111120000010100000101111110111111110127111111111111111100000001000000112810000000无无无无100000001818一个补码需要增加它的位数时,一个补码需要增加它的位数时,对于正数,需要在它的左侧添加若干个对于正数,需要在它的左侧添加若干个“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补补=X补补Y补补求补求补)“溢出标志溢出标志(OverflowFlag,OF)”表示有符号数运算特征。表示有符号数运算特征。OF=1,表示运算结果超过了表示范围,称为表示运算结果超过了表示范围,称为“溢出溢出”,OF=0,没有产生溢出。没有产生溢出。计算机自身用计算机自身用“双进位法双进位法”判断是否产生判断是否产生“溢出溢出”:补码最左边补码最左边2个位上的进位相等,没有溢出,反之有溢出。个位上的进位相等,没有溢出,反之有溢出。5 补码的运算补码的运算2020同号数和异号数相加使用相同的规则;同号数和异号数相加使用相同的规则;有符号数和无符号数加法使用相同的规则有符号数和无符号数加法使用相同的规则减法可以用加法实现(对于电子计算机内的开关电路,减法可以用加法实现(对于电子计算机内的开关电路,求补是十分容易实现的)求补是十分容易实现的)补码运算规则的优点:补码运算规则的优点:上述特性可以用来简化运算器电路,简化指令系统上述特性可以用来简化运算器电路,简化指令系统 计算机内的有符号数一般都用补码表示,除非特别说明。计算机内的有符号数一般都用补码表示,除非特别说明。2121ASCII(AmericanStandardCodeforInformationInterchange,美国信息交换标准编码美国信息交换标准编码)。)。7位二进制表示一个字母、数字或符号,包含位二进制表示一个字母、数字或符号,包含128个不同的编个不同的编码。码。一个字符的一个字符的ASCII码占用一个字节,低码占用一个字节,低7位是它的位是它的ASCII码,码,最高位置最高位置“0”,或者用作,或者用作“校验位校验位”。1.1.51.1.5 字符编码字符编码2222ASCII编码的前编码的前32个(编码个(编码00H1FH)用来表示用来表示“控制字符控制字符”,例如,例如CR(“回车回车”,编码,编码0DH),),LF(“换行换行”,编码,编码0AH)。)。ASCII编码编码30H39H用来表示数字字符用来表示数字字符“0”“9”。它们。它们的高的高3位为位为011,低,低4位就是这个数字字符对应的二进制表示。位就是这个数字字符对应的二进制表示。ASCII编码编码41H5AH用来表示大写字母用来表示大写字母“A”“Z”,它们它们的高的高2位为位为10。ASCII编码编码61H7AH用来表示小写字母用来表示小写字母“a”“z”,它们它们的高的高2位为位为11。小写字母的编码比对应的大写字母大小写字母的编码比对应的大写字母大20H。2323用一组四位二进制来表述一位十进制数,组间仍然按照用一组四位二进制来表述一位十进制数,组间仍然按照“逢十逢十进一进一”的规则进行,称为的规则进行,称为“BCD码(码(BinaryCodedDecimal)”。压缩的压缩的BCD码用一个字节存储码用一个字节存储2位十进制数,高位十进制数,高4位二进制表示位二进制表示高位十进制数,低高位十进制数,低4位二进制表示低位十进制数。用相同数字位二进制表示低位十进制数。用相同数字的十六进制数表述。的十六进制数表述。非压缩的非压缩的BCD码用一个字节存储码用一个字节存储1位十进制数,低位十进制数,低4位二进制表位二进制表示该位十进制数,对高示该位十进制数,对高4位的内容不作规定。位的内容不作规定。1.1.61.1.6 BCDBCD码码十进制数十进制数25的压缩的压缩BCD码用码用25H表示。表示。数字字符数字字符7的的ASCII码码37H就是数就是数7的非压缩的非压缩BCD码码242441H:有符号数有符号数+65的补码的补码无符号数无符号数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“存储程序原理存储程序原理”:把程序事先存储在计算机内部,计算机通把程序事先存储在计算机内部,计算机通过过执行程序实现高速数据处理。执行程序实现高速数据处理。“五大功能模块五大功能模块”:电子数字计算机由运算器、控制器、存储电子数字计算机由运算器、控制器、存储器器、输入设备、输出设备组成。、输入设备、输出设备组成。“冯冯诺依曼体系结构诺依曼体系结构”:2727中央处理器中央处理器(CentralProcessUnit,CPU)”或或“微处理器微处理器(MicroProcessUnit,MPU)”:把控制器、运算器、寄存器和高速缓冲把控制器、运算器、寄存器和高速缓冲存储器集成在一块集成电路上存储器集成在一块集成电路上。Intel8086与它兼容的若干微处理器,统称为与它兼容的若干微处理器,统称为8080X86X86微处理器微处理器。寄存器寄存器:由电子线路构成的一个电子器件,可以用来储存若干:由电子线路构成的一个电子器件,可以用来储存若干位二进制。寄存器可以存储运算过程的中间结果,节省反复访位二进制。寄存器可以存储运算过程的中间结果,节省反复访问内存储器的时间开销问内存储器的时间开销高速缓冲存储器高速缓冲存储器(Cache):容量较小,速度较快的存储器。把将容量较小,速度较快的存储器。把将要执行的程序指令和将要使用的数据要执行的程序指令和将要使用的数据“提前提前”取到取到CPU的内部,的内部,加速程序的执行。加速程序的执行。1.2.21.2.2 中央处理器中央处理器2828存储器用于存储程序和数据,是计算机的重要部件。存储器用于存储程序和数据,是计算机的重要部件。存存储储器器属属于于计计算算机机“主主机机”的的一一部部份份,为为了了和和磁磁盘盘存存储储器器等等“外外部部存存储储器器”加加以以区区分分,也也称称为为“内内存存储储器器”或或者者“主存储器主存储器”。1.2.31.2.3 存储器存储器292980X86微微 机机 内内 存存 储储 器器 以以“字字 节节”为为 基基 本本 单单 位位,称为称为“存储单元存储单元”。每个字节用一组二进制数进行编号,称为每个字节用一组二进制数进行编号,称为“地址地址”地址的位数决定了可以编号的字节的个数,也就是地址的位数决定了可以编号的字节的个数,也就是内存储器的大小,或者内存储器的大小,或者容量容量。1 存储器物理组织存储器物理组织假设假设“地址地址”20300H的单元存放了数据的单元存放了数据34H,可以写作(可以写作(20300H)=34H30301KB(千字节千字节)=210B=1024B103B1MB(兆字节兆字节)=210KB=220B106B1GB(吉字节吉字节)=210MB=230B109B1TB(太字节太字节)=210GB=240B1012B用用16位二进制表示存储器地址:位二进制表示存储器地址:最小地址为最小地址为0000H,最大地址为最大地址为0FFFFH,共有共有65536(64K=216)个不同的地址,个不同的地址,最多可以连接最多可以连接64KB的存储器。的存储器。8086CPU有有20位地址线,可以连接最多位地址线,可以连接最多1MB=220B的内存储器的内存储器3131读读操操作作:从从某某个个存存储储单单元元取取出出事事先先存存储储的的程程序序指指令令或或数数据据读操作不改变原存储单元的内容。读操作不改变原存储单元的内容。写写操操作作:把把一一个个数数据据存存入入指指定定的的存存储储单单元元。写写操操作作之之后后,该存储单元原来的内容被新的内容所该存储单元原来的内容被新的内容所“覆盖覆盖”,不复存在,不复存在一一次次存存储储器器的的读读操操作作或或写写操操作作统统称称为为对对存存储储器器的的一一次次“访问访问(Access)”。2 存储器操作存储器操作从从20300H单元读出它的内容单元读出它的内容“34H”之后,该单元的内之后,该单元的内容仍然是容仍然是“34H”。向向20300H单元写入单元写入“11H”之后,该单元内容变成之后,该单元内容变成“11H”,原来的数据原来的数据“34H”被覆盖。被覆盖。3232一项数据可能占用连续的多个存储单元一项数据可能占用连续的多个存储单元:高位的数据存入地址较大的存储单元高位的数据存入地址较大的存储单元用多个存储单元中的最小地址来表示该数据的地址。用多个存储单元中的最小地址来表示该数据的地址。3 存储器内的数据组织存储器内的数据组织例如,数据例如,数据12345678H存储在地址存储在地址为为23000H23003H的的4个连续的内个连续的内存单元,每个存储单元存储这个存单元,每个存储单元存储这个数据的一部分(数据的一部分(8b),),顺序为:顺序为:78H,56H,34H,12H。用用23000H作为这个作为这个“双字双字”数据的数据的存储地址。存储地址。3333对对连连续续的的多多个个存存储储单单元元进进行行读读写写时时,发发送给存储器的是这个数据的最小地址。送给存储器的是这个数据的最小地址。向向存存储储器器发发出出一一个个地地址址信信号号之之后后,可可以以进进行行1B/2B/4B数数据据的的读读写写,对对应应的的地地址址称称为为“字字节节地地址址”、“字字地地址址”和和“双双字字地地址址”。地地址址的的这这个个“属属性性”在在指指令令中指明。中指明。向存储器发出地址向存储器发出地址23000H和和“读读命令命令”后,如果这个地址是后,如果这个地址是“字节地址字节地址”,那么读出的内容是,那么读出的内容是78H,如果这个如果这个地址是地址是“字地址字地址”,那么读出的内容是,那么读出的内容是5678H,如果这个地址是如果这个地址是“双字地址双字地址”,那么读出的内容是,那么读出的内容是12345678H。34344 存储器分段结构存储器分段结构“段段(Segment)”:内存中的一片区域,用来存放某一种类内存中的一片区域,用来存放某一种类型的信息。型的信息。例如,用一片存储区存放某程序所使用的数据,该存储区称例如,用一片存储区存放某程序所使用的数据,该存储区称为为“数据段数据段”。类似的,还有存放程序代码的。类似的,还有存放程序代码的“代码段代码段”,存,存放程序运行时临时信息的放程序运行时临时信息的“堆栈段堆栈段”等。等。采用分段结构之后,内存单元的地址由两部分组成:所在段采用分段结构之后,内存单元的地址由两部分组成:所在段的起始地址,该单元在这个段内的相对地址。的起始地址,该单元在这个段内的相对地址。段内相对地址段内相对地址也称为也称为“偏移地址偏移地址”,一般从,一般从0开始编码。开始编码。段的起始地址段的起始地址是这个段的所有单元公用的,相对固定。是这个段的所有单元公用的,相对固定。3535段基址段基址:每个段:每个段20位起始地址的高位起始地址的高16位,存放在专门的位,存放在专门的“段寄存器段寄存器”内。内。每个段的偏移地址用每个段的偏移地址用16位二进制表示。这样,每个段最位二进制表示。这样,每个段最多可以有多可以有216B=64KB。8086CPU的分段方法的分段方法:例如:把例如:把“数据段数据段”的段基址存放在的段基址存放在“数据段寄存器数据段寄存器”DS中,访问数据时,自动从中,访问数据时,自动从DS中取出段基址。中取出段基址。3636“逻辑地址逻辑地址”:用:用“段基址:偏移地址段基址:偏移地址”表示的地址,是表示的地址,是程序程序员在汇编语言程序中使用的地址。员在汇编语言程序中使用的地址。“物理地址物理地址”:访问存储器的:访问存储器的20位地址。位地址。计算机硬件把逻辑地址转换为物理地址计算机硬件把逻辑地址转换为物理地址:把把“段基址段基址”尾部添加尾部添加4个个0(相当于乘上(相当于乘上16),得到),得到“段起始地址段起始地址”,再加上偏移地址,就得到了它对应,再加上偏移地址,就得到了它对应的物理地址。的物理地址。物理地址物理地址=段基址段基址16偏移地址偏移地址3737每每个个逻逻辑辑地地址址对对应应一一个个唯唯一一的的物物理理地地址址,但但是是一一个个物物理理地地址可以对应多个址可以对应多个“逻辑地址逻辑地址”。使使用用一一个个段段之之前前应应该该把把这这个个段段的的“段段基基址址”装装入入对对应应的的“段寄存器段寄存器”。8086CPU有有4个个段段寄寄存存器器,因因此此允允许许同同时时使使用用4个个“段段”:数据段、代码段、堆栈段、附加段(另一个数据段)数据段、代码段、堆栈段、附加段(另一个数据段)逻辑地址逻辑地址2340H:1234H对应于物理地址对应于物理地址23400H+1234H=24634H。物理地址物理地址24634H可以同时和可以同时和2463H:0004H、2460H:0034H、2400H:0634H等等“逻辑地址逻辑地址”相对应。相对应。3838十六位十六位80X86微处理器的段寄存器微处理器的段寄存器1.数据段段寄存器(Data Segment Register):DS2.代码段段寄存器(Code Segment Register):CS3.堆栈段段寄存器(Stack Segment Register):SS4.扩展段段寄存器(Extend Segment Register):ES十六位十六位80X86微处理器的段寄存器微处理器的段寄存器在十六位微处理器原有段寄存器基础上,增加了两个数据扩展段段寄存器,命名为:FS 和 GS39391.2.41.2.4 总线总线微型计算机的系统构成体现出以微型计算机的系统构成体现出以“总线总线”为信息为信息“枢纽枢纽”的的特点。特点。4040“总线总线(Bus)”:多个部件多个部件/设备公用的一组信号传输线。设备公用的一组信号传输线。按照传输方向,有按照传输方向,有“输出输出”、“输入输入”以及以及“双向双向”总线。总线。按照传输的内容,总线可以分为三组:按照传输的内容,总线可以分为三组:地址总线地址总线(AddressBus,AB),),传输地址信号,输出传输地址信号,输出;数据总线数据总线(DataBus,DB),),传输数据信号,双向;传输数据信号,双向;控控制制总总线线(ControlBus,CB),传传输输控控制制信信号号,大大多多数数控控制信号为单向,输入或输出。制信号为单向,输入或输出。地址总线的位数决定了可以连接存储器的数量。地址总线的位数决定了可以连接存储器的数量。数据总线的位数决定了一次可以存取数据的位数。数据总线的位数决定了一次可以存取数据的位数。4141CPU处理器处理器位数位数数据总线位数据总线位数数地址总线位地址总线位数数最大寻址空最大寻址空间间8088/80188168201MB8086/801861616201MB8028616162416MB80386/804863232324GBPentium3264324GBPentiumII/P3/P432643664GB42421.2.51.2.5 外部设备和接口外部设备和接口外外部部设设备备用用于于在在计计算算机机“主主机机”和和计计算算机机外外部部之之间间进进行行信信息息传递,也称作传递,也称作“输入输入/输出设备输出设备”或或“I/OI/O设备设备”。外外 部部 设设 备备 需需 要要 通通 过过“输输 入入/输输 出出 接接 口口(Input/OutputInterface)”和主机连接。和主机连接。接接口口主主要要由由电电子子器器件件组组成成,它它一一方方面面连连接接外外部部设设备备,另另一一方方面通过总线与主机相连。面通过总线与主机相连。4343接口内有若干个寄存器,用于在接口内有若干个寄存器,用于在CPU与外部设备之间传与外部设备之间传递信息。这些寄存器和内存储器的存储单元一样,也通过递信息。这些寄存器和内存储器的存储单元一样,也通过“地地址址”进行编号,称为进行编号,称为“端口端口(Port)”。CPU可以通过地址来区可以通过地址来区分和访问不同的端口。分和访问不同的端口。按照传递信号的方向,有按照传递信号的方向,有输出端口输出端口(CPU端口端口外部设外部设备),备),输入端口输入端口(外部设备(外部设备端口端口CPU)和和双向端口双向端口。根据端口传递信号的不同,端口分为以下三类:根据端口传递信号的不同,端口分为以下三类:数据端口数据端口 状态端口状态端口 控制端口控制端口44441数据端口数据端口数据端口数据端口传递传递“数据数据”信号。信号。输出设备接口内的输出设备接口内的数据输出端口数据输出端口:CPU数据端口数据端口输出设备(例:打印机)输出设备(例:打印机)输入设备接口内的输入设备接口内的数据输入端口数据输入端口:输入设备输入设备数据端口数据端口CPU(例:键盘)例:键盘)2控制端口控制端口控制端口控制端口传递传递CPU对外部设备的控制信号。对外部设备的控制信号。控制信号走向控制信号走向:CPU控制端口控制端口外部设备。外部设备。控制端口的传送方向总是控制端口的传送方向总是“输出输出”的。的。45453状态端口状态端口状态端口状态端口传递和储存状态信号,传递和储存状态信号,状态信号走向:外部设备状态信号走向:外部设备状态端口状态端口CPU。状态信号的数量和表达的含义随设备而变。状态信号的数量和表达的含义随设备而变。输入设备输入设备:“Ready”=0,表示该设备尚未输入表示该设备尚未输入/虽然曾经输入,虽然曾经输入,但已经被取走,但已经被取走,“没有没有”数据可读。数据可读。“Ready”=1,表示输入设备已经输入了一个数据,表示输入设备已经输入了一个数据,并且尚未取走。并且尚未取走。数据被数据被“取走取走”后,后,“Ready”位自动清零。位自动清零。输出设备输出设备:“Busy”=0,表示设备处于表示设备处于“空闲空闲”状态,状态,CPU可可以通以通过写数据端口向该设备输出一个数据。过写数据端口向该设备输出一个数据。“Busy”=1,表示该设备处于表示该设备处于“忙碌忙碌”状态。这时,状态。这时,CPU不能再向它输出数据。不能再向它输出数据。46461.3.1 1.3.1 指令和程序指令和程序1.3.21.3.2 机器语言和汇编语言机器语言和汇编语言1.3.31.3.3 高级语言高级语言1.3 1.3 指令、程序和程序设计语言指令、程序和程序设计语言4747机器指令机器指令由若干位二进制组成由若干位二进制组成操作码操作码:操作种类:操作种类操作数操作数:操作对象。:操作对象。机器指令可以由机器指令可以由CPU直接执行。直接执行。指令指令:对计算机硬件发出的操作命令。:对计算机硬件发出的操作命令。指令系统指令系统:某台计算机所有指令的集合。:某台计算机所有指令的集合。符号指令符号指令:用用“助记符助记符”、“寄存器名寄存器名”、“变量名变量名”等记录等记录/书写书写的指令,不能由的指令,不能由CPU直接执行。直接执行。助记符助记符:用字母表示的符号(操作码,操作数):用字母表示的符号(操作码,操作数)484810001000MOVR2,R0(R2R1)10010111ADDR1,R3(R1R1+R3)10100001SUBR0,R1(R0R0R1)指令系统示例指令系统示例4949指令指令序号序号机器指令机器指令符号指令符号指令指令执行后寄存器的值指令执行后寄存器的值R0R1R2R3?XY?110000001MOVR0,R1XXY?210010001ADDR0,R12XXY?310100010SUBR0,R22X-YXY?实现计算实现计算R02XY的程序的程序50501.4 801.4 80 x86x86寄存器寄存器1.4.11.4.1 数据寄存器数据寄存器1.4.21.4.2 地址寄存器地址寄存器 1.4.31.4.3 段寄存器段寄存器1.4.41.4.4 专用寄存器专用寄存器1.4.51.4.5 其它寄存器其它寄存器515116位位80X86处理器有处理器有4个个16位的位的通用数据寄存器通用数据寄存器。AX(累加器累加器):):最常用的数据寄存器最常用的数据寄存器BX(基址寄存器基址寄存器):存放一片内存的首地址):存放一片内存的首地址“基址基址”CX(计数寄存器计数寄存器):存放重复操作的次数):存放重复操作的次数“计数器计数器”DX(数据寄存器数据寄存器):):存放存放32位数据的高位数据的高16位位/存放端口地址存放端口地址可以拆分为可以拆分为2个个8位寄存器使用,命名为位寄存器使用,命名为AH,AL,BH,BL,CH,CL,DH,DL。32位位80X86处理器的处理器的4个数个数据寄存器扩展为据寄存器扩展为32位,更位,更名为名为EAX、EBX、ECX和和EDX。1.4.1 1.4.1 数据寄存器数据寄存器52521.4.21.4.2 地址寄存器地址寄存器SP(堆栈指针堆栈指针):存放堆栈):存放堆栈“栈顶栈顶”的偏移地址。的偏移地址。BP(基址指针基址指针):用来存放堆栈中数据的偏移地址;):用来存放堆栈中数据的偏移地址;SI(源变址寄存器源变址寄存器):存放):存放“源源”数据区的偏移地址数据区的偏移地址DI(目的变址寄存器目的变址寄存器):存放):存放“目的目的”数据区的偏移地址。数据区的偏移地址。变址寄存器变址寄存器:存放的地址可以按照要求自动地增加:存放的地址可以按照要求自动地增加/减少减少地址寄存器不能再拆分使用(地址信息至少地址寄存器不能再拆分使用(地址信息至少16位)位)32位位80X86处理器的地址寄处理器的地址寄存器扩展为存器扩展为32位,命名为:位,命名为:ESP,EBP,ESI,EDI。53531.4.31.4.3 段寄存器段寄存器十六位十六位80X86微处理器的段寄存器微处理器的段寄存器1.数据段段寄存器(Data Segment Register):DS2.代码段段寄存器(Code Segment Register):CS3.堆栈段段寄存器(Stack Segment Register):SS4.扩展段段寄存器(Extend Segment Register):ES三十二位三十二位80X86微处理器的段寄存器微处理器的段寄存器在十六位微处理器原有段寄存器基础上,增加了两个数据扩展段段寄存器,命名为:FS 和 GS54541.4.41.4.4 控制寄存器控制寄存器十六位十六位80X86微处理器的控制寄存器微处理器的控制寄存器1.指令指针寄存器(Instriction Pointer Register,IP)2.16位,存放下一条即将执行的指令的偏移地址2.标志寄存器(Flag Register):Flags3.16位,存放微处理器当前的状态和设置5555OF(OverflowFlag):):溢出标志溢出标志OF=1:两个有符号数的运算结果超出范围,结果错误。两个有符号数的运算结果超出范围,结果错误。OF=0:没有溢出,结果正确。没有溢出,结果正确。进行无符号数运算时也会产生新的进行无符号数运算时也会产生新的OF标志,此时无意义。标志,此时无意义。状态标志状态标志1(OF和和CF)CF(CarryOutFlag):):进位进位/借位标志借位标志CF=1:两个无符号数的加法运算有两个无符号数的加法运算有“进位进位”,或者是减法运,或者是减法运算算有有“借位借位”,需要对它们的,需要对它们的“高位高位”进行补充处理。进行补充处理。CF=0:没有产生进位或借位。没有产生进位或借位。进行有符号数运算时也会产生新的进行有符号数运算时也会产生新的CF标志,此时无意义。标志,此时无意义。状态标志在每次运算后产生状态标志在每次运算后产生 5656SF(SignFlag):):符号标志符号标志,SF=1,表示运算结果的最高位为表示运算结果的最高位为“1”。状态标志状态标志2(SF)对于有符号数运算对于有符号数运算OF=0时,结果正确:时,结果正确:SF=1表示运算结果为负表示运算结果为负SF=0表示运算结果非负(正或零)表示运算结果非负(正或零)OF=1时,结果是错误的,符号位和正确值相反时,结果是错误的,符号位和正确值相反例如,两个负数相加产生溢出,此时例如,两个负数相加产生溢出,此时SF=0。对于无符号数运算,对于无符号数运算,SF无意义(但是可以看出结果的大小规模)无意义(但是可以看出结果的大小规模)状态标志在每次运算后产生状态标志在每次运算后产生 5757PF(ParityFlag):):奇偶标志奇偶标志,可以用来进行可以用来进行“奇偶校验奇偶校验”PF=1运算结果的低运算结果的低8位中有偶数个位中有偶数个“1”(Even)PF=0运算结果的低运算结果的低8位中有奇数个位中有奇数个“1”(Odd)ZF(ZeroFlag):):零标志零标志ZF=1运算结果为零,减法运算后结果为零意味着两个参加运算结果为零,减法运算后结果为零意味着两个参加运算的数大小相等。运算的数大小相等。ZF=0运算结果非零。运算结果非零。状态标志状态标志3(ZF,AF,PF)A

    注意事项

    本文(第1章汇编语言基础108.ppt)为本站会员(s****8)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开