有关CPU的进展和汇编语言的实例设计_第1页
有关CPU的进展和汇编语言的实例设计_第2页
有关CPU的进展和汇编语言的实例设计_第3页
有关CPU的进展和汇编语言的实例设计_第4页
有关CPU的进展和汇编语言的实例设计_第5页
已阅读5页,还剩22页未读, 继续免费阅读

下载本文档

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

文档简介

1、 有关CPU的进展和汇编语言的实例设计【摘要】 CPU (Central Processing Unit) 是计算机的核心 , 负责处理、运算计算机内部的所有 数据。本文研究了 CPU 的构成和原理,并介绍了与 CPU 关系密切的汇编语言,利用汇编 语言编写了一下典型的实例。第一章是 CPU 和汇编语言的一些简介;第二章介绍了 CPU 的结构原理、控制方式和 控制流程等方面的内容;第三章从 CPU 的历史入手,对 CPU 的发展前景进行了展望;第 四章中总结了一些汇编语言的作用和特点; 第五章中利用汇编语言编写了一些典型的实例来 加深对汇编语言的认识。【关键字】 CPU ;汇编语言;实例设计【

2、 Abstract】CPU (Central Processing Unit) is the core of the computer, in responsible of dealing and calculating all the data inside the computer. In the passage, we study structure and principle of CPU, and introduce the assembly language which is close to the CPU utilization, and the typical example

3、 of assembly language.The first chapter is a short introduction of CPU and assembly language. The second chapter is the CPU control mode and structural principle, control process etc. The third chapter starts from the history of CPU, and prospects the development of CPU. The fourth chapter summarize

4、s some assembly language functions and features. The fifth chapter using assembly language some typical examples to deepen the understanding of assembly language.【 keywords】CPU;Assembly Language;, example design目录 TOC o 1-5 h z 1引言1 HYPERLINK l bookmark4 o Current Document CPI的基本原理2 HYPERLINK l book

5、mark6 o Current Document CPU的基本组成3 HYPERLINK l bookmark8 o Current Document CPU的工作原理4 HYPERLINK l bookmark20 o Current Document CPU的最新进展9 HYPERLINK l bookmark22 o Current Document CPU发展的简史9 HYPERLINK l bookmark30 o Current Document CPU的发展GPU和CPU的融合10 HYPERLINK l bookmark36 o Current Document 汇编语言的作用

6、和特点11 HYPERLINK l bookmark38 o Current Document 汇编语言的作用11 HYPERLINK l bookmark40 o Current Document 汇编语言的主要特点12 HYPERLINK l bookmark42 o Current Document 汇编语言典型实例设计16 HYPERLINK l bookmark44 o Current Document 条件转移指令16 HYPERLINK l bookmark46 o Current Document 算术运算指令18 HYPERLINK l bookmark48 o Curren

7、t Document 移位运算指令20 HYPERLINK l bookmark50 o Current Document 综合实例21 HYPERLINK l bookmark52 o Current Document 6结束语24 HYPERLINK l bookmark54 o Current Document 参考文献25CPU是中央处理单元(Ce ntral Processi ng Un it)的缩写,它可以被简称做微 处理器(Microprocessor),不过经常被人们直接称为处理器 (processor) 。 CPU 是计算机的核心,其重要性好比大脑对于人一样,因为它负责处理、

8、运算计算机 内部的所有数据。cpu的发展可以说决定着微型计算机技术的发展。2计算机的工作是依靠机器语言来实现的,而机器语言由于编写的程序不易 读、出错率高、难以维护等原因,不能得到广泛应用。在机器语言的基础上,用 助记符代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符 号代替机器语言的二进制码,就把机器语言变成了汇编语言。由于在某些领域中 汇编语言的特点较适合编写程序,因此汇编语言得到了广泛的应用。52 . CPU的基本原理2.1 CPU的基本组成CPU通常包含运算部件、寄存器组、微命令产生部件、时序系统等主要部件, 由CPU内部的总线将这些部件连接起来,实现它们

9、之间的信息交换。其中,运 算部件和一部分寄存器属于传统运算器部分,另一部分寄存器、微命令产生部件、 时序系统等则属于传统控制器部分。运算部件运算部件的任务是对操作数进行加工处理。基本的运算部件主要由三部分组CPU 内部的数据成,如图 1-1 所示1)输入逻辑 操作数可以来自各种寄存器,也可以来自线。每次运算最多只能对两个数据进行操作负责对两个操作数2)算术、逻辑运算部件 ALU ( Arithmetic Logic Unit )是运算部件的核心,完成具体的运算操作。 它的主要部件就是一个加法器, 进行求和运算(3)输出逻辑 运算结果可以直接送往接收部件,也可以经左移或右移后再 送往接收部件,所

