文档章节

编程硬件基础+原理整理

求行者
 求行者
发布于 2017/04/11 23:40
字数 3006
阅读 10
收藏 0

1.为啥寄存器比内存快很多?

<a>与CPU的距离不同,传输数据的时间不一样。

<b>硬件的设计上,寄存器会一直呈现通电状态,但是内存在使用的时候通电,之后断电,响应效率不一样。

<c>寄存器负责的工作内容简单,只是简单的取址和读值操作。

备注:

ARM公司商业模式的强大之处在于其价格合理,全世界范围有超过100个合作伙伴--包括半导体工业的著名公司。ARM公司专注于设计,其内核耗电少、成本低、功能强,特有16/32位双指令集。ARM已成为移动通信、手持计算、多媒体数字消费等嵌入式解决方案的RISC标准.。

在所有ARM处理器系列中,ARM7处理器系列应用最广,采用ARM7处理器作为内核生产芯片的公司最多。

A.寄存器,是集成电路中非常重要的一种存储单元,通常由触发器组成。在集成电路设计中,寄存器可分为电路内部使用的寄存器和充当内外部接口的寄存器这两类。

寄存器的基本单元是 D触发器,按用途分为基本寄存器和移位寄存器移位寄存器(按照移位方向可以分为单向移位寄存器和双向移位寄存器)。

B.8086微处理其中的寄存器:

8086 有14个16位寄存器,这14个寄存器按其用途可分为通用寄存器组、指示器和变址寄存器组、段式寄存器组、指令指示器、标志状态寄存器。

通用寄存器是那些你可以根据自己的意愿使用的寄存器,修改他们的值通常不会对计算机的运行造成很大的影响。

累加寄存器,常用于运算;在乘除等指令中指定用来存放操作数,而且所有的  I/O指令 都用这一寄存器与外界设备传送数据。

计数寄存器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器.

SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置

BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置

SI(Source Index):源变址寄存器,可用来存放相对于DS段之源变址指针

DI(Destination Index):目的变址寄存器,可用来存放相对于ES 段之目的变址指针

标志寄存器

15
  
14
  
13
  
12
  
11 10 9 8 7 6 5 4 3 2 1 0
        OF
  
DF
  
IF
  
TF
  
SF
  
ZF
  
  AF
  
  PF
  
  CF
  
 

IF:中断允许标志IF位

用来决定CPU是否响应CPU外部的可屏蔽中断发出的中断请求但不管该标志为何值,CPU都必须响应CPU外部的不可屏蔽中断所发出的中断请求,以及CPU内部产生的中断请求具体规定如下:

(1)、当IF=1时,CPU可以响应CPU外部的可屏蔽中断发出的中断请求

(2)、当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。

TF:跟踪标志TF。该标志可用于程序调试。TF标志没有专门的指令来设置或清除。

(1)如果TF=1,则CPU处于单步执行指令的工作方式,此时每执行完一条指令,就显示CPU内各个寄存器的当前值及CPU将要执行的下一条指令。

(2)如果TF=0,则处于连续工作模式。

SF:符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。

微机系统中,有符号数采用补码表示法,所以,SF也就反映运算结果的正负号。运算结果为非负数时,SF的值为0,否则其值为1。

当运算结果没有产生溢出时,运算结果等于逻辑结果(即应该得到的正确的结果),此时SF表示的是逻辑结果的正负,当运算结果产生溢出时,运算结果不等于逻辑结果,此时的SF值所表示的正负情况与逻辑结果相反,即:SF=0时,逻辑结果为负,SF=1时,逻辑结果为非负。

2.十进制调整辅助进位设置?

进行运算的时候如果低四位的运算向高四位有进位或者借位,辅助进位标志就会被置位。

3.中断和异常区别?

中断 是指工作完全不能继续,处于停滞状态。
异常 是指工作尚未停止,但又不是正常状态。

http://blog.csdn.net/youngchang06hpu/article/details/8002703

4.中断和陷阱的主要区别?

1 、陷阱通常由处理机正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起的。

2 、陷阱处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为了当前进程的。

