资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
主流 CPU 的工作原理CPU 的基本构成CPU 的内部结构可分为:控制单元、逻辑运算单元、存储单元(包括内部总线和缓冲器)三大部分。1.指令高速缓存是芯片上的指令仓库,这样微处理器就不必停下来查找计算机的内存中的指令。这种快速方式加快了处理速度。2.控制单元它负责有整个处理过程。根据来自译码单元的指令,它会生成控制信号,告诉运算逻辑单元( ALU )和寄存器如何运算、对什么进行运算以及怎样对结果时处理。3.运算逻辑单元(ALU )是芯片的智能部件,能够执行加、减、乘、除等各种命令。此外,它还知道如何读取逻辑命令,如或、与、非。来自控制单元的讯息将告诉运算逻辑单元应该做些什么,然后运算单元将寄存器中提取数据。以完成任务。4.寄存器是运算逻辑单元 ( ALU )为完成控制单元请求的任务所使用的数据的小型存储区域。(数据可以来自高速缓存、内存、控制单元)5.预取单元根据命令或将要执行的任务决定,何时开始从指令高速缓存或计算机内存中获取数据和指令。 当指令到达时, 预取单元最重要任务是确保所有指令均按正确的排列,以发送到译码单元。6.数据高速缓存存储来自译码单元专门标记的数据,以备运算逻辑装单元使用,同时还准备了分配到计算机不同部分的最终结果。7.译码单元是将复杂的机器语言指令解译运算逻辑单元(ALU )和寄存器能够理解的简单格式。8.总线单元 是指令从计算机内存流进和流出的处理器的地方。CPU 的工作原理一个工厂对产品的加工过程:进入工厂的原料(程序指令),结过物资分配部门(控制单元)的调度分配,被送往生产线(逻辑运算单元),生产出的成品(处理后的数据)后,再存储在仓库(存储单元)中,最后等着拿到市场上去卖(交由应用程序使用)。CPU 的工作原理:从控制单元开始,CPU 就开始了正式工作,中间的过程是通过逻辑运算单元来进行运算处理,交到存储单元代表工作结束。首先,指令指针会通知CPU,将要执行的指令放置在内存中的存储位置。因为内存中的每个存储单元都有编号(称为地址),可以根据这些地址把数据取出,通过地址总线送到控制单元中,指令译码器从指令寄存器IR 中拿来指令,翻译成 CPU 可以执行的形式,然后决定完成该指令需要哪些必要的操作,它将告诉算术逻辑单元( ALU )什么时候计算,告诉指令读取器什么时候取数值,告诉指令译码器什么时候翻译指令等等。根据对指令类型的分析和特殊工作状态的需要,CPU 设置了六种工作周期,分别用六个触发器来表示它们的状态,任一时刻只许一个触发器为1,表时CPU 所处周期状态,即指令执行过程中的某个阶段。1.取指周期( FC)CPU 在 FC 中完成取指所需要操作。每条指令都必须经历取指周期FC,在 FC 中完成的操作与指令操作码无关的公共操作。但 FC 结束后转向哪个周期则与本周期中取出的指令类型有关。2.源周期( SC)CPU 在 SC 中完成取源操作数所需的操作。如指令需要源操作数,则进入SC。在 SC中根据指令寄存器IR 的源地址信息,形成源地址,读取源操作数。3.目的周期( DC)如果 CPU 需要获得目的操作数或形成目的地址,则进DC。在 DC 中根据 IR 中的目的地址信息进行相应操作。4.执行周期( EC)CPU 在取得操作数后,则进入EC,这也是第条指令都经历的最后一个工作阶段。在EC 中将依据IR 中的操作码执行相应操作,如传递、 算术运算、 逻辑运算、 形成转移地址等。5.中断响应周期(IC)CPU 除了考虑指令正常执行,还应考虑对外部中断请的处理。CPU 在向应中断请求后,进入中断响应周期IC。在 IC 中将直接依靠硬件进行保存断点、关中断、转中断服务程序入口等操作, IC 结束转入取指周期,开始执行中断服务程序。6.DMA 传送周期( DMAC )CPU 响应 DMA 请求后,进入DMAC 中, CPU 交出系统总线的控制权,由DMA 控制器控制系统总线,实现主存与外围设备之间的数据直接传送。因此对CPU 来说, DMAC 是一个空操作周期。CPU 控制流程,描述了工作周期状态变化情况:为了简化控制逻辑,限制在一条指令结束是判断有无DMA请求,若有请求,将插入DMAC ;如果在一个DMAC 结束前又提出新的DMA 请求,则连续安排若干DMA 传送周期。如果没有DMA 请求,则继续判断有无中断请求,若有则进入IC。在 IC 中完成需的操作后向新的FC,这表明进入中断服务程序。一、进入debug 环境C:debug 回车或在 DOS 提示符下 ,在 MASM 子目录下,按 DEBUG 及回车后即进入DEBUG环境。在DEBUG 提示符下可输入各命令二、常用debug 命令介绍(1)显示,修改寄存器内容显示所有寄存器内容格式: r 回车功能: 以十六进制形式显示cpu 内部个寄存器的值;以符号形式显示标志寄存器的各标志位(除 tf 外)的值; 并将 CS:IP 所指的内存内容反汇编成一条指令,可视为将要执行的指令。如:r 回车AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0AF0 ES=0AF0 SS=0AF0 CS=0AF0 IP=0200 NV UP EI PL NZ NA PO NC 0AF0:0200 B238 MOV DL,38 知: cs0AF0h,IP0100h 修改寄存器格式: r 寄存器名回车-r ds DS 0AF :0AE0 -r ds 的内容由原来的0af0h 修改为 0ae0h 修改标志值格式: rf 例: -rf NV UP EI PL NZ NA PO NC -ov ng 回车将 of,sf 的值分别修改为1。(2)汇编,反汇编命令 汇编命令A 格式: A 内存地址回车例:调用dos 中 02h 号功能显示字符a ,将该程序汇编到1270:100h 开始的内存中。-A1270:100 1270:0100 mov,ah,2 1270:0102 mov,dl,61 1270:0104 int 21 1270:0106 int 20 1270:0108 - 反汇编命令U 格式: u 内存块回车功能:分三列显示反汇编的结果,第一列为指令首地址,第二列为16 进制形式的指令机器码,第三列为指令的助记符。-u 1270:100 1270:0100 B402 MOV AH,02 1270:0102 B261 MOV DL,61 1270:0104 CD21 INT 21 1270:0106 CD20 INT 20 1270:0108 0000 ADD BX+SI,AL 1270:010A 0000 ADD BX+SI,AL 1270:010C 0000 ADD BX+SI,AL 1270:010E 0000 ADD BX+SI,AL 1270:0110 0000 ADD BX+SI,AL 1270:0112 0000 ADD BX+SI,AL 1270:0114 0000 ADD BX+SI,AL 1270:0116 0000 ADD BX+SI,AL 1270:0118 0000 ADD BX+SI,AL 1270:011A 0000 ADD BX+SI,AL 1270:011C 0000 ADD BX+SI,AL 1270:011E 0000 ADD BX+SI,AL - (3)执行程序单步执行格式: t内存地址回车格式: p内存地址回车功能:用命令中的内存地址的段地址和偏移地址修改cs 和 ip,然后执行由cs:ip 指向的内存单元处的一条指令,显示各寄存器的值,并反汇编下一条指令,返回debug 状态。例:-t=1270:100 AX=0200 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0AE0 ES=0AF0 SS=0AF0 CS=1270 IP=0102 OV UP EI NG NZ NA PO NC 1270:0102 B261 MOV DL,61 - 执行结果: ah2,cs 值不变, ip 的值增加2,cs:ip 指向第二条指令多步执行格式: t内存地址执行指令的条数格式: p内存地址执行指令的条数命令 t 和 p 的不同:one:带重复前缀rep/repnz/repz 的串操作指令和loop/loopz/loopn 等循环指令是与cs 相关的 指令。用t 命令执行这类指令时,每执行一次,cx 值减一,就停下来返回debug;而 p 命令执行时,一直执行到cx0,执行其后的下一条指令,才返回debug two:调用指令call 及中断调用指令int,由于这类指令修改了cs 和 ip,使程序结构产生转向。用 t 命令则在cs:ip(子程序)入口处停下来返回debug,可用 t 命令进行跟踪。而用p命令则显示call 和 int 的下一条指令如:分别用t 和 p 执行 1270:0140h 处的指令 int 21h。-t=1270:104 AX=0200 BX=0000 CX=0000 DX=0000 SP=FFE8 BP=0000 SI=0000 DI=0000 DS=0AE0 ES=0AF0 SS=0AF0 CS=00A7 IP=107C OV UP DI NG NZ NA PO NC 00A7:107C 90 NOP -p=1270:104 AX=0200 BX=0000 CX=0000 DX=0000 SP=FFE8 BP=0000 SI=0000 DI=0000 DS=0AE0 ES=0AF0 SS=0AF0 CS=1270 IP=0106 OV UP DI NG NZ NA PO NC 1270:0106 CD20 INT 20 连续执行g内存地址断点执行格式: g内存地址断点地址(4)显示,修改内存内容显示命令d 格式: d 内存块例:显示 -d1270:100h 到 1210 内存块的内容-d1270:100 l30 1270:0100 B4 02 B2 61 CD 21 CD 20-00 00 00 00 00 00 00 00 .a.!. . 1270:0110 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 . 1270:0120 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 . 修改命令e 格式 1: e 内存地址字符或数值串格式 2: e 内存地址填充指令 格式: f 内存块字符或数值串例: f ds:2000 2100 hello world 搜索指令s 格式: s 内存块字符或数值串移动指令m 格式: m 内存块 1 内存块 2 的首地址功能:将内存块1 的内容复制到内存块2,内存块1 内容不变比较指令c 格式: c 内存块 1 内存块 2 的首地址(5)读写磁盘指定文件命令N 格式: Nd:PA TH 文件名 .扩展名回车功能:为命令L 和命令 W 指定文件,其中d:PATH 为文件所在的盘号和路径。写入命令W 格式: W 内存地址回车功能:将指定内存块的内容写到由命令N 指定的文件中, 其中内存块的首地址命令W 指定,内存块的大小由BX,CX 两寄存器决定,BX 存放内存块大小的高字节,CX 存放内存块大小的低字节。装入命令L 块格式: L 内存地址回车功能:将命令N 指定的文件装入到命令L 给出的内存地址开始处。文件固定装入到CS:IP处。装入可执行的 .EXE 或.COM 文件通常在调试可执行的.EXE 或.COM 文件时,可以不用N 和 L 命令来装入,而直接在进入debug的命令后加上要装入的文件。格式: d:pa
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号