汇编语言第1章基础知识.ppt
第第1 1章章 基础知识基础知识第第1章章 基础知识基础知识1.1 汇编语言及特点汇编语言及特点1.2 数据表示数据表示1.3 8086CPU和寄存器组和寄存器组1.4 存储器物理地址的形成存储器物理地址的形成开开 始始第第1 1章章 基础知识基础知识1.1 汇编语言及特点汇编语言及特点1.1.1 机器语言机器语言1.1.2 汇编语言汇编语言1.1.3 高级语言高级语言1.1.4 汇编语言的特点汇编语言的特点返回本章首页返回本章首页第第1 1章章 基础知识基础知识1.1.1 机器语言机器语言计算机能够直接识别的数据是由二进制数计算机能够直接识别的数据是由二进制数0和和1组成的代码。机器指令就是用二进制代码组组成的代码。机器指令就是用二进制代码组成的指令,一条机器指令控制计算机完成一个基成的指令,一条机器指令控制计算机完成一个基本操作。本操作。用机器语言编写的程序是计算机惟一能够用机器语言编写的程序是计算机惟一能够直接识别并执行的程序,而用其他语言编写的程直接识别并执行的程序,而用其他语言编写的程序必须经过翻译才能变换成机器语言程序,所以,序必须经过翻译才能变换成机器语言程序,所以,机器语言程序被称为目标程序。机器语言程序被称为目标程序。返回本节返回本节第第1 1章章 基础知识基础知识1.1.2 汇编语言汇编语言为了克服机器语言的缺点,人们采用助记符表示机为了克服机器语言的缺点,人们采用助记符表示机器指令的操作码器指令的操作码,用变量代替操作数的存放地址等,这样就用变量代替操作数的存放地址等,这样就形成了汇编语言。所以汇编语言是一种用符号书写的、基形成了汇编语言。所以汇编语言是一种用符号书写的、基本操作与机器指令相对应的、并遵循一定语法规则的计算本操作与机器指令相对应的、并遵循一定语法规则的计算机语言。机语言。用汇编语言编写的程序称为汇编源程序。用汇编语言编写的程序称为汇编源程序。汇编语言是一种符号语言,比机器语言容易理解和汇编语言是一种符号语言,比机器语言容易理解和掌握,也容易调试和维护。但是,汇编语言源程序要翻译掌握,也容易调试和维护。但是,汇编语言源程序要翻译成机器语言程序才可以由计算机执行。这个翻译的过程称成机器语言程序才可以由计算机执行。这个翻译的过程称为为“汇编汇编”,这种把汇编源程序翻译成目标程序的语言加,这种把汇编源程序翻译成目标程序的语言加工程序称为汇编程序。工程序称为汇编程序。返回本节返回本节第第1 1章章 基础知识基础知识1.1.3 高级语言高级语言汇编语言虽然较机器语言直观,但仍然烦汇编语言虽然较机器语言直观,但仍然烦琐难懂。于是人们研制出了高级程序设计语言。琐难懂。于是人们研制出了高级程序设计语言。高级程序设计语言接近于人类自然语言的语法习高级程序设计语言接近于人类自然语言的语法习惯,与计算机硬件无关,易被用户掌握和使用。惯,与计算机硬件无关,易被用户掌握和使用。目前广泛应用的高级语言有多种,如目前广泛应用的高级语言有多种,如BASIC、FORTRAN、PASCAL、C、C+等等。等等。返回本节返回本节第第1 1章章 基础知识基础知识1.1.4 汇编语言的特点汇编语言的特点(1)汇编语言与处理器密切相关。)汇编语言与处理器密切相关。(2)汇编语言程序效率高。)汇编语言程序效率高。(3)编写汇编语言源程序比编写高级语言源程)编写汇编语言源程序比编写高级语言源程序烦琐。序烦琐。(4)调试汇编语言程序比调试高级语言程序困)调试汇编语言程序比调试高级语言程序困难。难。第第1 1章章 基础知识基础知识汇编语言的主要应用场合:汇编语言的主要应用场合:(1)程序执行占用较短的时间,或者占用较小)程序执行占用较短的时间,或者占用较小存储容量的场合。存储容量的场合。(2)程序与计算机硬件密切相关,程序直接控)程序与计算机硬件密切相关,程序直接控制硬件的场合。制硬件的场合。(3)需提高大型软件性能的场合。)需提高大型软件性能的场合。(4)没有合适的高级语言的场合。)没有合适的高级语言的场合。返回本节返回本节第第1 1章章 基础知识基础知识1.2 数据表示数据表示1.2.1 数值数据数值数据1.2.2 字符数据字符数据返回本章首页返回本章首页第第1 1章章 基础知识基础知识1.2.1 数值数据数值数据数数值值数数据据分分为为有有符符号号数数和和无无符符号号数数。无无符符号号数数最最高高位位表表示示数数值值,而而有有符符号号数数最最高高位位表表示示符符号号。有有符号数有不同的编码方式,常用的是补码。符号数有不同的编码方式,常用的是补码。第第1 1章章 基础知识基础知识1.原码原码最高位表示符号(正数用最高位表示符号(正数用0,负数用负数用1),其他位表),其他位表示数值位,称为有符号数的原码表示法。示数值位,称为有符号数的原码表示法。【例【例1.1】有符号数的原码表示。】有符号数的原码表示。X=45=00101101B X原原=00101101BX=-45,X原原=10101101B原原码码表表示示简简单单易易懂懂,但但若若是是两两个个异异号号数数相相加加(或或两两个个同同号号数数相相减减),就就要要做做减减法法。为为了了把把减减法法运运算转换为加法运算就引进了反码和补码。算转换为加法运算就引进了反码和补码。第第1 1章章 基础知识基础知识.反码反码正正数数的的反反码码与与原原码码相相同同,符符号号位位用用0表表示示,数数值值位位值值不不变变。负负数数的的反反码码符符号号位位用用1表表示示,数数值值位位为为原码数值位按位取反形成,即原码数值位按位取反形成,即0变变1、1变变0。【例【例1.2】有符号数的反码表示。】有符号数的反码表示。X=45=00101101B,X反反=00101101BX=-45,X反反=11010010B第第1 1章章 基础知识基础知识3.补码补码正正数数的的补补码码与与原原码码相相同同,即即符符号号位位用用0表表示示,数数值位值不变。负数的补码为反码加值位值不变。负数的补码为反码加1形成。形成。【例【例1.3】有符号数的补码表示。】有符号数的补码表示。X=45=00101101B X补补=00101101BX=-45 X补补=11010011B第第1 1章章 基础知识基础知识4.符号扩展符号扩展在在数数据据处处理理时时,有有时时需需要要把把8位位二二进进制制数数扩扩展展成成16位位二二进进制制数数,当当要要扩扩展展的的数数是是无无符符号号数数时时,可可在在最最高高位位前前扩扩展展8个个0。如如果果要要扩扩展展的的数数是是补补码码形形式式的的有有符符号号数数,那那么么,就就要要进进行符号位的扩展,符号扩展后,其结果仍是该数的补码。行符号位的扩展,符号扩展后,其结果仍是该数的补码。【例【例1.4】符号扩展表示。】符号扩展表示。21的的8位二进制补码为:位二进制补码为:00010101 符号扩展后符号扩展后21的的16位二进制补码为:位二进制补码为:0000000000010101。00010101和和0000000000010101都是都是21的补码。的补码。第第1 1章章 基础知识基础知识5.数据的表示范围和大小数据的表示范围和大小n位二进制数能够表示的无符号整数的范围是位二进制数能够表示的无符号整数的范围是:0 I 2n-1n位二进制数能够表示的有符号整数的范围是位二进制数能够表示的有符号整数的范围是:-2(n-1)I+2(n-1)-1第第1 1章章 基础知识基础知识6十六进制表示十六进制表示由由于于二二进进制制数数的的基基数数太太小小,书书写写和和阅阅读读都都不不方方便便.而而十十六六进进制制的的基基数数1624,这这样样二二进进制制数数与与十十六六进进制制之之间间能能方方便便地地转转换换。因因此此,习习惯惯把把二二进进制制数数改改写写成成十十六六进进制制数数,在在汇汇编编语语言言程程序序设设计计时时尤尤其其如此。如此。在在书书写写时时,为为了了区区别别于于十十六六进进制制和和二二进进制制数数,通通常在十六进制数后加字母常在十六进制数后加字母H。返回本节返回本节第第1 1章章 基础知识基础知识1.2.2 字符数据字符数据1ASCII码码2BCD码码第第1 1章章 基础知识基础知识1ASCII码码标准标准ASCII码用码用7位二进制数编码,共有位二进制数编码,共有128个。个。计计算算机机存存储储器器基基本本单单位位为为8位位,ASCII码码的的最最高高位通常为位通常为0,通信时,最高位用作奇偶校验位。,通信时,最高位用作奇偶校验位。ASCII码码表表中中的的前前32个个和和最最后后1个个编编码码是是不不能能显显示的控制字符,用于表示某种操作。示的控制字符,用于表示某种操作。ASCII码码表表中中20H后后的的94个个编编码码是是可可显显示示和和打打印印的的字字符符,其其中中包包括括数数码码09,英英文文字字母母,标标点点符符号等。号等。第第1 1章章 基础知识基础知识2BCD码码虽虽然然二二进进制制数数实实现现容容易易,但但不不符符合合人人们们的的使使用用习习惯惯,且且书书写写阅阅读读不不方方便便,所所以以在在计计算算机机输输入入输输出出时时通通常常还还是是采采用用十十进进制制来来表表示示数数,这这就就需需要要实实现现十十进进制制与与二二进进制制间间的的转转换换。为为了了转转换换方方便便,常采用二进制编码的十进制常采用二进制编码的十进制,简称为简称为BCD码。码。BCD码就是用码就是用4位二进制数表示位二进制数表示1位十进制位十进制整数。表示的方法有多种,常用的是整数。表示的方法有多种,常用的是8421BCD码,码,它的表示规律如表它的表示规律如表1.1所示。所示。第第1 1章章 基础知识基础知识表1.1 十进制数字的8421BCD码十进制数字8421BCD码十进制数字8421BCD码00000501011000160110200107011130011810004010091001返回本节返回本节第第1 1章章 基础知识基础知识1.3 8086CPU和寄存器组和寄存器组1.3.1 Intel8086CPU内部结构内部结构1.3.2 8086寄存器组寄存器组1.3.3 标志寄存器标志寄存器返回本章首页返回本章首页第第1 1章章 基础知识基础知识1.3.1 Intel8086CPU内部结构内部结构图1.2 8086CPU内部结构图图1.2 8086CPU内部结构内部结构返回本节返回本节第第1 1章章 基础知识基础知识1.3.2 8086寄存器组寄存器组图图1.3 8086CPU寄寄存存器器分分组组第第1 1章章 基础知识基础知识1通用寄存器通用寄存器(1)数据寄存器)数据寄存器数据寄存器共有数据寄存器共有4个寄存器个寄存器AX、BX、CX、DX,用来保用来保存操作数或运算结果等信息。存操作数或运算结果等信息。AX寄寄存存器器称称为为累累加加器器。使使用用频频度度最最高高,用用于于算算术术、逻逻辑辑运算以及与外设传送信息等。运算以及与外设传送信息等。BX寄存器称为基址寄存器。常用于存放存储器地址。寄存器称为基址寄存器。常用于存放存储器地址。CX寄寄存存器器称称为为计计数数器器。一一般般作作为为循循环环或或串串操操作作等等指指令令中中的隐含计数器。的隐含计数器。DX寄寄存存器器称称为为数数据据寄寄存存器器。常常用用来来存存放放双双字字数数据据的的高高16位,或存放外设端口地址。位,或存放外设端口地址。第第1 1章章 基础知识基础知识变变址址和和指指针针寄寄存存器器包包括括SI、DI、SP、BP个个16位位寄寄存存器器,主要用于存放某个存储单元的偏移地址。主要用于存放某个存储单元的偏移地址。SI是是源源变变址址寄寄存存器器,DI是是目目的的变变址址寄寄存存器器,在在字字符符串串操操作中,作中,SI和和DI都具有自动增量或减量的功能。都具有自动增量或减量的功能。SP为堆栈指针寄存器,用于存放当前堆栈段中栈顶的偏为堆栈指针寄存器,用于存放当前堆栈段中栈顶的偏移地址;移地址;BP为基址指针寄存器,用于存放堆栈段中某一为基址指针寄存器,用于存放堆栈段中某一存储单元的偏移地址。存储单元的偏移地址。(2)变址和指针寄存器)变址和指针寄存器第第1 1章章 基础知识基础知识2段寄存器段寄存器8086CPU的的个个16位位的的段段寄寄存存器器分分别别称称为为代代码码段段寄寄存存器器CS,数数据据段段寄寄存存器器DS,堆堆栈栈段段寄寄存存器器SS,附附加加数数据据段段寄寄存存器器ES。段段寄寄存存器器用用来来确确定定该该段段在内存中的起始地址。在内存中的起始地址。代代码码段段用用来来存存放放程程序序的的指指令令序序列列。CS存存放放代代码码段段的的段段首首址址,指指令令指指针针寄寄存存器器IP指指示示代代码码段段中中指指令令的偏移地址。的偏移地址。第第1 1章章 基础知识基础知识3指令指针指令指针8086CPU中中的的指指令令指指针针IP,它它总总是是保保存存下下一一次次将将要要从从主主存存中中取取出出指指令令的的偏偏移移地地址址,偏偏移移地地址址的的值值为为该该指指令令到到所所在在段段段段首首址址的的字字节节距距离离。在在目目标标程程序序运运行行时时,IP的的内内容容由由微微处处理理器器硬硬件件自自动动设设置置,程程序序不不能能直直接接访访问问IP,但但一一些些指指令令却却可可改改变变IP的值,如转移指令、子程序调用指令等。的值,如转移指令、子程序调用指令等。返回本节返回本节第第1 1章章 基础知识基础知识1.3.3 标志寄存器标志寄存器8086CPU中有一个很重要的中有一个很重要的16位标志寄存器,它位标志寄存器,它包含包含9个标志位,主要用于保存一条指令执行后,个标志位,主要用于保存一条指令执行后,CPU所处状态信息及运算结果的特征。所处状态信息及运算结果的特征。1条件标志条件标志 2状态控制标志状态控制标志 第第1 1章章 基础知识基础知识1条件标志条件标志(1)进位标志)进位标志CF(2)零标志)零标志ZF(3)符号标志)符号标志SF(4)溢出标志)溢出标志 OF(5)奇偶标志)奇偶标志 PF(6)辅助进位标志辅助进位标志AF第第1 1章章 基础知识基础知识2状态控制标志状态控制标志(1)方向标志)方向标志DF(2)中断允许标志)中断允许标志IF(3)追踪标志)追踪标志TF返回本节返回本节第第1 1章章 基础知识基础知识1.4 存储器物理地址的形成存储器物理地址的形成1.4.1 存储器存储器1.4.2 存储器单元的地址和内容存储器单元的地址和内容1.4.3 物理地址的形成物理地址的形成返回本章首页返回本章首页第第1 1章章 基础知识基础知识1.4.1 存储器存储器存储器是计算机的记忆部件,用来存放程序和数存储器是计算机的记忆部件,用来存放程序和数据。按所在的位置,存储器可以分成主存储器和辅助存据。按所在的位置,存储器可以分成主存储器和辅助存储器。储器。主存储器存放当前正在执行的程序和使用的数据,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成,其成可以直接存取,它由半导体存储器芯片构成,其成本高,容量小,但速度快。本高,容量小,但速度快。辅助存储器可用来长期保存大量程序和数据辅助存储器可用来长期保存大量程序和数据,CPU需要通过需要通过I/O接口访问,它由磁盘或光盘构成,其成本低,接口访问,它由磁盘或光盘构成,其成本低,容量大,但速度较慢。容量大,但速度较慢。返回本节返回本节第第1 1章章 基础知识基础知识1.4.2 存储器单元的地址和内容存储器单元的地址和内容存储单元地址存储单元地址:8086系统中,为了标识和存取每系统中,为了标识和存取每一个存储单元,给每个存储单元规定一个编号,一个存储单元,给每个存储单元规定一个编号,这就是存储单元地址。这就是存储单元地址。存储单元的内容存储单元的内容:一个存储单元中存放的信息称:一个存储单元中存放的信息称为该存储单元的内容。为该存储单元的内容。第第1 1章章 基础知识基础知识图图1.4表表明明了了存存储储器器中中部部分分存存储储单单元元存存放放信信息息情情况况。从从图图1.4可可看看到到,地地址址为为34560H的的字字节节的的存存储储单单元元中中的的内内容容是是34H,而而 地地 址址 为为34561H的的字字节节存存储储单单 元元 中中 的的 内内 容容 是是12H。返回本节返回本节第第1 1章章 基础知识基础知识1.4.3 物理地址的形成物理地址的形成8086CPU的地址线是的地址线是20位的,这样最大可寻址空位的,这样最大可寻址空间应为间应为220=1MB,其物理地址范围从其物理地址范围从00000HFFFFFH。而而8086CPU寄存器都是寄存器都是16位的。那么,这位的。那么,这1MB空间如何空间如何用用16位寄存器表达呢?位寄存器表达呢?根根据据要要求求可可把把1M字字节节地地址址空空间间划划成成若若干干逻逻辑辑段段。每每个个逻逻辑辑段段必必须须满满足足两两个个条条件件:一一是是逻逻辑辑段段的的起起始始地地址址(简简称称段段首首址址)必必须须是是16的的倍倍数数;二二是是逻逻辑辑段段的的最最大大长长度度为为64K。按按照照这这两两个个条条件件,1M字字节节地地址址空空间间最最多多可可划划分分成成64K个个逻逻辑辑段段,最最少少也也要要划划分分成成16个个逻逻辑辑段段。逻逻辑辑段段与逻辑段可以相连,也可以不连,还可以重叠。与逻辑段可以相连,也可以不连,还可以重叠。第第1 1章章 基础知识基础知识【例【例1.5】各独立段的分配情况示例。】各独立段的分配情况示例。设设CS=B000H、DS=1CDEH、SS=4200H、ES=0150H,它它们们分分别别为为代代码码段段、数数据据段段、堆堆栈栈段段和和附附加加段段的的段段首首址址。自自每每个个段段首首址址开开始始,各各段段均均占占64KB的的范范围围,各各段段之之间间互互不不重重叠叠。如如图图1.5所所示。示。第第1 1章章 基础知识基础知识第第1 1章章 基础知识基础知识【例【例1.6】各段相互重叠情况示例。】各段相互重叠情况示例。设设CS=0200H、DS=0400H、SS=0480H,这样代这样代码段、数据段和堆栈段的物理首地址分别为码段、数据段和堆栈段的物理首地址分别为02000H、04000H和和04800H。其中代码段占其中代码段占8KB地址空间,数据段占地址空间,数据段占2KB,堆栈段占堆栈段占256B,SP=0100H。如图如图1.6所示。所示。第第1 1章章 基础知识基础知识图图1.6 各段重叠存储单元分配图各段重叠存储单元分配图返回本节返回本节第第1 1章章 基础知识基础知识Thank you very much!本章到此结束,谢谢您的光临!返回本章首页返回本章首页结结 束束