3 、CPU 在执行完一条指令之后,下一条指令开始之前响应中断,而在一条指令执行中也可以响应陷阱。

4 、在有的系统中,陷入处理程序被规定在各自的进程上下文中执行,而中断处理程序则在系统上下文中执行。

软中断与硬中断的比较:

相同点:其中断源发中断请求或软中断信号后, CPU 或接收进程在适当的时机自动进行中断处理或完成软中断信号所对应的功能。

不同点:接收软中断信号的进程不一定正好在接收时占有处理机,而相应的处理必须等到该接收进程得到处理机之后才能进行。

http://blog.chinaunix.net/uid-26931176-id-3216697.html

5.关于逻辑地址物理地址段地址和段内偏移地址区别?

关于逻辑地址是允许在程序中编排的地址,8086的逻辑地址有段地值和段内偏移量两部分,表达形式为“段地址:段内偏移地址”。

之前说20位的地址信息可以对1M个内存单元进行访问,就是说编址00000H~FFFFFH,而段寄器CS,DS,SS,ES即存放了这些地址的高4位,如12345H,则某个段寄存器便会存储1234H高4位信息,这即为段地址。

而段内偏移地址就是移动后相对于段地址的偏移量。

物理地址就是地址总线上提供的20位地址信息。物理地址=段地址*10H+段内偏移地址。段地址乘以10H是因为段地址当时是取高四位得到的,所以还原后要让段地址左移4位(10H = 10000B),例如(cs)= 20A8H,(IP)= 2008H,则物理地址为20A8H*10H+2008H = 22A88H。

段地址:是针对内存的分段而言的,将每一段的段首地址定义为段地址.段地址的存在是由系统的分段存储决定的,通过段地址和偏移地址就能对数据进行寻访.

物理地址:在存储器里以字节为单位存储信息,为正确地存放或取得信息,每一个字节单元给以一个唯一的存储器地址,称为物理地址。出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果。用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。

逻辑地址:

1、在有地址变换功能的计算机中,访问指令给出的地址 (操作数) 叫逻辑地址,也叫相对地址

2、把用户程序中使用的地址称为相对地址即逻辑地址。

3、逻辑地址由两个16位的地址分量构成,一个为段基值,另一个为偏移量。两个分量均为无符号数编码。

概念辨析

微型计算机的内存容量是指RAM的容量,ROM、RAM、cache能被CPU直接访问

汉字的拼音输入法属于外码

32位微机中32指的是能够同时处理32位二进制数,Internet中IP由32位二进制数组成

一个字的长度:计算机字长与微处理器的芯片的型号有关,计算机字长取决于数据总线的宽度

目前计算机应用领域大致分为三个范围:实时控制、科学计算、数据处理

依据CPU执行程序的过程寄存器中存放的可以是数据也可以是指令。计算机的指令由操作码个操作数或地址码组成。

微机中VGA的意义是:微机显示器的型号

 

一个计算机组成包括通信子网和资源子网

几个周期的区别:

周期名称

指令周期

时钟周期

 

cpu周期

总线周期

时钟信号

 

 

 

 

描述

即cpu运行一条指令所需要的时间长度,通常是一个指令周期等于多少个cpu振荡器周期。

cpu工作的振荡器的周期。定义为时钟频率倒数。时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。时钟周期是一个时间的量。时钟周期表示了SDRAM所能运行的最高频率。更小的时钟周期就意味着更高的工作频率

 

cpu振荡器周期。

1.微处理器是在时钟信号CLK控制下按节拍工作的。

2.由于存储器I/O端口是挂接在总线上的,CPU对存储器和I/O接口的访问,是通过总线实现的。把CPU通过总线对微处理器外部(存储器或I/O接口)进行一次访问所需时间称为一个总线周期。一个总线周期一般包含4个时钟周期,这4个时钟周期分别称4个状态即T1状态、T2状态、T3状态和T4状态,必要时,可在T3、T4间插入一个至数个Tw。

用于决定逻辑单元中的状态何时更新。时钟信号是指有固定周期并与运行无关的信号量

逻辑地址和物理地址的区别:

 

逻辑地址(Logical Address) 

线性地址(Linear Address)

