计算机组织结构课件_第1页
计算机组织结构课件_第2页
计算机组织结构课件_第3页
计算机组织结构课件_第4页
计算机组织结构课件_第5页
已阅读5页,还剩113页未读 继续免费阅读

下载本文档

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

文档简介

汇编语言程序设计主讲:刘政2009年3月第2章80X86计算机组织结构汇编语言程序设计主讲:刘政2009年3月第2章80两款用于工业的AllinOneCPU板PentiumCPU486CPU两款用于工业的AllinOneCPU板Pentium28086CPU和寄存器组2.1计算机系统的构成

2.1.1Intel

8086CPU内部结构

2.1.2寄存器组

2.1.3标志寄存器2.2内存(存储器)组织2.3堆栈技术2.4 8086寻址方式2.5汇编语言程序设计过程28086CPU和寄存器组2.1计算机系统的2.1计算机系统的构成 P14硬件:中央处理机

CPU总线控制逻辑接口接口存储器大容量存储器I/O设备I/O子系统系统总线......软件:系统软件用户软件计算机系统由硬件和软件两大部分组成2.1计算机系统的构成 P14硬件:中央处理翻译程序 机器语言汇编语言高级语言编译型高级语言解释型高级语言BASICCPASCALFORTRAN直接解释运行编译编译汇编翻译程序包括:汇编程序(masm)、解释程序和编译程序连接程序(linker):与库文件连接生成可执行文件装入程序(loader):用来把要执行的程序从外存传送到内存调试程序(debug):是系统提供的,用以监控用户程序的一种工具返回本章首页翻译程序 机器语言汇编语言高级语言编译型高级语言解2.1.1Intel

8086CPU内部结构P14返回本章首页段寄存器通用寄存器控制寄存器2.1.1Intel8086CPU内部结构P2.1.28086寄存器组 P158086CPU寄存器分组2.1.28086寄存器组 P158086CPU寄存器组 数据寄存器共有4个寄存器AX、BX、CX、DX,每个16位寄存器可拆分成两个8位寄存器,用来保存操作数或运算结果等信息。 AX寄存器称为累加器。使用频度最高,用于算术、逻辑运算以及与外设传送信息等。 BX寄存器称为基址寄存器。常用于存放存储器地址。 CX寄存器称为计数器。一般作为循环或串操作等指令中的隐含计数器。 DX寄存器称为数据寄存器。常用来存放双字数据的高16位,或存放外设端口地址。1通用数据寄存器 P15寄存器组 数据寄存器共有4个寄存器AX、BX、CX、DX,每 变址和指针寄存器包括SI、DI、SP、BP4个16位寄存器,主要用于存放某个存储单元的偏移地址。 SI是源变址寄存器,DI是目的变址寄存器,在字符串操作中,SI和DI都具有自动增量或减量的功能。 SP为堆栈指针寄存器,用于存放当前堆栈段中栈顶的偏移地址;BP为基址指针寄存器,用于存放堆栈段中某一存储单元的偏移地址。2.变址和指针寄存器 P15 变址和指针寄存器包括SI、DI、SP、BP4个16位寄存3.段寄存器 P16 8086CPU的4个16位的段寄存器分别称为代码段寄存器CS,数据段寄存器DS,堆栈段寄存器SS,附加数据段寄存器ES。段寄存器用来确定该段在内存中的起始地址。 代码段用来存放程序的指令序列。CS存放代码段的段首址,指令指针寄存器IP指示代码段中指令的偏移地址。3.段寄存器 P16 8086CPU的4个16位的段4.指令指针 P17 8086CPU中的指令指针IP,它总是保存下一次将要从主存中取出指令的偏移地址,偏移地址的值为该指令到所在段段首址的字节距离。在目标程序运行时,IP的内容由微处理器硬件自动设置,程序不能直接访问IP,但一些指令却可改变IP的值,如转移指令、子程序调用指令等。返回本章首页4.指令指针 P17 8086CPU中的指令指针I2.1.3标志寄存器 P158086CPU中有一个很重要的16位标志寄存器,它包含9个标志位,主要用于保存一条指令执行后,CPU所处状态信息及运算结果的特征。1.条件标志2.状态控制标志2.1.3标志寄存器 P158086CPU中有一个标志寄存器(FLAGS/PSW) P151514131211109876543210条件码标志:控制标志:OF溢出标志DF方向标志SF符号标志IF中断标志ZF零标志TF陷阱标志CF进位标志AF辅助进位标志PF奇偶标志OFDFIFTFSFZFAFPFCF例:ADDAX,BXJO/JCERROR?标志寄存器(FLAGS/PSW) P15151.条件标志(1)进位标志CF(2)零标志ZF(3)符号标志SF(4)溢出标志OF(5)奇偶标志PF(6)辅助进位标志AF1.条件标志(1)进位标志CF2.状态控制标志(1)方向标志DF(2)中断允许标志IF(3)陷阱标志TF返回本章首页2.状态控制标志(1)方向标志DF返回本章首页2.2内存组织及存储器物理地址的形成2.2.1存储器2.2.2存储器单元的地址和内容2.2.3物理地址的形成返回本章首页2.2内存组织及存储器物理地址的形成2.2.12.2.1存储器 P17 存储器是计算机的记忆部件,用来存放程序和数据。按所在的位置,存储器可以分成主存储器和辅助存储器,高速缓冲存储器。 主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成,其成本高,容量小,但速度快。高速缓冲存储器(cache):速度高,容量小 辅助存储器可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低,容量大,但速度较慢。返回本节2.2.1存储器 P17 存储器是计算机的记忆2.2.2存储器单元的地址和内容P18存储器以字节(8bit)为编程单位每个字节单元都有唯一的地址编码地址用无符号整数来表示(编程用十六进制表示)一个字要占用相继的两个字节低位字节存入低地址,高位字节存入高地址字单元地址用它的低地址来表示2.2.2存储器单元的地址和内容P18存储器图中表明了存储器中部分存储单元存放信息情况。从图中可看到,地址为34560H的字节的存储单元中的内容是34H,而地址为34561H的字节存储单元中的内容是12H。返回本节图中表明了存储器中部分存储单元存放信息情况。从图中可看到,地2.2.3物理地址的形成 P19 8086,80286的字长是16位。80386到PII机的字长为32位。8086,8088的地址线是20位的,这样最大可寻址空间应为220=1MB,其物理地址范围从00000H~FFFFFH。80286的地址总线宽度为24位80386,80486,Pentium的地址总线宽度为32位