10、以输出逻辑往往具有移位功能,常用移位门(多路选择器) 通过斜位传送实现左移、右移或字节交换。寄存器组计算机工作时,CPU需要处理大量的控制信息和数据信息, 例如对指令信息进行 译码,以便产生相应控制命令; 对操作数进行算术或逻辑运算加工, 并且根据运 算结果决定后续操作,等等。因此,在 CPU 中需要设置若干寄存器,暂时存放 这些信息。微命令产生部件 计算机的工作体现为指令序列的连续执行,实现信息传送要靠微命令的控制,因此在 CPU 中设置微命令产生部件,根据控制信息产生微命令序列,对指 令功能所要求的数据传送进行控制, 且在数据传送至运算部件时控制完成运算处 理。微命令产生部件可由若干组合逻

11、辑电路组成, 也可以由专门的存储逻辑组成。 因此,产生微命令的方式也就分为组合逻辑控制方式和微程序控制方式两种。时序系统 计算机的工作常常是分步执行的,需要有一种时间信号作为分步执行的标志,如周期、节拍等。节拍是执行一步操作所需的时间,一个周期可能包含几个 节拍。这样,一条指令在执行过程中,根据不同的周期、节拍信号,就能在不同 的时间发出不同的微命令,完成不同的操作。 周期、节拍、脉冲等信号称为时 序信号,产生时序信号的部件称为时序发生器或时序系统, 它由一个振荡器和一 组计数分频器组成。振荡器是一个脉冲源,输出频率稳定的主振脉冲,也称时钟 脉冲,为CPU提供时钟基准。时钟脉冲经过一系列计数分

12、频,产生所需的节拍(时钟周期)信号或持续时间更长的工作周期(机器周期)信号。2.2 CPU的工作原理221运算器基本原理一.ALU的组成利用集成电路技术,可将若干位全加器、并行进位链、输入选择门等3部分集成在一块芯片上,称为多功能算术、逻辑运算部件ALU。S2-1 一位AUJ单元的结构图下面以一位ALU单元(图2-1 )来分析。一位ALU单元可划分为3部分。(1)一位加法器:包括由两个半加器构成的一位全加器和由与或非门构成的 一位进位门。(2)一位输入选择器:由一对与或非门构成。本位输入两个操作数iA、iB或者Ai、Bi,4个控制信号S3、S2、S1、SO,可选择16种功能。控制门:用来选择

13、ALU 做算术运算或逻辑运算。当输入控制信号 M=0 时,开门接收低位来的进位信号 Ci-1 ,执行算术运算;当 M=1 时,关门不接收 Ci-1 ,执行逻辑运算,即按位进行运算,与进位无关。二运算方法计算机中各种复杂的运算处理都可以根据算法分解为四则运算或基本的逻 辑运算,而四则运算最终可以归结为加法运算。下面以定点加减法为例,讨论 CPU中算法的逻辑实现。计算机中,带符号的数有原码、补码、反码等几种表示方法。原码加减运算 复杂,而补码加减运算则比较简单,因而计算机中基本采用补码加减法。 补码加减是指:操作数用补码表示,连同符号位一起运算,结果也用补码表示。 补码加减所依据的基本关系是:(X

14、+Y)补=X补+Y补 (X-Y)补=X 补 + (-Y 补) 补码加减算法运算规则如下。参与运算的操作数用补码表示,符号位作为数的一部分直接参与运算,所得运算结果即为补码表示形式。若操作码为加,则两数直接相加。若操作码为减,则将减数变补后再与被减数相加。2.2.2 寄存器与寄存器寻址方式PU是所有运算进行的地方,内存中的两个数不能直接进行运算, 寄存器是为 了完成运算提供“场地”的记忆单元。在指令中,指定操作数或操作数存放位置的方法称为寻址方式。 其中寄存器寻址方式是一种简单快捷的寻址方式, 源和目的操作数都可以是 寄存器。寄存器寻址方式有以下两个主要优点, 从 CPU 的寄存器中读取操作数要

