冯诺依曼体系结构计算机的要点和工作过程.docx

上传人:scccc 文档编号:12915722 上传时间:2021-12-07 格式:DOCX 页数:9 大小:32.98KB
返回 下载 相关 举报
冯诺依曼体系结构计算机的要点和工作过程.docx_第1页
第1页 / 共9页
冯诺依曼体系结构计算机的要点和工作过程.docx_第2页
第2页 / 共9页
冯诺依曼体系结构计算机的要点和工作过程.docx_第3页
第3页 / 共9页
冯诺依曼体系结构计算机的要点和工作过程.docx_第4页
第4页 / 共9页
冯诺依曼体系结构计算机的要点和工作过程.docx_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《冯诺依曼体系结构计算机的要点和工作过程.docx》由会员分享,可在线阅读,更多相关《冯诺依曼体系结构计算机的要点和工作过程.docx(9页珍藏版)》请在三一文库上搜索。

1、1、简述冯诺依曼体系结构计算机的要点和工作过程。答:冯诺依曼体系结构计算机的要点:计算机中的信息(程序和数据)以二进制方式表示。程序预存储,机器自动执行。计算机由运算器、控制器、存储器、输入设备和输出设备五大 部分组成。计算机通过执行预存储在存储器中的程序来完成预定的运算。程序由计算机的指 令序列构成,计算机在处理器的控制下,首先从存储器读取一条待执行的指令到处理器中, 接下来分析这条指令,而后发出该指令对应的电平脉码序列,即执行该指令。并以此递归运 行程序。2、何谓总线?计算机中有哪几类总线?简述其用途。答:计算机的总线(Bus)就是连接计算机硬件各部件,用于计算机硬件各部件之间信息传输的公

2、共通道。按照其传送信号的用途属性,总线可细分为:地址总线( Address Bu§、数据总 线(Data Bus)和控制总线(Control Bus)三类。地址总线(A_Bus):专用于在 CPU、存储器和I/O端口间传送地址信息的信号线。此类 信号线传送的信息总是从CPU到存储器或I/O端口,它是单向信号线。数据总线(D_Bus):专用于在CPU、存储器和I/O端口间传送数据信息的信号线。此类 信号线传送的信息可以是从CPU到存储器或I/O端口 (写”操作),也可能是从存储器或I/O端口到CPU (读”操作),它是双向信号线。控制总线(C_Bus):专用于CPU与其它部件之间传送控

3、制信息和状态信息的信号线。此 类信号线的构成比较复杂,传送的控制、状态信息可以是从 CPU到其它部件,也可 能是从其它部件到 CPU。此类总线中的某些具体的线是单向的(或从 CPU到其它 部件,或反之),但作为总线来说,它是双向信号线。3、 中央处理器CPU是计算机的核心部件,主要功能是解释并执行计算机指令,完成数据处理和 对计算机其他各部分进行控制。存储器是计算机系统中用来存储程序和数据的信息记忆部件。4、嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、 可靠性、成本、体积、功耗严格要求的专用计算机系统。简而言之,嵌入式系统就是嵌入到目标应用系统中、完成特定

4、处理功能的专用计算机系统。5嵌入式处理器分类嵌入式微处理器、嵌入式微控制器、嵌入式DSP处理器、嵌入式片上系统1. 何谓计算机体系结构?答:计算机体系结构是对计算机较高层次的抽象,是摆脱具体电路的实现而主要着眼于计算机 系统的逻辑特征、原理特征、结构特征和功能特征的抽象。3. 什么是RISQ什么是CISC简述他们的特点与差别。答:RISC是Reduced Instruction Set Computer ,精简指令集计算机。特点是指令系统精炼,处 理器电路逻辑相对简单,且能够以更快的速度执行操作。对于负载的功能需要编程实现。CISC是Complex Instruction Set Comput

5、er ,复杂指令集计算机。特点是指令系统中含有大量的类似于高级程序设计语言结构的复合功能指令。指令系统庞大,处理器硬件电路的复杂度。21. 存储器和IO端口统一编址和独立编址各有什么特点?ARM7处理器统一编址编址方式答:统一编址方式-存储器单元资源和IO端口资源统一编址在一个地址空间。特点:按地址 空间位置约定各分类资源,访问IO端口如同访问存储器单元,无需专用的IO访问指令。芯片上没有专用于IO访问的引脚。独立编址方式-存储器资源和IO端口资源分别编址在两个地址空间,存储器地址空间和IO地址空间。特点:按资源分类的地址空间清晰,使用不同的指令访问存储器和IO端口,处理器指令系统中既有存储器

6、访问指令,又有专用的IO访问指令。芯片上有专用于IO访问的引脚。22. 大端存储模式和小端存储模式的含义:高位数据存储在高地址字节,这种组织数据的存储方 式称为小端模式;另一种则反之,高位数据存储在低地址字节,这种组织数据的存储方式称 为大端模式;8、 ARM体系结构支持7种处理器模式,用户模式、系统模式、快中断模式、中断模式、管理模式、中止模式、未定义模式。ARM微处理器内共有 37个32位的程序可访问寄存器物理资源,其中31个通用寄存器,6个状态寄存器。ARM中定义了复位、未定义指令、SWI (软中断)、预取指终止、预取数终止、irq以及fiq等7种异常。ARM7的异常处理:异常响应)处理

