第二章 80X86计算机组织_第1页
第二章 80X86计算机组织_第2页
第二章 80X86计算机组织_第3页
第二章 80X86计算机组织_第4页
第二章 80X86计算机组织_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、汇编语言程序设计第第1章章 基础知识基础知识1、不同进位记数制的表示、不同进位记数制的表示2、符号数的表示、符号数的表示3、二进制编码、二进制编码汇编语言程序设计不同进位记数制的表示在数字后面加一个字母进行区分:在数字后面加一个字母进行区分:二进制:数字后面加二进制:数字后面加B, 如如1001B八进制:数字后面加八进制:数字后面加O, 如如1001O十进制:一般不加十进制:一般不加, 如如1001十六进制:数字后面加十六进制:数字后面加H , 如如1001H;如果以如果以字母字母开头,则要在字母前面加一个开头,则要在字母前面加一个0,如,如0AH汇编语言程序设计有符号数的表示对于有符号数,常

2、用的表示方法有原码、反码和补码三种。数X的原码记作X原,反码记作X反,补码记作X补。注意:对正数,三种表示法均相同。它们的注意:对正数,三种表示法均相同。它们的差别在于对负数的表示。差别在于对负数的表示。汇编语言程序设计原码定义定义定义: 符号位:0表示正,1表示负; 数值位:真值的绝对值。nnnXXXXX- - - - = = + + 11122200-汇编语言程序设计原码举例真值X=+18=+0010010X=-18=-0010010原码X原 =0 0010010X原 =1 0010010符号符号位n位原码表示数值的范围是位原码表示数值的范围是对应的原码是对应的原码是1111 0111。(

3、) ()nn- - - - -+ +- -112121汇编语言程序设计0的原码表示8位数0的原码:+0 = 0 0000000 - 0 = 1 0000000 即:数0的原码不唯一。汇编语言程序设计反码定义定义定义: 若X0 ,则 X反=X原 若X = = - -+ + 112(21)2 00 -汇编语言程序设计反码举例真值X=+18=+0010010X=-18=-0010010反码X反 =0 0010010X反 =1 1101101符号符号位n位反码表示数值的范围是位反码表示数值的范围是对应的反码是对应的反码是1000 0111。() ()nn- - - - -+ +- -112121汇编语

4、言程序设计0的反码+0反 = 00000000-0反 = 11111111即:数0的反码也不是唯一的。汇编语言程序设计补码定义定义:若X0, 则X补= X反= X原若X = = 1122200-汇编语言程序设计补码举例X= 52= 0110100 X原 = 10110100 X反 = 11001011 X补 = X反+1=11001100n位补码表示数值的范围是位补码表示数值的范围是对应的补码是对应的补码是1000 0111。()11221nn-+-+-汇编语言程序设计0的补码+0补= +0原=00000000-0补= -0反+1=11111111+1 =1 00000000 对8位字长,进位

5、被舍掉+0补= -0补= 00000000汇编语言程序设计特殊数10000000该数在原码中定义为: -0在反码中定义为: -127在补码中定义为: -128对无符号数:(10000000) = 128汇编语言程序设计8位有符号数的表示范围对8位二进制数:原码: -127 +127反码: -127 +127补码: -128 +12716位有符号数的表示范围是多少?汇编语言程序设计补码的运算原理模模(module)就是一个计数系统的最大容量就是一个计数系统的最大容量。例如,钟例如,钟表的模为表的模为12,8位二进制数的模为位二进制数的模为28。 凡是用器件进行的运算都是有模运算,运算结果超凡是用

6、器件进行的运算都是有模运算,运算结果超过模的部分会被运算器过模的部分会被运算器自动丢弃自动丢弃。因此,当器件为。因此,当器件为n位时,有位时,有X=2n+X (mod 2n)不难验证,不难验证, X补补=2n+X (mod 2n)因此,因此, X Y补补= 2n + (X Y) (mod 2n) = (2n+X) + (2n Y) (mod 2n) = X补补+ Y补补汇编语言程序设计补码运算举例X=-0110100,Y=+1110100,求X+Y补X原=10110100 X补= X反+1=11001100Y补= Y原=01110100所以: X+Y补= X补+ Y补 =11001100+01