PentiumPro和PentiumII的地址总线宽度为36位

2.2.3物理地址的形成 P19 8086,802实模式存储器寻址 P19实模式下的最大寻址空间为1MB,8086/8088只能在实模式下工作。

逻辑地址=段地址:偏移地址 1.存储器地址的分段 根据要求可把1M字节地址空间划成若干逻辑段。每个逻辑段必须满足两个条件:一是逻辑段的起始地址(简称段首址)必须是16的倍数;二是逻辑段的最大长度为64K。按照这两个条件,1M字节地址空间最多可划分成64K个逻辑段,最少也要划分成16个逻辑段。逻辑段与逻辑段可以相连,也可以不连,还可以重叠。实模式存储器寻址 P19实模式下【例2-1】各独立段的分配情况示例。 P20设CS=B000H、DS=1CDEH、SS=4200H、ES=0150H,它们分别为代码段、数据段、堆栈段和附加段的段首址。自每个段首址开始,各段均占64KB的范围,各段之间互不重叠。如下图所示。【例2-1】各独立段的分配情况示例。 P20设CS=B00cs图2.1各段不重叠存储单元分配图cs图2.1各段不重叠存储单元分配图【例2-2】各段相互重叠情况示例。设CS=0200H、DS=0400H、SS=0480H,这样代码段、数据段和堆栈段的物理首地址分别为02000H、04000H和04800H。其中代码段占8KB地址空间,数据段占2KB,堆栈段占256B,SP=0100H。如下图所示。【例2-2】各段相互重叠情况示例。设CS=0200H、DS=图2.2各段重叠存储单元分配图图2.2各段重叠存储单元分配图2.实模式寻址的物理地址=16d*段地址+偏移地址0000B 16位段地址16位偏移地址20位物理地址返回本节2.实模式寻址的物理地址=16d*段地址+偏移地址16位段2.3堆栈技术1.

堆栈描述 P24堆栈是内存种的一块特定区域,先进后出、后进先出的存储空间,存储地址由高到低存放。堆栈指针SS:SP。2.

堆栈操作堆栈操作遵循“先进后出、后进先出”的原则。例:SS=2000H,SP=100H,用PUSH指令将数据1234H压入栈,堆栈操作示意图如下。2.3堆栈技术1.

堆栈描述 P2堆栈段地址2000H:0000H

2000H:0100H栈底地址SP

……34H12H……内存堆栈指针SP2000H:00FEH进栈出栈入栈时,SP指针先减2,数据再入栈。出栈时,数据先出栈,SP指针再加2。返回本章首页……34H12H……内存堆栈指针SP进栈出栈入栈时§2.480X86寻址方式和指令系统1、立即寻址2、寄存器寻址与存储器有关的寻址方式3、直接寻址4、寄存器间接寻址5、寄存器相对寻址6、基址变址寻址7、基址变址相对寻址跨段问题§2.480X86寻址方式和指令系统1、立即寻址8086CPU指令的共同的规律l

大多数数据传送类指令、算术运算类指令、位操作类指令及串操作类指令,其双操作数指令有相同的语句格式和操作规定。

语句格式[标号:] 操作符OPD,OPS[;注释] OPD--目的操作数 OPS--源操作数

again: AX=0x1200; //c语言语句l

again: MOVAX,1200H ;AX=1200H目的操作数源操作数标号助记符注释区8086CPU指令的共同的规律l

大多数数据传送类指令、有效地址EA和物理地址PA存储器分段管理

物理地址(PA,20位,与CPU的地址线宽度相等)、逻辑地址(LA,形如1000H:2000H)、四个段地址(SA,16位,包括CS、DS、ES、SS)、有效地址(EA,16位,又叫偏移地址)的关系:

