【文档说明】汇编语言课件第2章.ppt,共(35)页,213.501 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-44798.html
以下为本文档部分文字说明:
第二章CPU资源和存储器2.0计算机系统基本构成编辑程序汇编程序I/O设备解释程序存储器编译程序系统软件连接程序软件系统装入程序应用软件调试程序操作系统系统程序库各部分基本功能操作计算机系统的人运算器CPU控制器寄存器组各部分间连接(总线,CPU与外设——接口)2.1寄存器组1
.16位寄存器组4个数据寄存器:AX、BX、CX和DX,每个寄存器又可分为2个8位寄存器2个变址寄存器:DI和SI2个指针寄存器:SP和BP4个段寄存器:ES、CS、SS和DS1个标志寄存器:FLAG1个指令指针寄存器:IP2.(1)通用寄存器组(2
)通用寄存器的作用寄存器名称寄存器符号主要作用累加器EAX、AX、AL乘、除、I/O、快速的算术运算,中间结果的缓存基地址寄存器EBX、BX在数据段中作基地址指针计数器ECX、CX、CL循环计数器、重复操作计算器、移位操作计数器数据
寄存器EDX、DX字的乘、除运算,间接的输入输出源变址寄存器ESI、SI存储器指针、串指令中的源操作数指针源目标变址寄存器EDI、DI存储器指针、串指令中的目的操作数指针基地址指针EBP、BP存储器指针、存取堆栈的指针栈顶指针ESP、SP堆栈
的栈顶指针寄存器SI和DI称为变址寄存器,它们可作一般的存储器指针使用。在字符串操作指令的执行过中,对它们有特定的要求,且具有特殊的功能。3、变址寄存器(IndexRegister)4、指针寄存器(PointerRegister)
SP为堆栈指针(StackPointer)寄存器,用它只可访问栈顶。BP为基指针(BasePointer)寄存器,用它可直接存取堆栈中的数据分段管理思想(用16位字长表示20位长地址)存储器的分段每段起址末4位为0(段起址)每段大小不超过64K(偏址)段寄存器
——表示段起址高16位(末4位全为0)逻辑地址物理地址物理地址=(段寄存器)*16#+偏址=段起始地址+偏址5.段寄存器及其作用(1)用较少的位数来表示较大字长地址——存储器(2)程序运行时存储方式(3)16位处理器的段寄存器CS——代码
段寄存器(CodeSegmentRegister),指向存放程序的内存段DS——数据段寄存器(DataSegmentRegister),指向数据段SS——堆栈段寄存器(StackSegmentRegister),指向用于堆栈的内存段ES——附加段寄存器(ExtraSegmen
tRegister),指向附加段CS——代码段寄存器(CodeSegmentRegister),指向存放程序的内存段DS——数据段寄存器(DataSegmentRegister),指向数据段SS——堆栈段寄存器(StackSegmentRegister
),指向用于堆栈的内存段ES——附加段寄存器(ExtraSegmentRegister),指向附加段FS——386CPU增加段寄存器(ExtraSegmentRegister)GS——386CPU增加段寄存器(
ExtraSegmentRegister)(4)32位处理器的段寄存器(5)存储器工作模式①实模式——分段存储管理物理地址=(段寄存器)X16D+偏址逻辑地址:用户编程中使用的逻辑存储地址物理地址:真
正物理存储器地址②保护模式支持虚拟存储:数据存于外存,用到时OS调入,由OS统一分配空间程序员编程:使用逻辑地址(由选择器与偏址构成)段寄存器选择器地址转换段起始地址指令地址段偏址物理地址选择子段起始地址
偏址(1)专用寄存器含义:系统给他们规定专门用途,一般不能移作它用(2)包含种类:指令指针寄存器标志寄存器(3)指令指针寄存器IP和EIP分别是16位和32位的寄存器,他们分别位于16位和32位处理器中。存放下次将要执行的指令在代码段的偏移量(偏址)段其实地址在那里?段寄存器CS(实模式
时)保护模式时,EIP存偏址,ECS存段起址的选择子6.专用寄存器及其作用(4)标志寄存器标志当前计算机处理器的运行状态(执行了上一条指令后的状态——有些指令执行不会影响标志位)16位处理器标志寄存器32位处理器标志寄存器
基本思想:用某些二进制位的状态(为0或为1)来表示某种状态主要用途:条件转移,中断处理等主要标志①进位标志位CF②奇偶标志PF③中断允许标志位IF④符号标志位SF⑤方向标志位DF由较小位数的表示较大位数的存储单元
地址(一个无符号数)(存储单元物理地址——一维线性字节偏址)物理地址=段起始地址+段内偏移地址段起地址=段寄存起内容节性某种计算所得段内偏址=指令种地址段所示2.2存储器的管理模式1.存储器分段管理思想(1)16位的实模式分段整个存储器划分为若干等
分段(每段不超过64K)每段起始地址末4位都为0段寄存器仅表示段起址高16位2.存储器的分段(2)物理地址的形成物理地址=(段寄存器)×16D+偏址物理地址PA(PhysicalAddress)段基址(
段地址)SA(SegmentAddress)偏移地址(或有效地址)EA(EffectiveAddress)PA=SA+EAEA=PA-SA(3)16位寄存器缺省数据段寄存器DS(串操作时,目的地址段寄存器只能为ES)缺省代码段寄存器CS缺省堆栈段寄存器SS此时用SP指向栈顶,若
用BP表栈偏址(拟用SS表栈指针),则可访问栈中任何元素。栈操作——SS,BP串操作——DS/SI,ES/DI取指令——CS,IP段寄存器及其指针寄存器的引用关系访问存储器方式缺省的段寄存器可选用的段寄存器偏移量取指令CSIP堆栈操作SSSP一般取操作
数DSCS、ES、SS有效地址串操作源操作数DSCS、ES、SSSI目标操作数ESDI使用指针寄存器BPSSCS、DS、ES有效地址存储单元:一般指存储单元地址存储单元内容:指存放在这个存储单元中
的内容设存储单元为x,则(x)表示该单元中存放的内容存储单元偏址:一维顺序线性偏址一个字节的内容是该字节单元内存放的二进制信息;一个字的内容是该字地址所指向的单元及其后继一个单元的内容拼接而成;(4)存储单元的内容-1一个双字的内容是该字地址所指向的单元及其后三个单元的内容拼接而
成。字节12340H、12341H的内容分别为:12H和34H字12340H、12341H的内容分别为:3412H和5634H双字12340H、12341H的内容分别为:78563412H和90785634H(
4)存储单元的内容-2从下图中可看出一段内存单元存放数据的存储结果:(1)基本思想:内存分段管理思想将存储器分为若干个等长的段每一段长度不超过“偏址”所能表示的范围物址=段起始地址+段内偏址段内偏址往往由指
令中地址段提供段首地址往往由段寄存器内容提供(提供形式:段寄存器内容进行某种转换)(2)工作方式:实方式(实模式)保护方式(保护模式)3.32位微机内存储器管理模式段首址:16的倍数(末4位为0)每段长:不超过64K(16位能表示)(偏址)段寄存器:表示段首址高位(末4位为0,不表示)物
址=段寄存器内容X16D+偏址描述符:8字节那么长,包含基地址、界限、访问权限、附加字数、说明段大小,它在存储器中的数量及其控制和状态信息。(3)实方式(4)、保护方式段首地址可以不是16的倍数,可以长达
32位每段长(最大容量)可达4GB段寄存器表示“选择器(Selector)”,用该选择器经过转换可以得到一个32位长的段首地址;段首地址+段内偏址物理地址段起始地址段内偏址段寄存器选择器转换段起始地址(32bit)指令地址段表示的
信息寻址方式段内偏移地址32位长的物理地址(5)段寄存器的使用实方式:段寄存器值表示段起址高位(末4位为0)保护方式:段地址起址的“选择器”,间接地指出一个32位字长的段首址(6)各段寄存器用法及作用①代码段寄存器CS默认代码段段寄存器16位时:物址=(CS)X16D+EA(每段长为64K,不
超过64K)(偏址,用IP表示)32位时:物址=(CS)X16D+EA(偏址,用EIP表示,EIP高16位全为0)32位保护方式:(CS)选择器段起址(32位)段起址+(IP)(偏址)物址②堆栈段段寄存器SS实方式下:ESP的低16位SP作栈指针栈顶元素地址=(SS)X16D+(SP)保护
方式:栈指针可用32位ESP和16位的SP(CS)选择子段起始地址段起始地址+(ESP或SP)栈顶元素地址③数据段段寄存器DS默认数据段的段寄存器实方式下:物址=(DS)X16D+偏址保护方式下:(DS)选择子段起始地址段起始地址+偏址物址某些串操作中,目的操作数的段寄存器被指定为ESC
S,SS,ES,FS,GS也可作数据段段寄存器,但必须用超越前缀形式在指令中标出