7、110100 =01000000汇编语言程序设计BCD码码十进制数的表示BCD码码用4位二进制数表示一位十进制数。有两种表示法:压缩BCD码和非压缩BCD码。压缩BCD码的每一位用4位二进制表示,00001001表示09,一个字节表示两位十进制数。非压缩BCD码用一个字节表示一位十进制数,高4位总是0000,低4位的00001001表示09。汇编语言程序设计非数值数据的表示计算机中除了能够处理数值数据以外,还可以处理文计算机中除了能够处理数值数据以外,还可以处理文字、语音、图像等各种信息,这些信息统称为非数字、语音、图像等各种信息,这些信息统称为非数值数据。值数据。非数值数据在计算机中也必须以

8、非数值数据在计算机中也必须以二进制形式表示,非表示,非数值数据的表示本质上是编码的过程。数值数据的表示本质上是编码的过程。最常用的数据编码:美国标准信息交换代码最常用的数据编码:美国标准信息交换代码(American Standard Code for Information Interchange, ASCII码码)汇编语言程序设计ASCII字符表汇编语言程序设计课堂作业1、下列各数为十六进制表示的8位二进制数,请说明当它们被看作是用补码表示的带符号数时,它们所表示的十进制数是什么?D8 (2) FF2、下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的数或字符的AS

9、CII码时,它们所表示的十进制数及字符是什么?4F (2) 2B 3、请写出下列字符串的ASCII码值。(1) For example, This is a number 3692.D8: 40 FF:14F: 79,O 2B: 43,+汇编语言程序设计第第2章章 80 x86计算机组织计算机组织1、8086/8088CPU2、存储器3、80X86 CPU 的工作模式4、DEBUG命令的使用汇编语言程序设计8086/8088CPU8086/8088CPU的主要特性:的主要特性:Intel 8086/8088CPU内含内含29000个晶体管,封装在标个晶体管,封装在标准的准的40 脚双列直插式塑

10、封管壳内。采用两个脚双列直插式塑封管壳内。采用两个+5V电电源供电。源供电。数据总线:数据总线: 8086:16位,位,8088:8位。位。地址总线:地址总线:20位,其中位,其中8086的低的低16位与数据总线复位与数据总线复用;用;8088的低的低8位与数据总线复用。位与数据总线复用。内存空间:内存空间:20位地址线可直接寻址位地址线可直接寻址1MB存储空间。存储空间。寻址方式:寻址方式:7种基本的寻址方式,提供了灵活的操作种基本的寻址方式,提供了灵活的操作数存取方法。数存取方法。 汇编语言程序设计8086/8088CPU的主要特性指令系统:100条基本指令除能完成数据传送、算数运算、逻辑

11、运算、控制转移和处理器控制功能外,内部还设有硬件乘除法与串处理指令电路,可以对位、字节、字节串、字串等多种数据类型进行处理。 时钟频率:8088: 4.7MHz; 8086: 5MHz; 8086-2:8MHz。 中断功能:可处理内部软件和外部硬件中断,中断源多达256个。工作模式:只能在实模式下工作。(单任务模式)汇编语言程序设计8086CPU结构汇编语言程序设计8086/8088CPU中的寄存器在8086/8088CPU中,把寄存器分成三大类:1 1、通用寄存器,包括:、通用寄存器,包括:数据寄存器:数据寄存器:AXAX(AH,AL)AH,AL)、BX(BH,BL)BX(BH,BL)、CX