LA=SA:EA,我们使用逻辑地址编写程序,而计算机访问存储器时输出的是物理地址,即物理地址由逻辑地址形成:

PA=SA*10H+EA有效地址EA和物理地址PA存储器分段管理1立即寻址 P26立即寻址方式中,指令操作码和操作数都在存储器代码段中。汇编格式:n(n为立即操作数,是用8位或16位二进制补码表示的有符号数)功能:操作数存放在存储器,指令下一单元的内容为立即操作数n。图形表示:例:ADDAX,100C语言:AX+=100;内存中的代码立即数1立即寻址 P26立即寻址方式中,指令操作码和操作数【例2.3】【例2.3】MOVAX,10 ;C语言AX=10;执行后(AX)=?该例中源操作数为立即寻址方式,立即数为10,存放在指令的下一单元。图形表示:执行:10→AX执行后:(AX)=000AH

返回本节内存中的代码立即数10【例2.3】【例2.3】MOVAX,10 ;C语言2寄存器寻址 P27寄存器寻址方式的操作数在指令指明的寄存器中。汇编格式:R其中R表示寄存器名。功能:操作数直接存放在寄存器R中。图形表示:R指令→操作数 ADD AX,BX AX+=BX; //c语言内存中的代码R操作数2寄存器寻址 P27寄存器寻址方式的操作数在指令指明【例2.4】下列程序执行后,(AX)=?,(BX)=?MOVAX,1234HMOVBX,5678HADDAX,BX该程序中MOV指令为数据传送指令操作符,ADD指令为加法指令操作符,三条指令皆为双操作数指令。第一、二条指令中AX、BX为目的操作数,为寄存器寻址方式;源操作数为立即寻址。第三条指令中,AX为目的操作数地址,BX为源操作数地址。源地址和目的地址皆为寄存器寻址方式。【例2.4】下列程序执行后,(AX)=?,(BX)=?图形表示:MOVAX,1234HMOVBX,5678HADDAX,BX执行:1234H→AX5678H→BX(AX)+(BX)→AX执行后:(AX)=68ACH,(BX)=5678H返回本节图形表示:返回本节3直接寻址 P28汇编格式:①含有变量的地址表达式。②段寄存器名:[EA]。功能:指令下一字单元的内容是操作数的偏移地址EA。图形表示:3直接寻址 P28汇编格式:①含有变量的地址表达式。【例2.5】寄存器和存储器内容为:(AX)=1212H,BUF为数据段定义的变量,其偏移地址是2000H,(DS)=3000H,(32000H)=45ABH。执行指令:MOVAX,BUF或MOVAX,[2000H]执行后:(AX)=?执行:(32000H)→AX执行后:(AX)=45ABH返回本节内存数据物理地址【例2.5】寄存器和存储器内容为:(AX)=1212H,BU4寄存器间接寻址 P29寄存器间接寻址方式中,寄存器的内容为操作数的偏移地址EA,操作数在存储器中。汇编格式:[R]功能:操作数存放在存储器,寄存器R存放操作数的偏移地址EA。能够作为寄存器间接寻址的寄存器:基址寄存器:BX、BP

和变址寄存器:SI、DI其中:[BX]、[SI]、[DI]默认段为DS [BP]默认段为SS4寄存器间接寻址 P29寄存器间接寻址方式中,寄存器的偏移地址EA计算方法如下:EA=[SI] ;SI作间址寄存器。[DI] ;DI作间址寄存器。[BX] ;BX作间址寄存器。[BP] ;BP作间址寄存器。偏移地址EA计算方法如下:EA=[SI] ;SI作间址寄存器执行指令:MOVAX,[BP]执行后:(AX)=1234H(BP)=0030H(SS)=2000H(20030H)=1234H图形表示如下:

【例2.6】寄存器和存储器内容分别为:(AX)=0,(BP)=0030H,(SS)=2000H,(20030H)=1234H返回本节物理地址内存数据段地址偏移地址执行指令:MOVAX,[BP]【例2.6】寄存器和5寄存器相对寻址 P30变址寻址方式操作数的偏移地址EA为寄存器的内容加位移量,操作数在存储器中。汇编格式:X[R](X表示位移量,是8位或16位二进制补码表示的有符号数)功能:操作数存放在存储器,寄存器R的内容加位移量X为操作数的偏移地址EA。图形表示如下:5寄存器相对寻址 P30变址寻址方式操作数的偏移地址E第2章_计算机组织结构偏移地址EA计算方法如下:EA=[SI]+X ;SI作间址寄存器。[DI]+X ;DI作间址寄存器。[BX]+X ;BX作间址寄存器。[BP]+X ;BP作间址寄存器。

