汇编语言学习.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《汇编语言学习.pptx》由会员分享,可在线阅读,更多相关《汇编语言学习.pptx(71页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汇编语言程序设计第第1章章基础知识基础知识1、不同、不同进位位记数制的表示数制的表示2、符号数的表示、符号数的表示3、二、二进制制编码第第1页页/共共71页页汇编语言程序设计不同进位记数制的表示在数字后面加一个字母在数字后面加一个字母进行区分:行区分:二进制:数字后面加二进制:数字后面加B,如如1001B八进制:数字后面加八进制:数字后面加O,如如1001O十进制:一般不加十进制:一般不加,如如1001十六进制:数字后面加十六进制:数字后面加H,如如1001H;如果以如果以字母字母开头,则要在字母前面加一个开头,则要在字母前面加一个0,如,如0AH第第2页页/共共71页页汇编语言程序设计有符号
2、数的表示对于有符号数,常用的表示方法有原码、反码和补码三种。数X的原码记作X原,反码记作X反,补码记作X补。注意:注意:对正数,三种表示法均相同。它正数,三种表示法均相同。它们的的差差别在于在于对负数的表示。数的表示。第第3页页/共共71页页汇编语言程序设计原码定义定义定义:符号位:0表示正,1表示负;数值位:真值的绝对值。nnnXXXXX-=+11122200-第第4页页/共共71页页汇编语言程序设计原码举例真值X=+18=+0010010X=-18=-0010010原码X原=0 0010010X原=1 0010010符号符号位n位原码表示数值的范围是位原码表示数值的范围是对应的原码是对应的
3、原码是1111 0111。第第5页页/共共71页页汇编语言程序设计0的原码表示8位数0的原码:+0=0 0000000 -0=1 0000000 即:数0的原码不唯一。第第6页页/共共71页页汇编语言程序设计反码定义定义定义:若X0,则 X反=X原 若X0,则X补=X反=X原若X0,则X补=X反+1第第10页页/共共71页页汇编语言程序设计补码举例X=52=0110100 X原=10110100 X反=11001011 X补=X反+1=11001100n位位补码表示数表示数值的范的范围是是对应的的补码是是10000111。第第11页页/共共71页页汇编语言程序设计0的补码+0补=+0原=000
4、00000-0补=-0反+1=11111111+1 =1 00000000 对8位字长,进位被舍掉+0补=-0补=00000000第第12页页/共共71页页汇编语言程序设计特殊数10000000该数在原码中定义为:-0在反码中定义为:-127在补码中定义为:-128对无符号数:(10000000)=128第第13页页/共共71页页汇编语言程序设计8位有符号数的表示范围对8位二进制数:原码:-127 +127反码:-127 +127补码:-128 +12716位有符号数的表示范围是多少?第第14页页/共共71页页汇编语言程序设计补码的运算原理模模(module)就是一个就是一个计数系数系统的最大
5、容量的最大容量。例如,例如,钟表的模表的模为12,8位二位二进制数的模制数的模为28。凡是用器件凡是用器件进进行的运算都是有模运算,行的运算都是有模运算,运算运算结果超果超过模的部分会被运算器模的部分会被运算器自自动丢弃弃。因此,当。因此,当器件器件为n位位时,有,有X=2n+X(mod2n)不不难验证,X补=2n+X(mod2n)因此,因此,X Y补=2n+(X Y)(mod2n)=(2n+X)+(2n Y)(mod2n)=X补+Y补第第15页页/共共71页页汇编语言程序设计补码运算举例X=-0110100,Y=+1110100,求X+Y补X原=10110100 X补=X反+1=110011
6、00Y补=Y原=01110100所以:X+Y补=X补+Y补 =11001100+01110100 =01000000第第16页页/共共71页页汇编语言程序设计BCD码码十进制数的表示BCD码用4位二进制数表示一位十进制数。有两种表示法:压缩BCD码和非压缩BCD码。压缩BCD码的每一位用4位二进制表示,00001001表示09,一个字节表示两位十进制数。非压缩BCD码用一个字节表示一位十进制数,高4位总是0000,低4位的00001001表示09。第第17页页/共共71页页汇编语言程序设计非数值数据的表示计算机中除了能算机中除了能够处理数理数值数据以外,数据以外,还可以可以处理文理文字、字、语
7、音、音、图像等各种信息,像等各种信息,这些信息些信息统称称为非数非数值数据。数据。非数非数值数据在数据在计算机中也必算机中也必须以以二进制形式表示,非表示,非数数值数据的表示本数据的表示本质上是上是编码的的过程。程。最常用的数据最常用的数据编码:美国:美国标准信息交准信息交换代代码(American Standard Code for Information Interchange,ASCII码)第第18页页/共共71页页汇编语言程序设计ASCII字符表第第19页页/共共71页页汇编语言程序设计课堂作业1、下列各数为十六进制表示的8位二进制数,请说明当它们被看作是用补码表示的带符号数时,它们所
8、表示的十进制数是什么?(1)D8 (2)FF2、下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的数或字符的ASCII码时,它们所表示的十进制数及字符是什么?(1)4F (2)2B 3、请写出下列字符串的ASCII码值。For example,This is a number 3692.D8:40 FF:14F:79,O 2B:43,+第第20页页/共共71页页汇编语言程序设计第第2章章80 x86计算机组织计算机组织1、8086/8088CPU2、存储器3、80X86 CPU 的工作模式4、DEBUG命令的使用第第21页页/共共71页页汇编语言程序设计8086/808
9、8CPU8086/8088CPU的主要特性:的主要特性:Intel8086/8088CPU内含内含29000个晶体管,封装在个晶体管,封装在标准的准的40脚双列直插式塑封管壳内。采用两个脚双列直插式塑封管壳内。采用两个+5V电源供源供电。数据数据总线:8086:16位,位,8088:8位。位。地址地址总线:20位,其中位,其中8086的低的低16位与数据位与数据总线复复用;用;8088的低的低8位与数据位与数据总线复用。复用。内存空内存空间:20位地址位地址线可直接可直接寻址址1MB存存储空空间。寻址方式:址方式:7种基本的种基本的寻址方式,提供了灵活的操作址方式,提供了灵活的操作数存取方法。
10、数存取方法。第第22页页/共共71页页汇编语言程序设计8086/8088CPU的主要特性指令系统:100条基本指令除能完成数据传送、算数运算、逻辑运算、控制转移和处理器控制功能外,内部还设有硬件乘除法与串处理指令电路,可以对位、字节、字节串、字串等多种数据类型进行处理。时钟频率:8088:4.7MHz;8086:5MHz;8086-2:8MHz。中断功能:可处理内部软件和外部硬件中断,中断源多达256个。工作模式:只能在实模式下工作。(单任务模式)第第23页页/共共71页页汇编语言程序设计8086CPU结构第第24页页/共共71页页汇编语言程序设计8086/8088CPU中的寄存器在8086/
11、8088CPU中,把寄存器分成三大类:1 1、通用寄存器,包括:、通用寄存器,包括:数据寄存器:数据寄存器:AXAX(AH,AL)AH,AL)、BX(BH,BL)BX(BH,BL)、CX CX(CH,CL)(CH,CL)、DX(DH,DL)DX(DH,DL)指针寄存器:堆栈指针指针寄存器:堆栈指针SP SP、基址指针、基址指针BP BP 变址寄存器:源变址变址寄存器:源变址SISI、目的变址、目的变址DIDI2 2、控制寄存器,包括:、控制寄存器,包括:指令指针指令指针IPIP、标志寄存器、标志寄存器FLAGSFLAGS3 3、段寄存器,包括:、段寄存器,包括:数据段数据段DSDS、代码段、代
12、码段CSCS、附加段、附加段ESES、堆栈段、堆栈段SSSS总共总共1414个个1616位寄存器,位寄存器,8 8个个8 8位寄存器。位寄存器。第第25页页/共共71页页汇编语言程序设计80 x86CPU寄存器第第26页页/共共71页页汇编语言程序设计8086/8088寄存器组第第27页页/共共71页页汇编语言程序设计数据寄存器数据寄存器用来存放操作数及中间结果的通用寄存器称为数据用来存放操作数及中间结果的通用寄存器称为数据寄存器。寄存器。1616位寄存器:位寄存器:AX,BX,CX,DXAX,BX,CX,DX(可以分成两个(可以分成两个8 8位的使位的使用)用)8 8位位寄存器:寄存器:AH
13、,AL,BH,BL,CH,CL,DH,DLAH,AL,BH,BL,CH,CL,DH,DL有些存储器有特殊功能:如有些存储器有特殊功能:如AXAX和和ALAL为累加器,乘法为累加器,乘法指令中专用;指令中专用;BXBX可以作为基址指针,可以作为基址指针,CXCX为计数寄为计数寄存器。存器。第第28页页/共共71页页汇编语言程序设计数据寄存器数据寄存器AX:作作为累加器用,在加法运算中参与运算,累加器用,在加法运算中参与运算,结果存于累加果存于累加其中;所有的其中;所有的I/O指令都使用指令都使用这一寄存器与外部一寄存器与外部设备传送信送信息。息。BX:在:在计算存算存储器地址的器地址的时候,它候
14、,它经常用作基址寄存器。常用作基址寄存器。CX:常用来保存常用来保存计数数值,如在移位指令、循,如在移位指令、循环指令和串指令和串处理理指令中用作指令中用作隐含的含的计数器。数器。DX:在一些指令中,通常用它来存放数据,所以又称:在一些指令中,通常用它来存放数据,所以又称为数据数据寄存器;在做双字寄存器;在做双字长运算运算时,将,将DX和和AX组合在一起存放双合在一起存放双字字长数,用数,用DX存放高位字;存放高位字;对某些某些I/O操作操作时,DX用来存放用来存放端口的地址。端口的地址。第第29页页/共共71页页汇编语言程序设计地址指针和变址寄存器指指 针 寄寄 存存 器器 包包 括括 堆堆
15、 栈 指指 针 寄寄 存存 器器 SPSP(stack stack pointerpointer)和和基基址址指指针寄寄存存器器BP(base BP(base pointer)pointer),变址址寄寄存存器器包包括括源源变址址寄寄存存器器SI(source SI(source index index)和和目目的的变址址寄寄存存器器DI(destination DI(destination index)index)。这4 4个个寄存器都是寄存器都是1616位寄存器。位寄存器。这些些寄寄存存器器在在运运算算过程程中中也也可可用用来来存存放放操操作作数数(只只能能以以字字为单位位),但但经常常的
16、的用用途途是是在在段段内内寻址址时提提供供偏移地址。偏移地址。第第30页页/共共71页页汇编语言程序设计地址指针和变址寄存器SPSP和和BPBP一般与段寄存器一般与段寄存器SSSS联用,以确定堆用,以确定堆栈段中某一段中某一存存储单元的地址,元的地址,SPSP用以指示用以指示栈顶的偏移地址,而的偏移地址,而BPBP可作可作为堆堆栈区中的一个基地址,用以确定在堆区中的一个基地址,用以确定在堆栈中的操作数地址。中的操作数地址。SISI和和DIDI一般与段寄存器一般与段寄存器DSDS联用,以确定数据段中某一用,以确定数据段中某一存存储单元的地址。元的地址。SISI和和DIDI具有自具有自动增量和自增
17、量和自动减量减量的功能,的功能,这一点使在串操作指令中用作一点使在串操作指令中用作变址非常方址非常方便,便,SISI作作为隐含的源含的源变址和址和DSDS联用,用,DIDI作作为隐含的含的目的目的变址和址和ESES联用,从而达到在数据段和附加段中用,从而达到在数据段和附加段中寻址的目的。址的目的。第第31页页/共共71页页汇编语言程序设计指令指针寄存器IP指令指针寄存器IP始终指向当前代码段(CS)所要取出的下一条指令的地址。每取出一个字节指令后,IP自动加1。可以用转移、调用及中断和复位指令改变IP值。第第32页页/共共71页页汇编语言程序设计段基址寄存器段基址寄存器用于存放4个当前段的起始
18、地址。4个段为:代码段CS,数据段DS,堆栈段SS和附加段ES。1、存储器的段8086/80888086/8088CPUCPU对可寻址的对可寻址的1MB1MB空间划分为很多个逻辑段,每空间划分为很多个逻辑段,每个逻辑小于个逻辑小于6464KBKB,段内地址是连续的。,段内地址是连续的。CPUCPU规定规定4 4个段寄存器存放当前可寻址的段基址。个段寄存器存放当前可寻址的段基址。CSCS指示当前的代码段;指示当前的代码段;DSDS指示当前的数据段;指示当前的数据段;SSSS指示当前的堆栈段;指示当前的堆栈段;ESES指示当前的附加段;指示当前的附加段;第第33页页/共共71页页汇编语言程序设计课
19、堂练习1、指向程序堆栈区的段寄存器是()CS B.DS C.SS D.ES2、存放当前堆栈段栈顶的偏移地址的寄存器是()A、BP B、SP C、IP D、SS3、存放当前正在执行指令的下一条指令的偏移地址的寄存器是()A、SP、ESP B、IP、EIP C、CS D、BP、EBP4、指向程序代码段的段寄存器是()A、CS B、DS C、SS D、FS第第34页页/共共71页页汇编语言程序设计状态标志寄存器(FLAGS)该状态标志寄存器为16位,可分为状态标志位(6个)和控制标志位(3个)两类。第第35页页/共共71页页汇编语言程序设计符号标志SF(sign flag)反映运算结果的符号情况,若
20、结果为负数,则SF=1,否则,SF=0。SF的取值与运算结果的最高位一致。第第36页页/共共71页页汇编语言程序设计奇偶标志PF(parity flag)反映操作结果的低8位中“1”的个数的情况,若低8位中“1”的个数位偶数,则PF=1,否则PF=0。主要在数据通信中用来检查数据传送有无错误。第第37页页/共共71页页汇编语言程序设计辅助进位标志AF(auxiliary carry flag)反映一个8位量(或16位量的低8位)的低4位向高4位有无进位或借位的情况,有则AF=1,否则AF=0。AF用于十进制算术运算指令。第第38页页/共共71页页汇编语言程序设计零标志ZF(zero flag)
21、反映运算结果是否为零的情况,结果为零则ZF=1,否则ZF=0。第第39页页/共共71页页汇编语言程序设计溢出标志OF(overflow flag)反映带符号数运算结果是否超出机器所能表示的数值范围的情况,对字节运算为128127,对字运算为3276832767。若超过上述范围称为“溢出”,溢出时OF=1,否则OF=0。第第40页页/共共71页页汇编语言程序设计进位标志CF(carry flag)反映算术运算后,最高位(字节操作为D7,字操作为D15)出现进位(或借位)的情况,最高位有进位(或借位)则CF=1,否则CF0。CF主要用于多字节数的加、减法运算。移位及循环指令也会改变CF的值。第第4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 学习
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内