12、 CX (CH,CL) (CH,CL) 、DX (DH,DL)DX (DH,DL)指针寄存器:堆栈指针指针寄存器:堆栈指针SP SP 、基址指针、基址指针BP BP 变址寄存器:源变址变址寄存器:源变址SISI、目的变址、目的变址DIDI2 2、控制寄存器,包括:、控制寄存器,包括:指令指针指令指针IPIP、标志寄存器、标志寄存器FLAGSFLAGS3 3、段寄存器,包括:、段寄存器,包括:数据段数据段DSDS、代码段、代码段CSCS、附加段、附加段ESES、堆栈段、堆栈段SSSS总共总共1414个个1616位寄存器,位寄存器,8 8个个8 8位寄存器。位寄存器。汇编语言程序设计80 x86C

13、PU寄存器汇编语言程序设计8086/8088寄存器组汇编语言程序设计数据寄存器数据寄存器用来存放操作数及中间结果的通用寄存器称为数用来存放操作数及中间结果的通用寄存器称为数据寄存器。据寄存器。1616位寄存器:位寄存器:AX,BX,CX,DXAX,BX,CX,DX(可以分成两个(可以分成两个8 8位的位的使用)使用)8 8位寄存器:位寄存器:AH,AL,BH,BL,CH,CL,DH,DLAH,AL,BH,BL,CH,CL,DH,DL有些存储器有特殊功能:如有些存储器有特殊功能:如AXAX和和ALAL为累加器,乘为累加器,乘法指令中专用;法指令中专用;BXBX可以作为基址指针,可以作为基址指针,

14、CXCX为计数为计数寄存器。寄存器。汇编语言程序设计数据寄存器数据寄存器AX : 作为累加器用,在加法运算中参与运算,结果存于累加作为累加器用,在加法运算中参与运算,结果存于累加其中;所有的其中;所有的I/O指令都使用这一寄存器与外部设备传送信指令都使用这一寄存器与外部设备传送信息。息。BX :在计算存储器地址的时候,它经常用作基址寄存器。:在计算存储器地址的时候,它经常用作基址寄存器。CX : 常用来保存计数值,如在移位指令、循环指令和串处理常用来保存计数值,如在移位指令、循环指令和串处理指令中用作隐含的计数器。指令中用作隐含的计数器。DX :在一些指令中,通常用它来存放数据,所以又称为数据

15、:在一些指令中,通常用它来存放数据,所以又称为数据寄存器;在做双字长运算时,将寄存器;在做双字长运算时,将DX和和AX组合在一起存放双组合在一起存放双字长数,用字长数,用DX存放高位字;对某些存放高位字;对某些I/O操作时,操作时,DX用来存用来存放端口的地址。放端口的地址。汇编语言程序设计地址指针和变址寄存器指针寄存器包括堆栈指针寄存器指针寄存器包括堆栈指针寄存器SPSP(stack pointerstack pointer)和基址指针寄存器和基址指针寄存器BP(base pointer)BP(base pointer),变址寄存器,变址寄存器包括源变址寄存器包括源变址寄存器SI(sourc

16、e index )SI(source index )和目的变址和目的变址寄存器寄存器DI(destination index)DI(destination index)。这。这4 4个寄存器都是个寄存器都是1616位寄存器。位寄存器。这些寄存器在运算过程中也可用来存放操作数这些寄存器在运算过程中也可用来存放操作数( (只能只能以字为单位以字为单位) ),但经常的用途是在段内寻址时提供,但经常的用途是在段内寻址时提供偏移地址。偏移地址。汇编语言程序设计地址指针和变址寄存器SPSP和和BPBP一般与段寄存器一般与段寄存器SSSS联用,以确定堆栈段中某一联用,以确定堆栈段中某一存储单元的地址,存储单