有效地址=(BX)(BP)8位(SI)16位(DI)+位移量偏移地址EA计算方法如下:EA=[SI]+X ;SI作执行:(20036H)+(AX)→20036H执行后:(AX)=0040H,(BX)=0030H,(DS)=2000H,(20036H)=0090H。返回本节【例2.7】设执行前:(AX)=0040H,(BX)=0030H,(DS)=2000H,(20036H)=0050H执行指令:ADD6[BX],AX执行:(20036H)+(AX)→20036H返回本节【例6基址变址寻址 P31基址变址寻址方式中,操作数的偏移地址EA是指令中基址寄存器内容、变址寄存器内容之和,操作数在存储器中。汇编格式:[BR][IR]或[BR+IR]功能:操作数存放在存储器,BR的内容加IR的内容是操作数的偏移地址EA。如:MOVDX,[BX][SI]基址寄存器:BX、BP变址寄存器:SI、DI返回本节6基址变址寻址 P31基址变址寻址方式中,操作数的偏●基址变址寻址*适于数组、字符串、表格的处理*必须是一个基址寄存器和一个变址寄存器的组合MOVAX,[BX][BP]MOVAX,[SI][DI]有效地址=(BX)(SI)(BP)(DI)+●基址变址寻址*适于数组、字符串、表格的处理有效地址7基址变址相对寻址 P32基址变址相对寻址方式中,操作数的偏移地址EA是指令中基址寄存器内容、变址寄存器内容、位移量X三项之和,操作数在存储器中。汇编格式:X[BR][IR]或X[BR+IR]功能:操作数存放在存储器,BR的内容加IR的内容加位移量X是操作数的偏移地址EA。图形表示:7基址变址相对寻址 P32基址变址相对寻址方式中,操作第2章_计算机组织结构操作数偏移地址EA计算方法如下

有效地址=(BX)(SI)8位(BP)(DI)16位++位移量操作数偏移地址EA计算方法如下有效地址=(BX)执行:(20000H+2000H+1000H+0250H)→(AX)执行后:(AX)=0050H,(BX)=2000H,(SI)=1000H,(DS)=2000H,(23250H)=0050H。返回本节【例2.8】设执行前:(BX)=2000H,(SI)=1000H,(DS)=2000H,MASK=0250H(23250H)=0050H执行指令:MOVAX,MASK[BX][SI]执行:(20000H+2000H+1000H+0250H)8跨段问题 P22按前述规定:若选用BP作间址基址寄存器、变址寄存器或基址寄存器,则操作数在堆栈段,操作数的物理地址PA由堆栈段寄存器SS的内容左移4位与偏移地址EA相加后形成;否则,操作数在数据段,操作数的物理地址PA由数据段寄存器DS的内容左移4位与偏移EA相加后形成。该规定为系统默认状态。当要否定默认状态,到非约定段寻找操作数时,必须用跨段前缀指明操作数的段寄存器名。跨段问提也就是指定段问题,非默认段时必须指明段。汇编格式:段寄存器名:操作数地址。功能:段寄存器名指明操作数属哪个段。8跨段问题 P22按前述规定:若选用BP作间址基址寄存【例2.9】跨段前缀示例。MOV AX,DS:[BP]MOV CX,SS:[SI]该例中,DS:,SS:均为跨段前缀,此时默认状态无效,操作数的物理地址PA由段寄存器内容左移4位加偏移EA形成。上述2条指令的源操作数物理地址分别为:PA1=(DS)左移4位+[BP]PA2=(SS)左移4位+[SI]返回本节【例2.9】跨段前缀示例。MOV AX,DS:[BP]返2.4.4外设寻址方式 每一个接口包含一组REGISTER:数据寄存器、状态寄存器、控制寄存器 P33数据寄存器:存放外设和主机间传送的数据状态寄存器:保存外设或接口的状态信息命令寄存器:保存CPU发给外设或接口的控制命令 每一个寄存器有一个PORT地址,80X86的I/O地址空间可达64KB,端口地址范围为0000~FFFFH 80X86提供两种调用:BIOS调用(basicinput/outputsystem),DOS调用(diskoperatingsystem) I/O口寻址指令IN、OUT INAX,12H INAL,DXOUT12H,AL OUTDX,AX2.4.4外设寻址方式 每一个接口包含一组REGIST2.5汇编语言程序设计过程1

开发环境 P224或实验指导书P2-20 用编辑程序(Edit等)编辑源程序生成文本文件→用汇编程序(MASM等)将源程序汇编为目标文件OBJ→用连接程序(LINK)把OBJ文件连接装配成可执行文件EXE。 调试过程,用debug工具对生成的EXE文件调试和测试。2.5汇编语言程序设计过程1

开发环境 P22.

开发过程分析问题设计算法编制程序分析结果修改分析完成返回本章首页2.

开发过程分析问题设计算法编制程序分析结果修改分返回本章首页结束作业:P34习题7、8、9、11、12其余课后思考,课堂抽查复习第1、2章基础知识预习第3章汇编语言格式返回本章首页结束作业:P34习题7、8、9练习1.

指令指针寄存器是()。 ①IP②SP③BP④PSW2.

当执行指令ADDAX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是()。①表示结果中含1的个数为偶数②表示结果中含1的个数为奇数③表示该数为偶数④表示结果中低八位含1的个数为偶数3.

8088CPU中通用寄存器是____,指针寄存器是___,段寄存器是___。4.

8088CPU具有_______条地址线,直接寻址能力可达_________。5.