7、器转入 到ARM状态对应的异常模式;在该异常模式的SPSR、LR寄存器分别备份 CPSR、PC的当前数据;重置CPSR和PC9、ARM7TDMI支持哪几种指令集,各有什么特点?答:ARM7TDMI支持32位的ARM指令集和16位的Thumb指令集。ARM指令集效率高、功能 全,但是代码密度低,所有 ARM指令都是可以有条件执行的;Thumb指令集,功能上是 ARM指令集的子集,Thumb状态下的ARM7TDMI(-S)仍然是32位的处理器,因此具有更高的代码密度; Thumb指令中仅有B指令具备条件执行功能。1、解释 满堆栈”、空堆栈”、“递增堆栈”和“递减堆栈”? ARM指令系统中是如何支持

8、的?答:满堆栈就是堆栈指针总是指向最后压入堆栈的数据的存储单元;空堆栈就是堆栈指针总是 指向下一个将要放入数据的存储单元;递增堆栈就是堆栈底部位于低地址处,堆栈向高地址方 向增长;递减堆栈就是堆栈底部位于高地址处,堆栈向低地址方向递减;ARM指令系统支持的是满递减堆栈1、请说明MOV指令与LDR加载指令的区别和用途。答:MOV指令用于将8位位图立即数或寄存器数据传送到目标寄存器( Rd),也可用于移位运 算等操作。LDR指令用于从存储器中加载一个数据到寄存器中。用于访问存储器操作。解释B指令、BL指令与BX指令的功能差别?简述它们的应用场合。答:B指令跳转到标号指定的地址执行程序。BL指令先将

9、下一条指令的地址拷贝到R14中,然后跳转到标号指定地址运行程序。BX指令跳转到Rm指定的地址处执行程序,该指令用于处理器状态切换。4、计算机语言:机器语言是一种用二进制代码表示指令和数据,能被机器直接识别的计算机语言。5、如何在汇编程序中显示声明文字池?什么情况下需要显示声明文字池? 一般应在程序的什么位 置显示声明文字池?为什么?答:使用LTORGT编器伪指令用于显示声明一个文字池(literal pool)。实际应用中,如果ARM需要处理的操作数不符合 8bit位图立即数的要求时,那么就需要使用文字池来存放这个常量。在ARM汇编语言中,使用LDR加载指令相对寻址文字池中存放的任意 32bi

10、t立即数。因为LDR指令 的寻址范围是指令位置的前后 4KB,所以如果LDR指令所在位置距离文字池超出 4KB范围,那么需 要在程序中的适当位置,使用 LTORGJW指令显式声明文字池。解决方法:一般总可以在LDR伪指令前后4KB的范围内找到分支指令,文字池可声明在分支( B)指令之后的紧邻位置,因为 B指令总 是会将程序的执行转移到其它地方的,所以这样做不会影响代码的正常执行。6、 简述汇编程序设计的一般流程。1分析问题,建立数学模型;确定算法; 设计程序流程图;合理分配寄存器、存储空间和外设资源;编制程序; 调试程序;形成文档;7、实现汇编程序分支的关键语句有哪几条?分别用于什么场合?答:

