微机原理知识整理

第一章 微机系统导论

1.微处理器:具有运算器和控制器功能的中央处理器,也称为微处理机(CPU)。

2.微型计算机:以微处理器为核心,配上存储器、输入输出接口/设备及系统总线所组成的计算机。

2.1总线:地址总线AB、数据总线DB、控制总线CB

2.1.1系统中各部件均挂在总线上(CPU、存储器、I/O接口),用于系统各部件之间的信息传递

2.2微处理器:由运算器(主要用来进行算术运算,位移循环)、控制器(处理IR指令寄存器,ID指令译码器等)、内部寄存器(ACC累加器,DR数据寄存器,AR地址寄存器,PC程序计数器,寄存器组--专用/通用寄存器)三部分组成。

2.3存储器:微机的存储和记忆部件,用来存放程序和数据(包括原始数据、中间结果与最终结果)。

2.3.1存储器基本概念

字节(byte): 8位二进制代码为1个字节。
字(word): 2个字节组成1个字,表示16位数据。
字长: 计量处理二进制代码位长的单位;表示计算机数据总线上一次能够处理的信息的位数;
内存(主存): 内存划分为很多个存储单元(称内存单元)。每个存储单元存放1个字节的二进制信息;表示数据或指令。
存储容量: 存储单元的总数目,取决于地址线的根数。
地址: 赋予每个存储单元1个编号,通常用16进制数表示。

2.3.2存储器组成:随机存取存储器(RAM)由存储体(由存储单元组成;存储容量)、地址译码器(通过地址码选中具体的内存单元)、控制电路(控制存储器的读/写)组成。

2.2.3读操作过程:通过地址译码器选中具体的存储单元;CPU控制电路发出读信号;将存储单元的数据读取到数据总线上

2.2.4写操作过程:通过地址译码器选中具体的存储单元;将数据寄存器的内容放入数据总线上;CPU发出写信号将数据总线上的内容写入到存储单元;

3.微型计算机硬件系统组成:微处理器,输入输出I/0,存储器

4.微机工作过程:微机的工作过程就是执行程序的过程,而程序由指令序列组成。执行程序的过程,就是执行指令序列的过程。
执行每一条指令,都包括取指令与执行指令两个基本阶段,因此微机的工作过程,也就是不断地取指令和执行指令的过程

4.1取指阶段:是由一系列相同的操作组成的,因此取指阶段的时间总是相同的,它称为公操作。

4.2执指阶段:由不同的事件顺序组成, 取决于被执行指令的类型,因此执指阶段的时间从一条指令到下一条指令变化可能相当大。

4.3指令:通常包括操作码(执行的具体操作)和操作数(参加操作的数的本身操作数所在的地址;也叫地址码)。

4.4助记符:指令底层使用二进制码表示,为了方便使用助记符变为汇编语言的形式;操作码(MOV A ,n)--1011 0000;操作数(3)--0000 0011;

4.5程序执行过程实例:包括取指令和执行指令两个阶段

取指令阶段:(将指令取出来放入地址总线)

① 把PC(程序计数器)的内容00H送到AR(地址寄存器)。
② PC(程序计数器)自动加1,即由00H变为01H。
③ 把AR(地址寄存器)的内容00H放在AB(地址总线)上,经AD(地址译码器)译码,选中相应的00H单元。
④ CPU发出读命令。

⑤ 在读命令控制下,把所选中的00H单元中内容即第1条指令的操作码B0H 读到DB(数据总线)上。
⑥ 把读出的内容B0H经DB送到DR(数据寄存器)。
⑦ 取指阶段的最后一步是指令译码。因为取出的是指令的操作码,故DR把它送到IR(指令寄存器),然后再送到ID(指令译码器)。
这就完成了第1条指令的取指阶段(取操作码)。然后转入执行第1条指令的阶段。

执行指令阶段:(将指令取出进行执行)

① 把PC(程序计数器)的内容01H送到AR(地址寄存器)。
② PC自动加1,变为02H。
③ AR(地址寄存器)通过AB(地址总线)把地址01H送到存储器的地址译码器,经过AD(地址译码器)选中相应的01H单元。
④ CPU发出读命令。
⑤ 在读命令控制下,将选中的01H单元的内容03H读到DB(数据总线)上。
⑥ 通过DB把读出的内容送到DR(数据寄存器)。
⑦ CPU根据该条指令具有的字节数已知此时读出的是操作数,且指令要求把它送到累加器A, 故由DR(数据寄存器)取出的内容就通过内部DB(数据总线)送到累加器A。
于是第1次执指阶段完毕,操作数03H被放入累加器A中;并进入第2条指令的取指阶段。
 

第二章:微处理器与总线