在标志寄存器中,反映进位标志位是____,方向标志位是____,溢出标志位是____,符号标志位是____,零标志位是____。6.

变址寄存器SI和DI,它们即可作为通用寄存器,也可以作为__________寄存器分别存放_______数据串和________数据串的基址。7.

8086/8088寄存器组可以分为四类,它们分别是

。8.

典型的计算机结构包括_______________,通过___________连接在一起。判断1.同一地址即可以看作是字节单元地址,也可以看作是字单元地址。()2.一个字存入存储器要占有相继的两个字节,低位字节存入低地址,高位字节存入高地址。()2022/12/215814AX、BX、CX、DX、SP、BP、SI、DIIP、SP、BPCS、DS、ES、SS201MCFDFOFSFZF专用源目的通用,标志,段,指针CPU、存储器、IO系统总线TT练习1.

指令指针寄存器是()。 ①IP1.

指令指针寄存器是()。 ①

IP②SP③BP④PSW2.当执行指令ADDAX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是()。①表示结果中含1的个数为偶数②表示结果中含1的个数为奇数③表示该数为偶数④表示结果中低八位含1的个数为偶数3.

8088CPU中通用寄存器是AX、BX、CX、DX、SP、BP、SI、DI,指针寄存器是IP、SP、BP,段寄存器是CS、DS、ES、SS。4.

8088CPU具有__20_条地址线,直接寻址能力可达__1M___。5.

在标志寄存器中,反映进位标志位是_CF_,方向标志位是_DF_,溢出标志位是_OF_,符号标志位是_SF_,零标志位是_ZF_。6.

变址寄存器SI和DI,它们即可作为通用寄存器,也可以作为___专用___寄存器分别存放__源__数据串和_目的_数据串的基址。7.

8086/8088寄存器组可以分为四类,它们分别是通用,标志,段,指针。8.

典型的计算机结构包括CPU、存储器、IO,通过系统总线连接在一起。判断1.同一地址即可以看作是字节单元地址,也可以看作是字单元地址。(T)2.一个字存入存储器要占有相继的两个字节,低位字节存入低地址,高位字节存入高地址。(T)591.

指令指针寄存器是()。 ①IP②SP汇编语言程序设计主讲:刘政2009年3月第2章80X86计算机组织结构汇编语言程序设计主讲:刘政2009年3月第2章80两款用于工业的AllinOneCPU板PentiumCPU486CPU两款用于工业的AllinOneCPU板Pentium28086CPU和寄存器组2.1计算机系统的构成

2.1.1Intel

8086CPU内部结构

2.1.2寄存器组

2.1.3标志寄存器2.2内存(存储器)组织2.3堆栈技术2.4 8086寻址方式2.5汇编语言程序设计过程28086CPU和寄存器组2.1计算机系统的2.1计算机系统的构成 P14硬件:中央处理机

CPU总线控制逻辑接口接口存储器大容量存储器I/O设备I/O子系统系统总线......软件:系统软件用户软件计算机系统由硬件和软件两大部分组成2.1计算机系统的构成 P14硬件:中央处理翻译程序 机器语言汇编语言高级语言编译型高级语言解释型高级语言BASICCPASCALFORTRAN直接解释运行编译编译汇编翻译程序包括:汇编程序(masm)、解释程序和编译程序连接程序(linker):与库文件连接生成可执行文件装入程序(loader):用来把要执行的程序从外存传送到内存调试程序(debug):是系统提供的,用以监控用户程序的一种工具返回本章首页翻译程序 机器语言汇编语言高级语言编译型高级语言解2.1.1Intel

