# 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