1.进制转换

1.1任意进制转化为十进制:只需按照位权展开,然后求和即可。

1.2. 十进制转化为任意进制:十进制数转换为二进制数(或者八进制、十六进制数),整数部分采用“除2(或8、 16)逆取余”方法。小数部分采用“乘2(或8、 16)顺取整”方法。

1.3. 二进制数转换为八进制数(或十六进制数),以小数点为分界线, 3位(或4位)分为一组,最左与最右一组不足3位(或4位)时补零,然后每3位(或4位)写成对应的八进制数(或十六进制数)即可。

2.编码

2.1.二进制代码对十进制数进行编码:十进制数 256, BCD码为( 256) D = (0010 0101 0110) BCD

2.2ASCII 码表示128 种不同的字符

3.原反补码:原码和反码的范围都是以0为中心对称;补码负数跟非负数表示个数相同(补码就是数字正转和反转,对于钟表-4(逆时针转)的补码就是8(顺时针转))

3.1数字的运算都是使用补码进行的;通过参加运算两个数的符号位和结果的符号位进行异或(为0没溢出,为1则溢出)

 

4.8088/8086 CPU的特点:采用并行流水线工作方式(通过在执行单元(EU)和总线接口单元(BIU)之间设置指令预取队列实现), 对内存空间实行分段管理(将内存分为4个段并设置地址段寄存器, 以实现对1MB物理空间的寻址)

4.1地址线和数据线:20位地址线,8088的外部总线宽度是8位, 8086为16位;代表一次只能处理16/8位数据。

4.2主要引脚信号:比如INTR: 可屏蔽中断(可以忽略中断)请求输入端;NMI: 非屏蔽中断(必须给予处理该中断)请求输入端;INTA: 中断响应输出端

4.3指令预取队列的存在使EU和BIU两个部分可同时进行工作,实现了指令的并行执行

4.4内部寄存器的类型:含14个16位寄存器, 按功能可分为三类

  • 8个通用寄存器(AX累加器, BX基址寄存器(存在数据段), CX计数寄存器, DX数据寄存器,SP栈顶指针寄存器, BP基址指针寄存器(存在堆栈段),SI源变址寄存器, DI目标变址寄存器),
  • 4个段寄存器(CS(代码段寄存器, 存放代码段的段基地址),DS(数据段寄存器 , 存放数据段的段基地址),ES(附加段寄存器, 存放数据段的段基地址)SS(堆栈段寄存器, 存放堆栈段的段基地址)),
  • 2个控制寄存器(IP(指令指针),FLAGS(状态标志寄存器))

只有AX和CX中的内容一定为参加运算的数据,其余通用寄存器中的内容可能是数据, 也可能是存放数据的地址;

SP中的内容通常为堆栈段的栈顶地址;

IP中的内容为下一条要取的指令的偏移地址;

FLAGS中有9位标志位

实际编程中通常只给出偏移地址,段地址(操作系统决定)
 

 

5.存储器寻址:需要管理1MB内存,地址线比数据线多4根,需要将地址进行变换使用分段的思想通过逻辑地址向物理地址进行变换

5.1内存编址:内存每个单元的地址在逻辑上都由两部分组成:段地址(指示存储单元在整个内存空间中处于哪个区域),段内地址(相对地址/偏移地址;指示存储单元在段中的相对位置)

5.2映射方式:物理地址=段基地址×16+偏移地址;物理地址由段基地址和偏移地址组成

5.3逻辑地址:每个内存单元具有惟一物理地址, 但可能具有多个逻辑地址;不同类型的段可以装入在相同/不同的物理空间;两个逻辑段可以完全重合或部分重合

6.总线:是计算机系统各部件之间传输地址、 数据和控制信息的通道。分为地址总线、数据总线、控制总线;

6.1主要性能指标:总线带宽=位宽(能同时传送的数据位数)*工作频率(总线的工作频率(MHz));

 

第三章:指令系统

1.指令:控制计算机完成某种操作的命令;同一系列机的指令都是兼容的;指令格式:操作码 [目标操作数], [源操作数];

1.1操作数:立即数(表示参加操作的数据本身;不定长可8/16位;只可作为源操作数),寄存器(表示数据存放地址;可作为目的和源操作数);存储器操作数(表示数据存放地址;[偏移地址]表现形式;可作为目的和源操作数)

1.2寻址方式:指令直接给出,存放于寄存器中,存放于存储器中,隐含给出的方式

1.2.1立即寻址:由指令直接给出运算的数据(操作数是立即数)。 立即数只表示运算的数据,无地址含义;MOV AX, 1200H

1.2.2寄存器寻址:参加操作的操作数在CPU的通用寄存器中。MOV AX, BX;