17、元的地址,SPSP用以指示栈顶的偏移地址,而用以指示栈顶的偏移地址,而BPBP可作为堆栈区中的一个基地址,用以确定在堆栈可作为堆栈区中的一个基地址,用以确定在堆栈中的操作数地址。中的操作数地址。SISI和和DIDI一般与段寄存器一般与段寄存器DSDS联用,以确定数据段中某一联用,以确定数据段中某一存储单元的地址。存储单元的地址。SISI和和DIDI具有自动增量和自动减量具有自动增量和自动减量的功能,这一点使在串操作指令中用作变址非常方的功能,这一点使在串操作指令中用作变址非常方便,便,SISI作为隐含的源变址和作为隐含的源变址和DSDS联用,联用,DIDI作为隐含的作为隐含的目的变址和目的变址

18、和ESES联用,从而达到在数据段和附加段中联用,从而达到在数据段和附加段中寻址的目的。寻址的目的。汇编语言程序设计指令指针寄存器IP指令指针寄存器IP始终指向当前代码段(CS)所要取出的下一条指令的地址。每取出一个字节指令后,IP自动加1。可以用转移、调用及中断和复位指令改变IP值。汇编语言程序设计段基址寄存器段基址寄存器用于存放4个当前段的起始地址。4个段为:代码段CS,数据段DS,堆栈段SS和附加段ES。1、存储器的段8086/8088CPU8086/8088CPU对可寻址的对可寻址的1MB1MB空间划分为很多个逻辑段,每空间划分为很多个逻辑段,每个逻辑小于个逻辑小于64KB64KB,段内

19、地址是连续的。,段内地址是连续的。CPUCPU规定规定4 4个段寄存器存放当前可寻址的段基址。个段寄存器存放当前可寻址的段基址。CSCS指示当前的代码段;指示当前的代码段;DSDS指示当前的数据段;指示当前的数据段;SSSS指示当前的堆栈段;指示当前的堆栈段;ESES指示当前的附加段;指示当前的附加段;汇编语言程序设计课堂练习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、B

20、P、EBP4、指向程序代码段的段寄存器是( )A、CS B、DS C、SS D、FS汇编语言程序设计状态标志寄存器(FLAGS)该状态标志寄存器为16位,可分为状态标志位(6个)和控制标志位(3个)两类。汇编语言程序设计符号标志SF(sign flag)反映运算结果的符号情况,若结果为负数,则SF=1,否则,SF=0。SF的取值与运算结果的最高位一致。汇编语言程序设计奇偶标志PF(parity flag)反映操作结果的低8位中“1”的个数的情况,若低8位中“1”的个数位偶数,则PF=1,否则PF=0。主要在数据通信中用来检查数据传送有无错误。汇编语言程序设计辅助进位标志AF( auxiliar

21、y carry flag )反映一个8位量(或16位量的低8位)的低4位向高4位有无进位或借位的情况,有则AF=1,否则AF=0。AF用于十进制算术运算指令。汇编语言程序设计零标志ZF(zero flag)反映运算结果是否为零的情况,结果为零则ZF=1,否则ZF=0。汇编语言程序设计溢出标志OF(overflow flag)反映带符号数运算结果是否超出机器所能表示的数值范围的情况,对字节运算为128127,对字运算为3276832767。若超过上述范围称为“溢出”,溢出时OF=1,否则OF=0。汇编语言程序设计进位标志CF(carry flag)反映算术运算后,最高位(字节操作为D7,字操作为

22、D15)出现进位(或借位)的情况,最高位有进位(或借位)则CF=1,否则CF0。CF主要用于多字节数的加、减法运算。移位及循环指令也会改变CF的值。汇编语言程序设计控制标志汇编语言程序设计控制标志汇编语言程序设计标志寄存器标标 志志置置 位位复复 位位O FO VN VD FD NU PIFE ID IS FN GP LZ FZ RN ZA FA CN AP FP EP OC FC YN CA F P F cfP F汇编语言程序设计课堂练习1、已知两个有符号的、已知两个有符号的16位字数据位字数据4321H和和0DCBAH,它们相加后的结果是多少?标志位它们相加后的结果是多少?标志位CF、ZF