15、比访问主存快得多, 所需时间大约是从 主存中读数时间的几分之一到几十分之一。 因此在CPU中设置足够多的寄存器, 以尽可能多地在寄存器之间进行运算操作,已成为提高工作速度的重要措施之。 由于寄存器数远少于主存储器的单元数, 所以指令中存放寄存器号的字 段位数也就大大少于存放主存地址码所需位数。 采用寄存器寻址方式,可以大大 减少指令中一个地址的位数,从而有效地缩短指令长度。这也就减少了读取指令 的时间,提高了工作速度。表1通用寄存器的主要用途寄存器的分类寄存器主要用途AX乘、除运算,字的输入输出,中间结果的缓存数据AL字节的乘、除运算,字节的输入输出,十进制算 术运算通 用 寄 存 器AH字节

16、的乘、除运算,存放中断的功能号寄存器BX存储器指针CX串操作、循环控制的计数器CL移位操作的计数器DX字的乘、除运算,间接的输入输出变址SI存储器指针、串指令中的源操作数指针寄存器DI存储器指针、串指令中的目的操作数指针变址BP存储器指针、存取堆栈的指针寄存器SP堆栈的栈顶指针指令指针IP/EIP标志位寄存器Flag/EFlag32位CPU的16位CPU勺段寄存器ES附加段寄存器CS代码段寄存器SS堆栈段寄存器DS数据段寄存器新增加的段寄存器FS附加段寄存器GS附加段寄存器段寄存器223 CPU时序控制方式计算机的许多工作,如指令的执行常常需要分步进行,因此应在微命令的形 成逻辑中引入有关的时

17、间标志,即时序信号,使计算机的操作能在不同的时间段 中有序地完成。很显然,这些操作是受时序信号同步控制的。计算机中还有一些操作,如系统总线上的一些数据传送则不受时序信号同步控制。我们将计算机的操作与时序信号之间的关系称为时序控制方式。按照同步或非同步的关系,可 将时序控制方式分为同步控制和异步控制两大类。在实际应用中常会发生许多变 化,如在同步控制的基础上加入异步应答的方式等。一.同步控制方式同步控制方式是指用统一发出的时序信号对各项操作进行同步控制。这里的时序信号指的就是前述的周期、节拍、脉冲等信号;各项操作中有的需要在一段 时间内进行,有的则需要在某个时刻定时完成。在同步控制方式中,操作时

18、间被 划分为许多长度固定的时间段,一个时间段就是一个节拍,也称时钟周期。每个 时钟周期完成一步操作,至于一步操作要做哪些事,不同的机器有不同的安排。 时钟周期作为基本的时序单位,一旦确定,便固定不变,这是同步控制方式的主 要特点。CPU根据统一的时钟周期为指令的执行安排严格的时间表,各操作必须按时间表执行。同步控制方式的优点是时序关系简单, 时序划分规整,控制不复 杂,控制部件在结构上易于集中,设计方便。因此在 CPU内部、其他部件或设 备内部,广泛采用同步控制方式。在系统总线上,如果各部件、设备之间的传送 距离不太长,工作速度的差异不太大,或者传送所需的时间比较固定,也广泛采 用同步控制方式

19、。 同步控制方式的缺点是在时间的安排上可能不合理。因为各 步操作实际所需的时间可能不同,如果将它们安排在统一的固定时钟周期内完 成,必然要根据最长操作所需的时间来确定时钟周期的宽度,而对于需时较短的 操作则存在着时间上的浪费。 在这种情况下, 为了合理利用时间, 系统总线上的 传送操作也可采用异步控制方式来实现。二 异步控制方式 异步控制方式是指各项操作不受统一时序信号(如时钟周期)的约束,而是 根据实际需要安排不同的时间。 各操作之间的衔接、 各部件之间的数据传送均采 用异步应答方式。 应答的双方分别称为主设备与从设备, 主设备是指能申请并且 掌握总线控制权的设备(主动的一方) ;从设备是指

20、响应主设备要求的设备(被 动的一方),从设备不能掌握总线权。应答过程由主设备启动。在这一过程中, 首先由主设备申请使用总线, 获得批准后主设备掌握总线控制权, 向总线发送操 作命令、总线地址等信息。之后,主设备向从设备提出传送要求,并且询问从设 备是否准备好。从设备回答,如果还未准备就绪,主设备便等待;如果从设备已 经准备好, 主设备便可与之进行数据传送, 将数据送往从设备, 或从从设备接收 数据。从主设备提出申请到获得批准、 从主设备发出询问到收到从设备回答等阶 段所需的时间, 以及实际传送时间都可根据需要而变化, 体现了异步的含义。 异 步控制方式的优点是时间安排紧凑、 合理,能按不同部件