物理地址(Physical Address)

虚拟内存(Virtual Memory)

 

 

 

 

描述

指由程序产生的与段相关的偏移地址。逻辑也就是在Intel 保护模式下程序执行代码段限长内的偏移地址(假定代码段、数据段如果完全一样)。

 

逻辑地址到物理地址变换之间的中间层。程序代码会产生逻辑地址(段中的偏移地址),加上相应段的基地址就生成了一个线性地址。如果启用了分页机制,那么线性地址可以再经变换以产生一个物理地址。若没有启用分页机制,那么线性地址直接就是物理地址。

出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址。

计算机呈现出要比实际拥有的内存大得多的内存量。因此它允许程序员编制并运行比实际系统拥有的内存大得多的程序。这使得许多大型项目能在具有有限内存资源的系统上实现。

© 著作权归作者所有

共有 人打赏支持
求行者
粉丝 2
博文 67
码字总数 83500
作品 0
朝阳
程序员
嵌入式系统定制开发的分层与专业的分类

嵌入式系统这个名词还是比较难以准确定义的,一般把“用于控制、监视或者辅助操作机器和设备的装置”称为嵌入式系统,系统包括一系列软硬件设施等,比如:手机的系统开发(Android、IOS等),...

gunser
05/31
0
0
嵌入式系统有哪些专业的分类 学习嵌入式有哪几个方向

无论什么基础学习嵌入式,只要学习嵌入式的人都知道,嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。想要学好嵌入式,就必须明确这几个方向,缕清学习思路,才能更好的学习嵌入式...

创客学院
03/21
0
0
《模拟电路》、《数字电路》、《微机原理》三门课的关系

5.1.1 模拟电路 (1)含义 即Analog Circuit,模拟电路就是处理模拟电信号的电子电路,《模拟电路》这门课专门讲模拟电路的设计与实现的,《模拟电路》这门课,这门课常被简称为《模电》。 ...

佳嵌
01/30
0
0
嵌入式软件学习方法 嵌入式软件知识

目前嵌入式软件的学习主要主要面向的几个操作系统是,Linux,WINCE、VxWorks等等。其中Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式软件。下面我们介绍一下嵌入式软件学...

创客学院
04/12
0
0
做IT开发选择嵌入式好还是JAVA好

:IT软件开发眼前道路的选择 一份工作在一个人的生活中占据重要地位,对于一个人的生活质量占据决定性作用,可以说工作决定一个人一生,对于选择工作当然是要选择新兴产业且有发展前途的行业...

educn114
2014/05/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MySQL autocommit探究

-- sessionA:tx_isolation=REPEATABLE-READmysql> select connection_id();+-----------------+| connection_id() |+-----------------+| 28 |+-----------------+......

安小乐
4分钟前
0
0
c++多线程锁 Mutex  自动判断死锁

c++多线程锁可以使用absl::Mutex std::mutex这两种,下面是demo代码。 使用absl:Mutex的时候打印: [mutex.cc : 1338] RAW: Cycle: [mutex.cc : 1352] RAW: mutex@0x683b68 stack: @ 0x43856......

青黑
22分钟前
0
0
Blockathon2018(成都站)比赛落幕,留给我们这些区块链应用思考

9月14日,HiBlock区块链社区主办的第二届Blockathon在成都菁融国际广场成功举行,30名参赛者分为5支队伍在48小时内完成区块链项目的创意、开发及路演,经过紧张的开发及现场评选,最终币托(...

HiBlock
28分钟前
0
0
71.告警系统主脚本 配置文件 监控项目

20.20 告警系统主脚本(main.sh) 20.21 告警系统配置文件 20.22 告警系统监控项目 20.20 告警系统主脚本(main.sh): ~1.约定:把以后所有的shell脚本放在/usr/local/sbin下,也方便我们查...

王鑫linux
34分钟前
0
0
装饰者模式

装饰者模式 Q:何为装饰模式? ()地给一个对象添加一些额外的(),并且()时,并不影响原对象。扩展功能来说,装饰器模式相比生成子类更为灵活。 Q:使用场景? 1.想要在不影响其他对象的情况下...

阿元
55分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部