23、、SF、OF的值各是多少?的值各是多少?2、已知两个有符号的、已知两个有符号的16位字数据位字数据5678H和和0E234H,它们相加后的结果是多少?标志位它们相加后的结果是多少?标志位CF、ZF、SF、OF、PF的值各是多少?的值各是多少?1FDB, CF=1,ZF=0,SF=0,OF=038AC,CF=1, ZF=0,SF=0,OF=0,PF=1汇编语言程序设计存储器存储器一个存储单元存放的信息为存储单元的内容一个存储单元存放的信息为存储单元的内容; ;字节单元内容:地址字节单元内容:地址00004H00004H的内容为的内容为34H,34H,表示为(表示为(0004H0004H)=34H

24、=34H。字单元内容:多用偶地址来表示字单元的地址,字的低字节在字单元内容:多用偶地址来表示字单元的地址,字的低字节在偶地址上为偶地址,地址偶地址上为偶地址,地址00004H00004H的字单元内容为的字单元内容为1234H,1234H,表示表示为(为(00002H00002H)=1234H=1234H。如下图所示。如下图所示。(0004H0004H)=1234H=1234H(1234H1234H)=FFEEH=FFEEH则记(则记(0004H0004H)=FFEEH=FFEEH;两个括号表示内容的内容,即地两个括号表示内容的内容,即地址址0004H0004H单元的内容的内容为单元的内容的内容

25、为FFEEHFFEEH。汇编语言程序设计存储器某单元内容的内容:某单元的内容为要寻找的单元地某单元内容的内容:某单元的内容为要寻找的单元地址,该地址所指的内容为要寻找的内容。址,该地址所指的内容为要寻找的内容。 由于机器字长是由于机器字长是1616位,而字数据必须转换为字节数据位,而字数据必须转换为字节数据才能存放到存储器中。所以一个字数据存入存储器才能存放到存储器中。所以一个字数据存入存储器中占用连续的二个存储单元:中占用连续的二个存储单元:低位字节存入低地址,低位字节存入低地址,高位字节存入高地址。字单元的地址采用它的低地高位字节存入高地址。字单元的地址采用它的低地址来表示址来表示。汇编语

26、言程序设计存储器汇编语言程序设计80X86 CPU 的工作模式实模式存储器寻址实模式存储器寻址8086/80888086/8088系统中系统中1MB1MB的存储单元按照的存储单元按照00000H00000H至至FFFFFHFFFFFH来编址。来编址。但但CPUCPU的内部寄存器都是的内部寄存器都是1616位的,显然用寄存器不能直接对位的,显然用寄存器不能直接对1M1M字节的内存空间进行寻址,为此引入了分段、物理地址和字节的内存空间进行寻址,为此引入了分段、物理地址和逻辑地址的概念。逻辑地址的概念。(1 1)分段的实现)分段的实现: 8086/80888086/8088中将中将1MB1MB内存分

27、为若干个段(称为逻辑段),每内存分为若干个段(称为逻辑段),每个段最多包含个段最多包含64KB64KB。段与段之间是相互独立的,可以分别寻。段与段之间是相互独立的,可以分别寻址。规定每个段的首地址是一个可以被址。规定每个段的首地址是一个可以被1616整除的数(即段起整除的数(即段起始地址的低始地址的低4 4位为位为0 0)。因此,可以取)。因此,可以取2020位地址码中的高位地址码中的高1616位位来表示段地址。前已指出,来表示段地址。前已指出,8086/8088 CPU8086/8088 CPU设置了设置了4 4个段寄存个段寄存器(器(CSCS、DSDS、SSSS、ESES)。段的位置不受任

28、何限制,段与段之)。段的位置不受任何限制,段与段之间可以是连续的,可以是间断的,也可以是部分重叠的,甚间可以是连续的,可以是间断的,也可以是部分重叠的,甚至可以是完全重叠的。至可以是完全重叠的。 汇编语言程序设计段的分配汇编语言程序设计小段的概念小段的概念从从0地址开始每地址开始每16字节为一小段,每个小段的第一个字节的地字节为一小段,每个小段的第一个字节的地址为小段的起始地址址为小段的起始地址 对于对于16位地址总线,段内存储器小段地址如下:位地址总线,段内存储器小段地址如下:如:如: 0000H,0001H,0002H,000EH,000FH 0010H,0011H,0012H,001EH

29、,001FH 0020H,0021H,0022H,002EH,002FH FFF0H, FFF1H, FFF2H, FFFEH, FFFFH 其中:第一列就是每个小段的首地址。其中:第一列就是每个小段的首地址。汇编语言程序设计小段的概念小段的概念每个小段首地址特征:每个小段首地址特征: 在二进制表示的地址中,它的低在二进制表示的地址中,它的低4 4位二进制一定为零!即在位二进制一定为零!即在1616进制表示的地址中,最低位为进制表示的地址中,最低位为0H;0H;在在1M1M字节的地址空间,字节的地址空间,共有共有64K64K个小段其首地址为:个小段其首地址为: 二进制数小段地址二进制数小段地址

30、 1616进制数小段地址进制数小段地址0000 0000 0000 0000 0000B 0000 0H0000 0000 0000 0000 0000B 0000 0H0000 0000 0000 0001 0000B 0001 0H0000 0000 0000 0001 0000B 0001 0H 1111 1111 1111 1110 0000B FFFE 0H1111 1111 1111 1110 0000B FFFE 0H1111 1111 1111 1111 0000B FFFF 0H1111 1111 1111 1111 0000B FFFF 0H汇编语言程序设计物理地址汇编语言

31、程序设计逻辑地址(4 4)逻辑地址:由段基址和段内偏移地址组成的地)逻辑地址:由段基址和段内偏移地址组成的地址,段基址和段内偏移地址都是址,段基址和段内偏移地址都是1616位的无符号二进位的无符号二进制数,在程序设计时使用。制数,在程序设计时使用。(5 5)逻辑地址和物理地址的关系)逻辑地址和物理地址的关系把段地址左移把段地址左移4 4个二进制位再加上偏移地址值形成物个二进制位再加上偏移地址值形成物理地址,写成:理地址,写成: 物理地址物理地址= 16d= 16d 段地址段地址+ +偏移地址偏移地址 每个存储单元只有唯一的物理地址。但可由不同每个存储单元只有唯一的物理地址。但可由不同的段地址和