21、、 不同设备的实际需要 分配时间;缺点是控制比较复杂。因此很少在 CPU 内部或设备内部采用异步控 制方式,而是用它来控制某些场合下的系统总线操作。三联合控制方式 所谓联合控制方式,是同步和异步控制方式的结合。对于不同的操作序列以 及其中的每个操作,实行部分同意、部分区别对待的方式。亦即,把各操作序列 中那些可以同意的部分, 安排在一个具有固定周期、 节拍和严格时钟同步的时序 信号控制下执行, 而把那些难于统一起来, 甚至执行时间都难于确定的操作另行 处理,不用时钟信号同步,按照实际需要占用操作时间,通过“结束起始”方 式和公共的同步控制部分衔接起来。 现代计算机大多采用同步控制方式或联合控

22、制方式。224 CPU的控制流程计算机对信息进行处理是通过不断执行程序来实现的。程序是能完成某个确定算法的指令序列,所以计算机进行信息处理的过程就是不断地取指令、分析指:启遐序执一取岀尹令分析指令执行指令转中断处理程序返回图2-2CPuSr控制流程图令和执行指令这样一个周而复始的过程。 CPU控制流程如图2-2所示,它由以下 4步完成:取指令。由程序计数器(PC指出当前指令地址,通过执行“MA&(PC 和“ Read命令,从主存中取出指令。分析指令。对取出的指令进行分析,指出它执行什么操作,产生相应的 操作控制信号。如果参与操作的数据在主存中,则还需要形成操作数地址。执行指令。根据指令分析得到

23、的“操作命令”和“操作数地址”,按一定 的算法行程相应的操作控制命令序列,通过运算器、存储器以及外部设备的具体 执行,实现每条指令的功能。对异常情况和某些请求的处理。当机器出现某些异常情况,此时有这些部件或设备发出“中断请求”信号,待执行完毕当前指令后,CPU相应该请求,中止当前执行的程序,转去执行中断服务程序。当处理完毕后,再返回源程序继 续运行。225 CPU的实例分析Pentium微处理器是INTEL80 x86系列微处理器的第五代产品,其性能比它 的前一代产品有较大幅度的提高。与相同工作频率下的80486相比,整数运算性能提高一倍,浮点运算性能提高近四倍。常用的整数运算指令与浮点运算指

24、令 采用硬件电路实现,不再使用微码解释执行,使指令的执行速度进一步加快。 Pentium微处理器之所以有如此高的性能,在于该微处理器体系结构采用了一系 列新的设计技术,如双执行部件、超标量体系结构、集成浮点部件、64位数据总线、指令动态转移预测、回写数据高速缓存、错误检测与报告等。仍件0)sum=sum+Listi; count=count-1;i=i+1;汇编语言:MOV CX , 10 ; countMOV AX , 0 ; sumMOV DI , 0 ; 偏移地址Start:CMP CX , 0JE end ; (CX)=0 时转移ADD AX , ListDISUB CX , 1ADD

25、 DI , 2JMP startEnd0”,“=0”,C语言:int CA=0 , CX=0 , CE=0 ;for(int i=0;i0) CA+;else if (Listi=0) CE+;else CB+;汇编语言MOV CX,0MOV CA,0MOV CB,0MOV CE,0S:CMP CX,10JE endMOV DI,0ADD CX,1CMP ListDI,0JBE nextADD CA,1JMP Cnext: CMP ListDI,0JE next1ADD CB,1JMP Cnext1: ADD CE,1C: ADD DI,1JMP SEnd5.2 算术运算指令例 3:分析“ A

26、DD AX,BX:设执行前(AX)=35C9H, (BX)=726DH执行后(AX)=A836H,BX不变,SF=1, PF=1,2F=0, 0F=1, CF=O, AF=1例 4:分析“ SUB CX,BX”:设执行前(CX)=1296H, (DS)=2000H,(BX)=100H,(20100H)=3DH,(20101H)=28H,由BX寻址得到数据 283DH;执行后:(CX)=0EA59H,BX不 变,SF=1, PF=1,2F=0, 0F=0, CF=1, AF=1例 5:分析“ IMUL BL”:设执行前(AL)=05H, (BL)=F7H,(补)=-9执行后(AX)=FFD3H即

27、-(05*09)的补码)例6:分析“ IDIV VL ”:设执行前 (AX)=FF05H, (BL)=17H,( 补)=-9执行后(AL)=F6H(-10的补,为商),(AH)=EBH(-21的补,为余数)例7:对长数的运算 求“7H0A15BE” 土“ 30517A6BH加法:MOV AX,15BEHADD AX,7A6BHMOV DX,7H0AHADD DX,3051H减法:MOV AX,15BEHSUB AX,7A6BHMOV DX,7H0AHSBB DX,3051H5.3 移位运算指令例8:将AL中压缩的BCD码转化为两个字节的 ASCII码送BX设(AL)=aiaHMOV BH,AL