11、汇编程序分支结构的实现是通过在运行时由机器根据不同的条件自动作出判断,选择执行相应 的处理程序段。分支指令主要有BL指令、B指令和BX指令,分别用于调用子程序、直接跳转和带状态的跳转场合。8、循环控制有哪几种方法?各有什么应用特点?答:循环控制有两种方法。1计数控制循环:通过计数循环次数,判断是否已达到预定次数,控制 循环。适合已知循环次数的循环控制。2条件控制循环:通过判断循环终止条件是否已成立,控制 循环。适合仅知道结束条件的循环控制。9、汇编子程序传递参数有哪几种方式?答:。寄存器传递参数方式;存储区域传递参数方式;堆栈传递参数方式;10、用汇编语言编写程序将 R0寄存器中的字数据分成

12、4组,每组8位,然后分别存放到 R1、R2、R3和R4中。;代码段名decodeAREA decode, CODE, READONLYENTRYCODE32startLDR R0, =xLDR R0, R0MOV R1, #0xFFAND R1, R1, R0MOV R2, #0xFFAND R2, R2, R0, ROR #8MOV R3, #0xFFAND R3, R3, R0, ROR #16MOV R4, #0xFFAND R4, R4, R0, ROR #24stopMOV R0, #0x18LDR R1, =0x20026SWI0x123456AREA Data, DATA, RE

13、ADWRITEx DCD123456789END;程序的入口;将x加载到寄存器R0;取x的低八位;取x的次低八位;取x的次高八位;取x的高八位;这三条指令是ADS调试环境特约;程序运行结束返回编译器调试环境;数据段的名字Data;结束11、用汇编语言编写程序统计任意字符串包含的字符个数。(约定:字符串以0为结束标志)AREA count, CODE, READONLY ;代码段名 countENTRYCODE32startLDR R0, =stringMOV R2, #0CONTILDRB R1, R0CMP R1, #0ADDNE R2, R2, #1ADDNE R0, R0, #1 BNE

14、 CONTILDREQ R3, =NUMSTREQ R2, R3stopMOVR0, #0x18LDR R1, =0x20026SWI0x123456;程序的入口;R0指向字符串string中第一个字符;将string中的一个字符加载到寄存器R1;是否是字符串结束标志;如果不是,统计个数增加1;如果不是,指针拨向下一个字符;如果是,将统计的字符串个数,放入单元num;这三条指令是ADS调试环境特约;程序运行结束返回编译器调试环境100Sum _寸 2 NN 112、用汇编语言编写程序计算:AREA sum2n, CODE, READONLY ;代码段名 sum2n;程序的入口ENTRYCODE

15、32LDR R0, =sumMOV R1, #0MOV R2, #1CONTIADD R1, R1, R2, LSL #1CMP R2, #100ADDNE R2, R2, #1BNE CONTISTREQ R1, R0 stopMOV;R0指向存储单元sum;R1存放累加和;R2初始化起始值;实现 R1=R1+R2*2;判断R2是否等于100;如果不等,R2累加1;如果相等,将累加和R1放入存储单元sum中LDR R1, SWIR0, #0x18=0x200260x123456;这三条指令是ADS调试环境特约;程序运行结束返回编译器调试环境start;数据段的名字DataAREA Data,

16、 DATA, READWRITEsum DCD 0END;结束14读程序、文件名:TEST1.S;功能:实现字符串拷贝功能说明:使用ARMulate软件仿真调试AREA Example1,CODE,READONLY ;声明代码段 Example1;设置拷贝字的个数;标识程序入口;声明32位ARM指令;R0指向源数据块;R1指向目的数据块ENTRYnum EQU 20CODE32START LDR R0, =srcLDR R1, =dstR2, #num ; R2需要拷贝的数据个数MOVwordcopyLDR R3, R0, #4 ;从源数据块中取一个字,放入 R3中,R0=R0+4STR R3

17、, R1, #4 ;将R3中的数据存入 R1指向的存储 单元中,R1=R1+4SUBS R2, R2, #1; R2 计数器减 1BNE wordcopy ;如果 R2不为0,则转向 wordcopy处stopMOV R0, #0x18;程序运行结束返回编译器调试环境LDR R1, =0x20026SWI 0x123456AREA BlockData, DATA, READWRITE;数据段的名字 BlockDataAREA |.extra|, NOINIT, READWRITE;未初始数据段的名字 .extradata SPACE 1024END;文件结束第六章1、 主机与外设接口之间主要交