8086CPU内部结构P14返回本章首页段寄存器通用寄存器控制寄存器2.1.1Intel8086CPU内部结构P2.1.28086寄存器组 P158086CPU寄存器分组2.1.28086寄存器组 P158086CPU寄存器组 数据寄存器共有4个寄存器AX、BX、CX、DX,每个16位寄存器可拆分成两个8位寄存器,用来保存操作数或运算结果等信息。 AX寄存器称为累加器。使用频度最高,用于算术、逻辑运算以及与外设传送信息等。 BX寄存器称为基址寄存器。常用于存放存储器地址。 CX寄存器称为计数器。一般作为循环或串操作等指令中的隐含计数器。 DX寄存器称为数据寄存器。常用来存放双字数据的高16位,或存放外设端口地址。1通用数据寄存器 P15寄存器组 数据寄存器共有4个寄存器AX、BX、CX、DX,每 变址和指针寄存器包括SI、DI、SP、BP4个16位寄存器,主要用于存放某个存储单元的偏移地址。 SI是源变址寄存器,DI是目的变址寄存器,在字符串操作中,SI和DI都具有自动增量或减量的功能。 SP为堆栈指针寄存器,用于存放当前堆栈段中栈顶的偏移地址;BP为基址指针寄存器,用于存放堆栈段中某一存储单元的偏移地址。2.变址和指针寄存器 P15 变址和指针寄存器包括SI、DI、SP、BP4个16位寄存3.段寄存器 P16 8086CPU的4个16位的段寄存器分别称为代码段寄存器CS,数据段寄存器DS,堆栈段寄存器SS,附加数据段寄存器ES。段寄存器用来确定该段在内存中的起始地址。 代码段用来存放程序的指令序列。CS存放代码段的段首址,指令指针寄存器IP指示代码段中指令的偏移地址。3.段寄存器 P16 8086CPU的4个16位的段4.指令指针 P17 8086CPU中的指令指针IP,它总是保存下一次将要从主存中取出指令的偏移地址,偏移地址的值为该指令到所在段段首址的字节距离。在目标程序运行时,IP的内容由微处理器硬件自动设置,程序不能直接访问IP,但一些指令却可改变IP的值,如转移指令、子程序调用指令等。返回本章首页4.指令指针 P17 8086CPU中的指令指针I2.1.3标志寄存器 P158086CPU中有一个很重要的16位标志寄存器,它包含9个标志位,主要用于保存一条指令执行后,CPU所处状态信息及运算结果的特征。1.条件标志2.状态控制标志2.1.3标志寄存器 P158086CPU中有一个标志寄存器(FLAGS/PSW) P151514131211109876543210条件码标志:控制标志:OF溢出标志DF方向标志SF符号标志IF中断标志ZF零标志TF陷阱标志CF进位标志AF辅助进位标志PF奇偶标志OFDFIFTFSFZFAFPFCF例:ADDAX,BXJO/JCERROR?标志寄存器(FLAGS/PSW) P15151.条件标志(1)进位标志CF(2)零标志ZF(3)符号标志SF(4)溢出标志OF(5)奇偶标志PF(6)辅助进位标志AF1.条件标志(1)进位标志CF2.状态控制标志(1)方向标志DF(2)中断允许标志IF(3)陷阱标志TF返回本章首页2.状态控制标志(1)方向标志DF返回本章首页2.2内存组织及存储器物理地址的形成2.2.1存储器2.2.2存储器单元的地址和内容2.2.3物理地址的形成返回本章首页2.2内存组织及存储器物理地址的形成2.2.12.2.1存储器 P17 存储器是计算机的记忆部件,用来存放程序和数据。按所在的位置,存储器可以分成主存储器和辅助存储器,高速缓冲存储器。 主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成,其成本高,容量小,但速度快。高速缓冲存储器(cache):速度高,容量小 辅助存储器可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低,容量大,但速度较慢。返回本节2.2.1存储器 P17 存储器是计算机的记忆2.2.2存储器单元的地址和内容P18存储器以字节(8bit)为编程单位每个字节单元都有唯一的地址编码地址用无符号整数来表示(编程用十六进制表示)一个字要占用相继的两个字节低位字节存入低地址,高位字节存入高地址字单元地址用它的低地址来表示2.2.2存储器单元的地址和内容P18存储器图中表明了存储器中部分存储单元存放信息情况。从图中可看到,地址为34560H的字节的存储单元中的内容是34H,而地址为34561H的字节存储单元中的内容是12H。返回本节图中表明了存储器中部分存储单元存放信息情况。从图中可看到,地2.2.3物理地址的形成 P19 8086,80286的字长是16位。80386到PII机的字长为32位。8086,8088的地址线是20位的,这样最大可寻址空间应为220=1MB,其物理地址范围从00000H~FFFFFH。80286的地址总线宽度为24位80386,80486,Pentium的地址总线宽度为32位

PentiumPro和PentiumII的地址总线宽度为36位

2.2.3物理地址的形成 P19 8086,802实模式存储器寻址 P19实模式下的最大寻址空间为1MB,8086/8088只能在实模式下工作。

逻辑地址=段地址:偏移地址 1.存储器地址的分段 根据要求可把1M字节地址空间划成若干逻辑段。每个逻辑段必须满足两个条件:一是逻辑段的起始地址(简称段首址)必须是16的倍数;二是逻辑段的最大长度为64K。按照这两个条件,1M字节地址空间最多可划分成64K个逻辑段,最少也要划分成16个逻辑段。逻辑段与逻辑段可以相连,也可以不连,还可以重叠。实模式存储器寻址 P19实模式下【例2-1】各独立段的分配情况示例。 P20设CS=B000H、DS=1CDEH、SS=4200H、ES=0150H,它们分别为代码段、数据段、堆栈段和附加段的段首址。自每个段首址开始,各段均占64KB的范围,各段之间互不重叠。如下图所示。【例2-1】各独立段的分配情况示例。 P20设CS=B00cs图2.1各段不重叠存储单元分配图cs图2.1各段不重叠存储单元分配图【例2-2】各段相互重叠情况示例。设CS=0200H、DS=0400H、SS=0480H,这样代码段、数据段和堆栈段的物理首地址分别为02000H、04000H和04800H。其中代码段占8KB地址空间,数据段占2KB,堆栈段占256B,SP=0100H。如下图所示。【例2-2】各段相互重叠情况示例。设CS=0200H、DS=图2.2各段重叠存储单元分配图图2.2各段重叠存储单元分配图2.实模式寻址的物理地址=16d*段地址+偏移地址0000B 16位段地址16位偏移地址20位物理地址返回本节2.实模式寻址的物理地址=16d*段地址+偏移地址16位段2.3堆栈技术1.