32、不同的偏移地址组成。逻辑地址与物理的段地址和不同的偏移地址组成。逻辑地址与物理地址概念如下页图所示。地址概念如下页图所示。汇编语言程序设计物理地址的计算汇编语言程序设计注意注意 1、在、在8088CPU的的IBM PC系统中,存储器首尾系统中,存储器首尾地址的用途固定。地址的用途固定。 00000H-003FFH共共1K内存单元用于存放中断向量。内存单元用于存放中断向量。 FFFF0H-FFFFFH是存储器底部的是存储器底部的16个单元。系统加个单元。系统加电复位时,会自动转到电复位时,会自动转到FFFF0H单元执行,而在单元执行,而在FFFF0H处存放一条无条件转移指令,转向系统初处存放一条

33、无条件转移指令,转向系统初始化程序。始化程序。 2、IBM PC机对段的起始地址有限制,段的起始机对段的起始地址有限制,段的起始地址一定能被地址一定能被16整除,即段不能从任意地址开始:整除,即段不能从任意地址开始:必须从任一必须从任一小段小段(paragraph)的首地址开始。)的首地址开始。汇编语言程序设计保护模式下的80 x8680286以上的计算机增加了物理地址空间,如以上的计算机增加了物理地址空间,如80286提供了提供了16M,80386提供了提供了4GB的地址空间或更多的地址空间或更多的地址空间,前面介绍的在实模式下的寻址方式是的地址空间,前面介绍的在实模式下的寻址方式是由逻辑地