1.2.3直接寻址:指令中直接给出操作数的偏移地址;MOV AX, [1200H](允许段重设ES:);

1.2.4寄存器间接寻址:操作数存放在内存中,数据在内存中的偏移地址为方括号中通用寄存器的内容。MOV AX, [BX];

1.2.5寄存器相对寻址:操作数的偏移地址为寄存器的内容加上一个位移量。MOV AX, [BX+DATA](等价[BX]DATA);

1.2.6基址、变址、相对寻址:操作数的偏移地址为(基址寄存器内容+变址寄存器内容+位移量);MOV AL, [BP][DI]5;

1.2.7隐含寻址:指令中隐含了一个或两个操作数的地址,即操作数在默认的地址中。MUL BL代表AL× BL AX

 

2.指令系统

2.1数据传送类指令:

2.1.1MOV dest, src(拷贝内存); 两操作数字长必须相同;两操作数不允许同时为存储器操作数;两操作数不允许同时为段寄存器;在源操作数是立即数时,目标操作数不能是段寄存器;

2.1.2堆栈操作指令;PUSH WORD PTR[BX]  ,POP WORD PTR[BX];栈底为高地址,栈顶为低地址

2.1.3交换指令,XCHG REG, MEM/REG

2.2地址传送指令:LEA指令,将变量的16位偏移地址写入到目标寄存器;LEA REG, MEM

2.3输入输出指令:输入指令: IN acc, PORT (将端口数据送如累加器), 输出指令 : OUT PORT, acc(将累加器的数据送入端口)

2.4算术运算类指令:

2.4.1加法指令:普通加法指令ADD,带进位位的加法指令ADC,加1指令INC;ADD OPRD1, OPRD2   等价  OPRD1+OPRD2 ~~~OPRD1
2.4.2减法指令:普通减法指令SUB,考虑借位的减法指令SBB,减1指令DEC,比较指令CMP(指令执行的结果不影响目标操作数,仅影响标志位)若 AX ≥ BX  CF=0 、若 AX < BX  CF=1 、 若 AX=BX  CF=0, ZF=1;

2.4.3乘除运算指令:MUL OPR乘法指令采用隐含寻址,隐含的是存放被乘数的累加器AL或AX存放结果的AX, DX

2.5逻辑运算指令:AND OPRD1, OPRD2  两操作数相“与”,结果送目标地址(使某些位清零,使CF和OF清零);OR;NOT;XOR;

2.6移位操作指令:非循环移位指令(逻辑移动SAL/SAR;算术移动SHL/SHR;);循环移位指令(高位补低位/低位补高位)

2.7串操作指令:源串(存放在数据段,偏移地址由SI指定;允许段重设);目标串(必须在附加段,偏移地址由DI指定);重复前缀(无条件重复REP;条件重复REPE/REPNE;自动完成SI/DI/CX的处理;根据ZF的状态决定是否重复执行);串传送 MOVS(将源数据串传送到目标地址);串比较 CMPS(两个数据串的比较;结果不写回目标地址);串扫描 SCAS(在指定存储区域中寻找某个关键字);串装入 LODS(将内存某个区域的数据串依次装入累加器AL/AX);串送存 STOS(用于将内存某个区域置同样的值;比如:置0)

2.8.转移指令:无条件转移指令 和 条件转移指令(通过修改指令的偏移地址段地址实现程序的转移;JNZ(不等于0跳转);JS(等于负跳转);JZ(等于0跳转))

2.9循环控制指令:LOOP(循环次数只由CX寄存器指定);

2.10过程调用指令:CALL(保护断点、获取子过程的入口地址、执行子过程、 恢复断点并且返回原程序。)

2.11中断指令:INT n(使处理器暂时停止正在运行的程序,转去执行一段特殊处理程序,并在处理结束后返回原程序被中断处继续执行的过程。)

 

第四章:汇编语言程序设计

1.操作数:寄存器、存储器、常量(数字常量,字符串常量'abcd'被翻译成Ascii)、变量(段地址,段偏移量,类型字节/字/双字)、表达式

2.取值运算符:OFFSET 取得其后变量的偏移地址MOV BX, OFFSET DATA、SEG 取得其后变量段地址 MOV AX, SEG DATA。类似于LEA取地址指令

3.属性运算符:用于指定其后存储器操作数的类型  MOV BYTR PTR[BX], 12H

4.常用伪指令

4.1数据定义伪指令:DB(Define Byte)为字节型、DW 为字类型、DD 为双字型DATA1 DB 11H, 22H, 33H, 44H

重复操作符  当同样的操作数重复多次时,可以使用重复操作符。M1 DB 10 DUP(0)。“? ” 表示随机值

