# Computer-Organization **Repository Path**: curled/Computer-Organization ## Basic Information - **Project Name**: Computer-Organization - **Description**: Computer-Organization - **Primary Language**: HTML - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-04-16 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 计组考前懵逼释疑 *by Curled* [TOC] ## 第一章 绪论 #### 哈佛结构和冯诺依曼结构有什么主要的不同? 冯·诺依曼结构**将程序指令存储器和数据存储器合并在一起**,指令存储地址和数据存储地址指向**同一个存储器的不同物理位置**。 使用冯·诺伊曼结构的中央处理器有很多。如Intel公司的80X86、ARM公司的ARM7、MIPS公司的MIPS等都采用了冯·诺伊曼结构。 而哈佛结构是一种**将程序指令存储和数据存储分开的存储器结构**。目前使用哈佛结构的中央处理器也有很多,如MOTOROLA公司的MC68系列、Zilog公司的Z8系列和ARM公司的ARM9、ARM10和ARM11等。 #### 计算机的总线有哪些分类 **系统总线、CPU内总线、外部总线(通信总线)**。 其中,系统总线包含**地址线、数据线和控制信号线**,CPU内总线主要连接各寄存器和ALU,外部总线用于计算机系统之间通信。 数据总线为**双向**三态逻辑,线宽(位数)表示了总线数据传输的能力。 地址总线为**单向**三态逻辑,线宽决定了系统的寻址能力。 控制总线:用来传输控制或状态信号。它根据使用条件不同,**有的为单向,有的为双向传输,有的是三态,有的是非三态**。 #### 什么是计算机的位?什么是字长? 计算机的位一般指地址总线的宽度。 基本字长指计算机在同一时间中处理二进制数的位数,通常称为CPU的位。前者是寻址能力,后者是数据处理能力。而基本字长又决定了寄存器运算器和数据总线的位数。 #### 基数,基本符号,位权。 基本符号是一个进制允许用的符号。基数是所有基本符号的个数,通常,x进制,就说明x是这个进制的基数。位权是不同数位的权值。 ## 第二章 数据的表示 #### IEEE754浮点数表示中,指数偏移值是真值+127,而不是128,表示的范围为1~254. 单精度浮点数的指数域是8个bit,-128\~127加上127之后范围变为-1\~254。 对-128来说,补码为1000 000(注意不是0000000,因为-128没有反码!否则和0重复了)。加上127后为255(即E=255),如果此时同时M为0的话,表示为±∞(与符号位有关),而对于0,如果此时M为0,则真值为±0,如过此时E=255,M不为0时,则此时真值不是一个数,即NAN。 参考:https://blog.csdn.net/a7515780/article/details/60469155 https://baike.baidu.com/item/IEEE%20754/3869922?fromtitle=IEEE754%E6%A0%87%E5%87%86&fromid=10427270&fr=aladdin #### 什么是规约化浮点数,什么是非规约化浮点数?规约化浮点数的表示范围与精度取决什么? 如果浮点数中指数部分的编码值在0关于PSW寄存器 状态标志寄存器,FLAG(全称:EFLAGS Register),又称程序状态寄存器(它的内容是Program Status Word,PSW),主要用于反映处理器的状态和ALU运算结果的某些特征及控制指令的执行。 | | | | | OF | DF | IF | TF | SF | ZF | | AF | | PF | | CF | | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | | | | | | | | | | | | | | | | | | 6个状态标志位为: - 进位标志位(CF): - 辅助进位标志位(AF); - 溢出标志位(OF): - 零标志位(ZF); - 符号标志位(SF); - 校验标志位(PF); 3个控制标志为: - 方向标志(DF),表示串操作指令中字符串操作的方向。 - 中断允许标志位(IF),表示CPU是否能够相应外部的可屏蔽中断请求。 - 陷阱标志位(TF),为了方便程序的调试,使处理器的执行进入单步方式而设置的控制标志位。 #### 控制器中,哪些寄存器是用户可见的?哪些是用户不可见的? 对**用作处理的寄存器**来说,所有的通用寄存器组都是用户可见的,都可以编程访问,可以存放操作数和操作数地址。 对**用于控制的寄存器**来说,指令寄存器IR是不可见的,用于存放现行指令,以及输出用于产生控制信号的序列。程序计数器PC是可见的,提供读取指令的地址,又叫指令指针IP。程序状态字寄存器是用户可见的,内容表示现行程序的状态,具体见[关于PSW寄存器](#psw)。 #### 转移指令的基本原理? 无条件转移指令:又称必转,不受任何条件的约束,直接把程序指向新的位置并执行,一般为JMP 条件转移:必须受到条件的约束,条件由某些标志位或这些标志位的逻辑运算为依据,单个标志位的条件转移指令的转移条件是上次运算结果的某些标志,如进位、零标志、结果溢出标志等。 根据单个标志位的状态判断转移的指令(DEST为目的地址destination的缩写) | 指令 | 转移条件 | 说明 | | ---------------- | -------- | ------------------- | | **JC DEST** | **CF=1** | **有进位/借位** | | **JNC DEST** | **CF=0** | **无进位/借位** | | **JE/JZ DEST** | **ZF=1** | **相等/等于零** | | **JNE/JNZ DEST** | **ZF=0** | **不相等/不等于零** | | **JS DEST** | **SF=1** | **是负数** | | **JNS DEST** | **SF=0** | **是正数** | | **JO DEST** | **OF=1** | **有溢出** | | **JNO DEST** | **OF=0** | **无溢出** | | **JP/JPE DEST** | **PF=1** | **有偶数个“1”** | | **JNP/JPO DEST** | **PF=0** | **有奇数个“1”** | 根据两个无符号数的比较结果判断转移的指令 | 指令 | 转移条件 | 含义 | 英文表述 | | ------------ | ------------- | ----------- | ------------------------------- | | JA/JNBE DEST | CF=0 AND ZF=0 | 无符号数A>B | JMP above (not below or equal) | | JAE/JNB DEST | CF=0 | 无符号数A≥B | JMP above or equal (not below ) | | JB/JNAE DEST | CF=1 | 无符号数AB | JMP greater (not less or equal) | | JGE/JNL DEST | SF=OF OR ZF=1 | 有符号数A≥B | JMP greater or equal (not less) | | JL/JNGE DEST | SF≠OF AND ZF=0 | 有符号数A