34、址得到物理地址的,实模式下最大寻址空由逻辑地址得到物理地址的,实模式下最大寻址空间只为间只为1MB。在增加了地址空间的情况下,系统首。在增加了地址空间的情况下,系统首先要解决的问题是如何寻址,因此引出了保护模式先要解决的问题是如何寻址,因此引出了保护模式的存储器寻址方法。同时在的存储器寻址方法。同时在WINDOWS系统下可以系统下可以提供多任务处理功能,即多个应用程序能同时运行,提供多任务处理功能,即多个应用程序能同时运行,同时还要对存放在存储器中的代码及数据的共享和同时还要对存放在存储器中的代码及数据的共享和保护提供支持。保护提供支持。汇编语言程序设计保护模式存储器寻址机制在在80286CP

35、U以上的微处理器,既可以工作在实模式以上的微处理器,既可以工作在实模式下也可以工作在保护模式下,如果要工作在保护模下也可以工作在保护模式下,如果要工作在保护模式下,要求程序员在程序中指定逻辑地址,机器则式下,要求程序员在程序中指定逻辑地址,机器则采用另外一种间接的方法得到相应的物理地址。因采用另外一种间接的方法得到相应的物理地址。因此,对程序员编程来说,并未增加复杂性。此,对程序员编程来说,并未增加复杂性。在保护模式下,逻辑地址由选择符和偏移地址两部分在保护模式下,逻辑地址由选择符和偏移地址两部分组成。选择符存放在段寄存器中,但它不能直接表组成。选择符存放在段寄存器中,但它不能直接表示段基地址

36、,而由操作系统通过一定的方法取得段示段基地址,而由操作系统通过一定的方法取得段基地址,再和偏移地址相加,从而求得所选存储单基地址,再和偏移地址相加,从而求得所选存储单元的物理地址。下图所表示的为保护模式存储器寻元的物理地址。下图所表示的为保护模式存储器寻址的示意图。址的示意图。汇编语言程序设计保护模式下存储器寻址汇编语言程序设计保护模式下存储器寻址在实模式下,段寄存器指示段基地址,即段寄存器存放在当前正在允许程序的段基地址。从图可以看出,在保护模式下段寄存器存放当前正在运行程序的段选择符,通过段描述符表中的描述符间接的形成段基地址,加上偏移地址得到最终的线性地址。此时对于存储器来说不必分段就可

37、以访问到所有的内存地址。在实模式下,段地址是直接通过段寄存器得到的,在保护模式下段地址是间接得到的。另外,保护模式的偏移地址最大可以为32位,最大段长可以从64KB扩大到4GB。汇编语言程序设计DEBUG命令1、进入DEBUG,在DOS提示符下输入命令:DEBUG 2 2、退出、退出DEBUGDEBUG:Q Q 3 3、检查和修改寄存器内容的命令、检查和修改寄存器内容的命令R(register)(register),它有,它有三种格式:三种格式: 1 1)R R ;显示;显示CPUCPU内所有寄存器内容和标志位状态及将内所有寄存器内容和标志位状态及将要执行的下一条指令的地址、代码及汇编语句形式

38、。要执行的下一条指令的地址、代码及汇编语句形式。2 2)R R 寄存器名;显示和修改某个寄存器内容,其中寄存器名;显示和修改某个寄存器内容,其中修改状态标志寄存器为修改状态标志寄存器为R F R F 汇编语言程序设计DEBUG 命令4 4、显示存储单元的命令、显示存储单元的命令D(DUMP)(DUMP),格式为:,格式为:1 1)D D ;显示;显示CS:100CS:100开始的一片内容开始的一片内容 2 2)D D 内存地址内存地址 ;以;以CSCS为段寄存器为段寄存器3 3)D D 地址范围地址范围 ;功能:以两种形式显示指定内存范围内容,一种形式功能:以两种形式显示指定内存范围内容,一种形式为为1616进制内容,一种形式为相应的进制内容,一种形式为相应的ASCIIASCII码字符,码字

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论