4.2符号定义伪指令:符号名 EQU 表达式   进行赋值。

4.3段定义伪指令:段名 SEGMENT  ...    段名 ENDS 。段寄存器伪指令   ASSUME 段寄存器名:段名...

4.4结束伪指令:表示源程序结束  END [标号]

4.5过程定义伪指令:定义函数体,可以调用

4.6宏命令伪指令:需要多次使用同一个程序段时,可以将该程序段定义为一个宏

5.系统功能调用:DOS功能(设备管理, 目录管理, 文件管理;用软中断指令调用,中断类型码固定为21H;功能号装入AH)与BIOS功能均通过中断方式调用

5.1DOS功能调用:单字符输入  调用方法:  MOV AH, 01    /   INT 21H   输入的字符在AL中

单字符显示输出  AH 功能号 2      DL  待输出字符     INT 21H  ;最终在屏幕显示
 

 

第五章:存储器系统

1.随机存取存储器( RAM):静态存储器(SRAM;双稳态电路;高速缓存)、动态存储器(DRAM;电容电路,需要定时刷新;主内存)

2.只读存储器(ROM):只读存储器(外存)

3.虚拟存储器:由主内存和部分外存构成,主要由操作系统管理。

4.全地址译码:用全部的高位地址信号作为译码信号, 使得存储器芯片的每一个单元都占据一个唯一的内存地址。

5.部分地址译码:用部分高位地址信号(而不是全部) 作为译码信号, 使得被选中存储器芯片占有几组不同的地址范围。

6.存储器扩展:存储容量等于  单元数× 每单元的位数

6.1位扩展:扩展字长必;必须同时被选中或同时不被选中、将每片的地址线、控制线并联,数据线分别引出。

6.2字扩展:扩展单元数;在任一时刻,保证所连接的芯片只有1片被选中

6.3字位扩展:既扩展字长也扩展单元数;首先进行位扩展、在进行字扩展

 

第六章:输入/输出和中断技术

1.I/O接口:解决速度匹配、信息格式等问题;每个接口中含1个或多个端口;

1.18088/8086的I/O端口编址:访问端口时仅使用地址总线的  A15~A0;

2.基本输入/输出方法

2.1无条件传送:要求外设总是处于准备好状态;只适用于简单外设,比如一直运作的发光二极管;

2.2查询方式传送:仅当条件满足时才能进行数据传送,cpu不停地访问查看是否准备好,CPU效率低,数据传送的实时性差

2.3中断方式传送:外设在需要时向CPU提出请求, CPU再去为它服务,cpu效率高,数据传输实时性好

2.4直接存储器存取(DMA):外设直接与存储器进行数据交换 , CPU不再担当数据传输的中介者,解放了cpu

3.中断:发生特殊事件引起cpu暂停正在运行的程序,转而去执行中断服务子程序,处理完成之后返回被中断的程序继续执行。

3.1中断类型:内部中断(异常中断 异常事件引起/软件错误,软件中断  中断指令引起/系统调用);外部中断(可屏蔽中断  INTR中断,非屏蔽中断   NMI中断)

3.2中断的一般过程:中断请求(INTR信号)、中断源识别及中断判优(中断控制器8259A)、中断响应(保存当前程序--入栈,获得中断服务子程序的首地址--从中断向量表获得---低字为段内偏移, 高字为段基址;)、中断处理(执行中断服务子程序)、中断返回(出栈--恢复当前程序)


 

第七章:常用数字接口电路

1.可编程并行接口芯片:可以通过软件命令,控制芯片的工作方式 (数据传输方向 ,输入/输出方式)。

2.8253芯片:可实现计数和定时;减法计数;计数值减为0时输出相应控制信号;

2.1外部引线及内部结构:三个可独立工作的16位定时/计数器,一个控制寄存器。共占用4个端口地址。 4个端口的地址编码使用A1/A0进行选择。

2.2计数启动方式:软件启动  GATE端为高电平;硬件启动   GATE端有一个上升沿

3.8255芯片:主要用于数据的输入或输出;既可作为输入端口,也可以作输出端口;

3.1结构:含3个独立的8位并行输入/输出端口、一个控制寄存器。共占用4个端口地址。 4个端口的地址编码使用A1/A0进行选择。

3.2工作方式:基本输入/输出方式(方式0;三个独立的8位简单接口;半双工模式;适用于无条件或查询方式传输)、选通工作方式(方式1;A口、 B口作输入或输出口, C口的部分位用作选通控制信号;半双工;用于中断控制方式下的传输)、双向传送方式(方式2;双向输入输出方式;只有A端口可工作在方式2下)

 

 

 

 

 

 

 

你可能感兴趣的:(微机原理)