18、互的三类信息:状态信息(输入)用于标示设备的状态情况。数据信息(输入/输出)-要传送的二进制目标数据。控制信息(输出)控制外设的工作方式与具体操作。对应于上述的三种信息,外设接口电路中的端口寄存器也分为了三类:状态端口(寄存器)、数据端口(寄存器)和控制端口(寄存器)2、 接口 与 端口:接口和 端口是两个不同的概念。接口 - U重于物理连接;端口 -侧重于接口的内部工作方式。接口由若干个端口加上相应的控制电路构成。每个端口都对应与接口电路中的各个工作寄存器。外设通过接口连接入计算机系统,计算机通过端口访问控制外设工作。3、处理器与外设之间的数据传送方式主要有:无条件数据访问方式,状态查询方式

19、数据访问方式,中断方式数据访问方式和直接存储器访问(DMA)方式等几种方式。4、 无条件外设-输入设备总是准备好向CPU提供数据,输出设备总是准备好接收CPU送来的数据。5、 接口电路的主要功能:任何设备都不能长期占用系统总线;输入设备要经过三态缓冲器相连到 系统总线;输出设备要经过数据锁存器相连到系统总线;6、 状态查询方式的原理:在执行数据端口访问指令前,要先查询该设备的状态,当设备处于准备好状态时,CPU才执行对设备数据端口的输入/输出指令,与外设交换信息;否则,等待。 中断方式数据访问:当外设需要与 CPU进行信息交换时,由外设主动向CPU发出数据传送请求信号(中断申请),CPU响应此