堆栈描述 P24堆栈是内存种的一块特定区域,先进后出、后进先出的存储空间,存储地址由高到低存放。堆栈指针SS:SP。2.

堆栈操作堆栈操作遵循“先进后出、后进先出”的原则。例:SS=2000H,SP=100H,用PUSH指令将数据1234H压入栈,堆栈操作示意图如下。2.3堆栈技术1.

堆栈描述 P2堆栈段地址2000H:0000H

2000H:0100H栈底地址SP

……34H12H……内存堆栈指针SP2000H:00FEH进栈出栈入栈时,SP指针先减2,数据再入栈。出栈时,数据先出栈,SP指针再加2。返回本章首页……34H12H……内存堆栈指针SP进栈出栈入栈时§2.480X86寻址方式和指令系统1、立即寻址2、寄存器寻址与存储器有关的寻址方式3、直接寻址4、寄存器间接寻址5、寄存器相对寻址6、基址变址寻址7、基址变址相对寻址跨段问题§2.480X86寻址方式和指令系统1、立即寻址8086CPU指令的共同的规律l

大多数数据传送类指令、算术运算类指令、位操作类指令及串操作类指令,其双操作数指令有相同的语句格式和操作规定。

语句格式[标号:] 操作符OPD,OPS[;注释] OPD--目的操作数 OPS--源操作数

again: AX=0x1200; //c语言语句l

again: MOVAX,1200H ;AX=1200H目的操作数源操作数标号助记符注释区8086CPU指令的共同的规律l

大多数数据传送类指令、有效地址EA和物理地址PA存储器分段管理

物理地址(PA,20位,与CPU的地址线宽度相等)、逻辑地址(LA,形如1000H:2000H)、四个段地址(SA,16位,包括CS、DS、ES、SS)、有效地址(EA,16位,又叫偏移地址)的关系:

LA=SA:EA,我们使用逻辑地址编写程序,而计算机访问存储器时输出的是物理地址,即物理地址由逻辑地址形成:

PA=SA*10H+EA有效地址EA和物理地址PA存储器分段管理1立即寻址 P26立即寻址方式中,指令操作码和操作数都在存储器代码段中。汇编格式:n(n为立即操作数,是用8位或16位二进制补码表示的有符号数)功能:操作数存放在存储器,指令下一单元的内容为立即操作数n。图形表示:例:ADDAX,100C语言:AX+=100;内存中的代码立即数1立即寻址 P26立即寻址方式中,指令操作码和操作数【例2.3】【例2.3】MOVAX,10 ;C语言AX=10;执行后(AX)=?该例中源操作数为立即寻址方式,立即数为10,存放在指令的下一单元。图形表示:执行:10→AX执行后:(AX)=000AH

返回本节内存中的代码立即数10【例2.3】【例2.3】MOVAX,10 ;C语言2寄存器寻址 P27寄存器寻址方式的操作数在指令指明的寄存器中。汇编格式:R其中R表示寄存器名。功能:操作数直接存放在寄存器R中。图形表示:R指令→操作数 ADD AX,BX AX+=BX; //c语言内存中的代码R操作数2寄存器寻址 P27寄存器寻址方式的操作数在指令指明【例2.4】下列程序执行后,(AX)=?,(BX)=?MOVAX,1234HMOVBX,5678HADDAX,BX该程序中MOV指令为数据传送指令操作符,ADD指令为加法指令操作符,三条指令皆为双操作数指令。第一、二条指令中AX、BX为目的操作数,为寄存器寻址方式;源操作数为立即寻址。第三条指令中,AX为目的操作数地址,BX为源操作数地址。源地址和目的地址皆为寄存器寻址方式。【例2.4】下列程序执行后,(AX)=?,(BX)=?图形表示:MOVAX,1234HMOVBX,5678HADDAX,BX执行:1234H→AX5678H→BX(AX)+(BX)→AX执行后:(AX)=68ACH,(BX)=5678H返回本节图形表示:返回本节3直接寻址 P28汇编格式:①含有变量的地址表达式。②段寄存器名:[EA]。功能:指令下一字单元的内容是操作数的偏移地址EA。图形表示:3直接寻址 P28汇编格式:①含有变量的地址表达式。【例2.5】寄存器和存储器内容为:(AX)=1212H,BUF为数据段定义的变量,其偏移地址是2000H,(DS)=3000H,(32000H)=45ABH。执行指令:MOVAX,BUF或MOVAX,[2000H]执行后:(AX)=?执行:(32000H)→AX执行后:(AX)=45ABH返回本节内存数据物理地址【例2.5】寄存器和存储器内容为:(AX)=1212H,BU4寄存器间接寻址 P29寄存器间接寻址方式中,寄存器的内容为操作数的偏移地址EA,操作数在存储器中。汇编格式:[R]功能:操作数存放在存储器,寄存器R存放操作数的偏移地址EA。能够作为寄存器间接寻址的寄存器:基址寄存器:BX、BP