28、;备份MOV CK,4;设移位次数SHR BH,CL;(BH)=0a1HADD BH 30H; 调为 ASCII 码MOV BL,AL; 另一备份AND BL 0FH; (BH)=0a2HADD BL,30H; 调为 ASCII 码例9:不用乘法指令编写程序段实现 X(AX)*10用移位指令SHL AX,1; *2MOV BX,AX 备份SHK AX,1; *2SHL AX,1; *2ADD AX,BX用加法指令ADD AX,AXMOV BX,AXADD AX,AXADD AX,AXADD AX,BX注:33(AX)*10=(AX)*(2 +2)=(AX)*2 +(AX)*2 =(AX)*2)

29、*2)*2+(AX)*25.4 综合实例例 10:设变量 char 中存储了一个字符,若七位大写则将其改为小写MOV AL,char;CMP AL,A;JB exit;CMP AL,Z;JA exit;ADD char,20H;该指令只在大写时被执行(小写字母的 ASCII 码比大写的大 20H)exit:例11:求DX:AX共 32位)的相反数NOT AXNOT DXADD AX,1ADC DX,0例12:求5x 5矩阵的转置兼程序格式识别DATA segmentA DW 20,50,90,30,51;DW 40,50,96,30,81DW 36,53,93,80,56DW 20,53,80

30、,36,51DW 26,68,93,30,58DATA endsSTACK segment PARA STACK STACKSTAPN DW 20 DUP(?)TOP LABEL WORDSTACK endsCode segmentAssume CS:Code,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,offset TopMOV SP,AXMOV CX,4;MOV BX,0;Loop1: push CX;MOV SI,2MOV DI,2Loop2: push ABXSIpush ABXDIpop

31、 ABXSIpop ABXDIADD SI,2ADD DI,2Loop Loop2;ADD BX,0CH;Pop CX;Loop Loop1;MOV AH,4CHInt 21Hcode endsend start例 13:以十六进制显示变量 bhout 中的一个字节MOV AL,bhout;(AL)=x 4x3x2x1y4y3y2y1Band AL,1111000B; (AL)=x 4x3x2x10000BMOV CL,4;设置移位次数SHR AL,CL;(AL)=0000 x 4x3x2x1BMOV BL,bhout;(BL)=x 4x3x2x1y4y3y2y1BAnd BL,0000111

32、1B; (BL)=0000y 4y3y2y1BMOV CX,2;设置循环次数(显示两个字符)MOV BH,AL(BH)=0000 x4x3x2x1Bpbh1: CMP BH,10;JB pbh2; (BH)10 时转移ADD BH,37H数字 AiASCII 码JMP pbh3pbh2: ADD BH,30H数字 0XASCII 码pbh3: MOV AH,02;带21H号程序的第2号MOV DK,BH被显示字符的ASCII码INT 21H; 调用DOS的第21H号程序MOV BH,BL;(BH)=0000yy3y2y1B 下一次被显示 Loop pbh1例14:将BX中存储的数以十六进制显示

33、出来MOV CX,1dPUSH CXMOV CX,10dPUSH CXMOV CX,100dPUSH CXMOV CX,1000dPUSH CXMOV CX,10000dPUSH CXMOV CX,5;循环 5次S: POP BP;(BP) J除数(10000,1000,1000,10,1)MOV AX,BX; (BX)/(BX) 商DX 余数ALMOV DX,0DIV BPMOV BX,X;remainder to BXMOV DL,AL;quotient to DLADD DL,30Hconvert to ASCIIMOV AH,02INT 21hLoop S例15:扬声器发声控制程序(61H号端口可认为是一个控制端口)端口bb6 bs b4 b3 b bb061HX0f1控制其他设备的控制位J约定该位取0时关闭2号定时器该位是扬声器的开关(1:打开0 :关闭)code segme nt代码段开始mai n proc far主过程开始assume cs:code,ds:code代码段和数据段重合org 100h让下列可执行命令从100h处开始存储Start: MOV dx,100循环次数In AL,61H输入端口的初始信息and AL,11111100B使bi= bo=0 (关闭扬声器)Sound:

温馨提示

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

评论

0/150

提交评论