20、请求信号后(中断响应),暂停正在执行的程序,转去执行该外设 的数据输入/输出操作程序(中断服务程序-IS0,外设数据端口访问后,CPU再继续执行被暂停的程序(中断返回)。7、 中断向量-中断服务程序(IS0的入口地址;中断现场 - CPU响应中断离开主程序时, CPU 的相关寄存器数据情况。中断响应 - CPU敏感并进入到ISR的一系列动作;中断返回 - CPU 返回被中断主程序断点处继续执行主程序的一系列动作;8、中断处理过程一般包括以下五个步骤:中断请求、中断响应、断点保护、中断处理和 中断返回。9、 例7-1:使用Timer0作为1秒钟的定时器,产生周期为 2秒,占空比为1:1的方波信号

21、。int main (void) PINSEL0 = PINSEL0 &( (3<<10)|(2<<10);/*设置P0.5管脚为 MAT0.1功能*/T0CTCR = 0x00;/*设置Timer0工作在定时方式*/T0TC = 0;/*定时器设置为0*/T0PR = 99;/* 时钟100预分频*/T0MCR = 0x02<<3;/*设置T0MR1匹配后复位T0TC,无中断标志*/T0MR1 = Fpclk / 100; /* 1秒钟定时-匹配目标值*/ T0EMR |= 0xC2;/*设置Timer0发生MR1匹配时翻转 MAT0.1位*/T0

22、TCR = 0x01;/*启动定时器*/while (1);return 0;例7-2 :假设车轮毂上已经均匀安装了8个霍尔传感器,车轮每转一周可产生8个正脉冲。使用LPC2132中的Timer0和Timerl资源,设计一个简易的车用综合仪表数据处理系统(可测量显示车 速、本次里程、总里程等数据)。#define KClr/* KClr按键连接与#define1 << 0P0.0管脚,KClr按下时P0.0为低电平*/2.5/*车轮周长 2.5米*/#define HrN 8 /*车轮箍霍尔传感器个数*/uint32 Vspeed;/* 当前车速 */uint32 VtotalLe

23、n; /* 总里程 */uint32 VthisLen; /* 本次里程 -Km */int main (void)uint32 Vx;/*暂存1秒钟车轮毂霍尔脉冲计数值*/PINSEL0 =( PINSEL0 &( (3<<20) | (2<<20);/* 设置 P0.10 管脚为 CAP1.0 */PINSEL0 = PINSEL0 &( 3);/* 设置 P0.0 管脚为 GPIO */*设置Timer0 - 1秒定时器*/T0CTCR &= 0xf0; /*设置Timer0工作在定时方式*/T0TC = 0;/*定时器设置为0*/T0PR

24、 = 99;/*时钟100预分频*/T0MCR = 0x03;/*设置T0MR0匹配后复位T0TC,产生中断标志*/T0MR0 = Fpclk/ 100; /* 1秒钟定时-匹配目标值*/*设置Timer1 - 计数器对P0.10管脚输入脉冲计数*/T1CTCR = ( T1CTCR &(0x0f)| 0xf1;/*设置Timer1计数方式,计数 CAP1.0的上升沿*/T1TC = 0;/*设置计数器初值为 0 */T1MCR = 0x00;/*这也是芯片的复位值00 */T1CCR &= 0x07;/* CAP1.0不再用作捕获触发*/T0TCR = 0x01;/* 启动定

25、时器 0*/T1TCR = 0x01;/* 启动定时器 1*/while (1) if (T0IR&0x01) = = 1) /* 1S 定时到 */T0IR = 0x01;/*清除MR0中断标志 */Vx = T1TC;T1TC = 0;/*下一秒重新计数*/VtotalLen += Vx; /* 累计总里程 */VthisLen += Vx; /* 累计小里程 */Vspeed = (Vx * L * 3.6) / HrN; /* 单位:Km/Hr */if (IO0PIN & KClr) = = 0)VthisLen = 0;/*如果KClr按下,清 0本次里程纪录 */

26、return 0;7、GPI。应用举例#define K1 1 << 0/K1按键连接与 P0.0管脚,K1按下时P0.0为低电平#define K2 1<< 1/ K2按键连接与 P0.1管脚,K2按下时P0.1为低电平#define BEEP1 << 7/ P0.7控制蜂鸣器,高电平蜂鸣#define LED1 << 8/ P0.8控制发光二级管,高电平点亮void DelayNS (uint32 dly)uint32 i;for ( ; dly>0; dly-)for (i=0; i<50000; i+);int main (v

27、oid)PINSEL0 = 0x00000000;/ P015:0管脚用做 GPI。功能IO0DIR = IO0DIR &( K1); / 设置 K1 控制口为输入IO0DIR = IO0DIR &( K2);/ 设置 K2 控制口为输入IO0DIR = IO0DIR | BEEP; / 设置 BEEP控制口为输出IO0DIR = IO0DIR | LED;/ 设置 LED控制口为输出IO0CLR = IO0CLR | BEEP | LED; / BEEP、LED 输出低电平while (1)if (IO0PIN & K1) = = 0)IO0SET = LED;/ 如

28、果 K1 按下,LED点亮else IO0CLR = LED;/ 松开则熄灭if (IO0PIN & K2) = = 0)IO0SET = BEEP;/如果K2按下,蜂鸣器鸣叫else IO0CLR = BEEP; / 松开则静音DelayNS(50); /延时50个时间单位 return 0;实验、功能:计算 X的n次方的值;说明:X和n均为无符号整数X EQU 9;定义X的值为9n EQU 8;定义 Y的值为8AREA Example4,CODE,READONLY ;声明代码段 Example4ENTRY;标识程序入口CODE32;声明32位ARM指令START LDR S=0x4

29、0003F00;设置堆栈(满递减堆栈,使用 STMFD/LMDFD指令)LDR R0,=XLDR R1,=nBL POW;调用子程序 POW,返回值为 R0HALT B HALT;入口参数:R0底数R1指数;出口参数R0运算结果;占用资源:R0、R1;子程序:POW;功能:整数乘方运算;说明:本子程序不考虑溢出问题POW STMFD SP!,R1-R12,LR;寄存器入栈保护MOVS R2,R1MOVEQ R0,#1BEQ POW_ENDCMP R2,#1BEQ POW_END;将指数值复制到 R2,并影响条件标志;若指数为0,则设置R0 = 1;若指数为0,则返回;若指数为1,则返回(此时 R0没有被更改)MOV R1,R0;设置DO_MUL子程序的入口参数 R0和R1SUB R2,R2,#1;计数器R2 =指数值减1POW_L1 BL DO_MUL;调用 DO_MUL 子程序,R0 = R1 乂 R0;每循环一次,计数器 R2减1;若计数器R2不为0,跳转到POW_L1SUBS R2,R2,#1BNE POW_L1POW_END LDMFD SP!,R1-R12,PC;寄存器出栈,返回

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1