和变址寄存器:SI、DI其中:[BX]、[SI]、[DI]默认段为DS [BP]默认段为SS4寄存器间接寻址 P29寄存器间接寻址方式中,寄存器的偏移地址EA计算方法如下:EA=[SI] ;SI作间址寄存器。[DI] ;DI作间址寄存器。[BX] ;BX作间址寄存器。[BP] ;BP作间址寄存器。偏移地址EA计算方法如下:EA=[SI] ;SI作间址寄存器执行指令:MOVAX,[BP]执行后:(AX)=1234H(BP)=0030H(SS)=2000H(20030H)=1234H图形表示如下:

【例2.6】寄存器和存储器内容分别为:(AX)=0,(BP)=0030H,(SS)=2000H,(20030H)=1234H返回本节物理地址内存数据段地址偏移地址执行指令:MOVAX,[BP]【例2.6】寄存器和5寄存器相对寻址 P30变址寻址方式操作数的偏移地址EA为寄存器的内容加位移量,操作数在存储器中。汇编格式:X[R](X表示位移量,是8位或16位二进制补码表示的有符号数)功能:操作数存放在存储器,寄存器R的内容加位移量X为操作数的偏移地址EA。图形表示如下:5寄存器相对寻址 P30变址寻址方式操作数的偏移地址E第2章_计算机组织结构偏移地址EA计算方法如下:EA=[SI]+X ;SI作间址寄存器。[DI]+X ;DI作间址寄存器。[BX]+X ;BX作间址寄存器。[BP]+X ;BP作间址寄存器。

有效地址=(BX)(BP)8位(SI)16位(DI)+位移量偏移地址EA计算方法如下:EA=[SI]+X ;SI作执行:(20036H)+(AX)→20036H执行后:(AX)=0040H,(BX)=0030H,(DS)=2000H,(20036H)=0090H。返回本节【例2.7】设执行前:(AX)=0040H,(BX)=0030H,(DS)=2000H,(20036H)=0050H执行指令:ADD6[BX],AX执行:(20036H)+(AX)→20036H返回本节【例6基址变址寻址 P31基址变址寻址方式中,操作数的偏移地址EA是指令中基址寄存器内容、变址寄存器内容之和,操作数在存储器中。汇编格式:[BR][IR]或[BR+IR]功能:操作数存放在存储器,BR的内容加IR的内容是操作数的偏移地址EA。如:MOVDX,[BX][SI]基址寄存器:BX、BP变址寄存器:SI、DI返回本节6基址变址寻址 P31基址变址寻址方式中,操作数的偏●基址变址寻址*适于数组、字符串、表格的处理*必须是一个基址寄存器和一个变址寄存器的组合MOVAX,[BX][BP]MOVAX,[SI][DI]有效地址=(BX)(SI)(BP)(DI)+●基址变址寻址*适于数组、字符串、表格的处理有效地址7基址变址相对寻址 P32基址变址相对寻址方式中,操作数的偏移地址EA是指令中基址寄存器内容、变址寄存器内容、位移量X三项之和,操作数在存储器中。汇编格式:X[BR][IR]或X[BR+IR]功能:操作数存放在存储器,BR的内容加IR的内容加位移量X是操作数的偏移地址EA。图形表示:7基址变址相对寻址 P32基址变址相对寻址方式中,操作第2章_计算机组织结构操作数偏移地址EA计算方法如下

有效地址=(BX)(SI)8位(BP)(DI)16位++位移量操作数偏移地址EA计算方法如下有效地址=(BX)执行:(20000H+2000H+1000H+0250H)→(AX)执行后:(AX)=0050H,(BX)=2000H,(SI)=1000H,(DS)=2000H,(23250H)=0050H。返回本节【例2.8】设执行前:(BX)=2000H,(SI)=1000H,(DS)=2000H,MASK=0250H(23250H)=0050H执行指令:MOVAX,MASK[BX][SI]执行:(20000H+2000H+1000H+0250H)8跨段问题 P22按前述规定:若选用BP作间址基址寄存器、变址寄存器或基址寄存器,则操作数在堆栈段,操作数的物理地址PA由堆栈段寄存器SS的内容左移4位与偏移地址EA相加后形成;否则,操作数在数据段,操作数的物理地址PA由数据段寄存器DS的内容左移4位与偏移EA相加后形成。该规定为系统默认状态。当要否定默认状态,到非约定段寻找操作数时,必须用跨段前缀指明操作数的段寄存器名。跨段问提也就是指定段问题,非默认段时必须指明段。汇编格式:段寄存器名:操作数地址。功能:段寄存器名指明操作数属哪个段。8跨段问题 P22按前述规定:若选用BP作间址基址寄存【例2.9】跨段前缀示例。MOV AX,DS:[BP]MOV CX,SS:[SI]该例中,DS:,SS:均为跨段前缀,此时默认状态无效,操作数的物理地址PA由段寄存器内容左移4位加偏移EA形成。上述2条指令的源操作数物理地址分别为:PA1=(DS)左移4位+[BP]PA2=(SS)左移4位+[

温馨提示

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

评论

0/150

提交评论