第一章 计算机系统
一、微机系统的基本组成
1.微型计算机系统由硬件和软件两个部分组成。 (1)硬件:
①冯●诺依曼计算机体系结构的五个组成部分:运算器,控制器,存储器,输入设备,输入设备。其特点是以运算器为中心。
②现代主流的微机是由冯●诺依曼型改进的,以存储器为中心。 ③冯●诺依曼计算机基本特点: 核心思想:存储程序; 基本部件:五大部件; 信息存储方式:二进制;
命令方式:操作码(功能)+地址码(地址),统称机器指令; 工作方式:按地址顺序自动执行指令。 (2)软件:
系统软件:操作系统、数据库、编译软件 应用软件:文字处理、信息管理(MIS)、控制软件 二、系统结构
系统总线可分为3类:数据总线DB(Data Bus),地址总线AB(Address Bus),控制总线CB(Control Bus)。
根据总线结构组织方式不同,可分为单总线、双总线和双重总线3类。
总线特点:连接或扩展非常灵活,有更大的灵活性和更好的可扩展性。 三、工作过程
微机的工作过程就是程序的执行过程,即不断地从存储器中取出指令,然后执行指令的过程。
★例:让计算机实现以下任务:计算100+100H=?并将结果保存在16920H的字单元内。 编程运行条件:CS=1000H,IP=100H,DS=1492H 将机器指令装入计算机的存储器 计算机自动地进行计算(执行)
1
计算机工作过程大致描述:
(1)分别从CS和IP寄存器中取出1000和100经地址加法器运算后,通过总线控制,找到对应地址的机器指令,第一条汇编指令的第一个机器指令为B8,对应的地址为10100H;将B8取出,通过总线和指令队列到达执行部分电路控制,给CPU发出信号。
(2)IP具有自动加1功能,所以,此时,分别从CS和IP寄存器中取出1000和101经地址加法器运算后,通过总线控制,找到对应地址的机器指令,第一条汇编指令的第二个机器指令为64,对应的地址为10101H;将64取出,通过总线和指令队列,将该机器指令存入寄存器AL中;
(3)分别从CS和IP寄存器中取出1000和102经地址加法器运算后,通过总线控制,找到对应地址的机器指令,第一条汇编指令的第三个机器指令为00,对应的地址为10102H;将00取出,通过总线和指令队列,将该机器指令存入寄存器AH中;
(4)分别从CS和IP寄存器中取出1000和103经地址加法器运算后,通过总线控制,找到对应地址的机器指令,第二条汇编指令的第一个机器指令为05,对应的地址为10103H;将05取出,通过总线和指令队列到达执行部分电路控制,给CPU发出信号,此时,从寄存器AX中取出第一条汇编指令的数据放入ALU中;
(5)分别从CS和IP寄存器中取出1000和104经地址加法器运算后,通过总线控制,找到对应地址的机器指令,第二条汇编指令的第二个机器指令为00,对应的地址为10104H;将00取出,通过总线和指令队列,将该机器指令放入ALU中;
(6)分别从CS和IP寄存器中取出1000和105经地址加法器运算后,通过总线控制,找到对应地址的机器指令,第二条汇编指令的第三个机器指令为01,对应的地址为10105H;将01取出,通过总线和指令队列,将该机器指令放入ALU中,此时,在ALU中自动计算求和,并将结果放回寄存器AX中。
(7)分别从CS和IP寄存器中取出1000和106经地址加法器运算后,通过总线控制,找到对应地址的机器指令,第三条汇编指令的第一个机器指令为A3,对应的地址为10106H;将A3取出,通过总线和指令队列到达执行部分电路控制,给CPU发出信号,此时,将AX寄存器中的数据取出,通过内部寄存器,放入总线控制里。
(8)分别从CS和IP寄存器中取出1000和107经地址加法器运算后,通过总线控制,找到对应地址的机器指令,第三条汇编指令的第二个机器指令为00,对应的地址为10107H;将00取出,通过总线和指令队列放入内部寄存器。
(9)分别从CS和IP寄存器中取出1000和107经地址加法器运算后,通过总线控制,找到对应地址的机器指令,第三条汇编指令的第三个机器指令为20,对应的地址为10108H;将20取出,通过总线和指令队列放入内部寄存器。
(10)分别从DS和内部寄存器中取出1492和2000经地址加法器运算后,通过总线控制,找到对应的地址16920H,将已计算的结果64放入该地址,由于结果占两个字节,所以将01放入地址16921H中。 计算结果为0164H。 第二章 计算机的编码
信息=命令+被处理对象(数据) 命令=机器指令 汇编指令
被处理对象=数+文(字符、汉字、图形) 一、计算机的数制
二进制数:逢二进一,符号B,机器使用(0:低电平,1:高电平) 八进制数:逢八进一,符号Q 十进制数:逢十进一,符号D
2
十六进制数:逢十六进一,符号H 数制转换:
位权:十进制:10n ,二进制:2n ,八进制:8n ,十六进制:16n 。 八进制以0开头,十六进制以0x开头 二、计算机的信息编码 1.BCD编码(8421码):将十进制数的
每一位数字直接用等值4位二进制数表示。
十进制整数256用BCD码表示,则为(0010 0101 0110)BCD 2. 二进制数的算术运算:加、减、乘、除 二进制加法的运算规则: (1)0+0=0 (2)0+1=1
(3)1+1=0 进位1 (4)1+1+1=1 进位1 二进制减法的运算规则: (1)0-0=0 (2)1-1=0 (3)1-0=1
(4)0-1=1 借位1 二进制乘法的运算规则: (1)0×0=0 (2)0×1=0 (3)1×0=0 (4)1×1=1
3. 二进制数的逻辑运算
3种基本运算:逻辑加法(或运算)、 逻辑乘法(与运算)和逻辑否定(非运算)与运算规则为:
0×1=0或0?1=0或0∧1=0 读成0与1等于0 1×0=0或1?0=0或1∧0=0 读成1与0等于0 1×1=1或1?1=1或1∧1=1 读成1与1等于1 或运算规则为
0+0=0或者0∨0=0 读成0或0等于0 0+1=1或者0∨1=1 读成0或1等于1 1+0=1或者1∨0=1 读成1或0等于1 1+1=1或者1∨1=1 读成1或1等于1 非运算运算规则为: 读成非0等于1 读成非1等于0 异或运算规则为
0⊕0=0 读成0同0异或,结果为0 0⊕1=1 读成0同1异或,结果为1 1⊕0=1 读成1同0异或,结果为1 1⊕1=0 读成1同1异或,结果为0
3
4. 机器数的种类和表示方法
在机器中表示带符号的数有3种表示方法:原码、反码和补码。
所谓数的原码表示,即符号位用0表示正数,而用1表示负数,其余数字位表示数值本身。
正数的反码表示与其原码相同,即符号位用“0”表示正,数字位为数值本身。
负数的反码是将它的正数按位(包括符号位在内)取反而形成的。
正数的补码与其原码相同,即符号位用“0”表正,其余数字位表示数值本身。 负数的补码表示为它的反码加1(即在其低位加1)。 8位二进制反码能表示的数值范围为+127D~-127D。 8位二进制补码所能表示的数值为+127~-128。 三、计算机的指令编码(见第四章 计算机指令系统) 第三章 计算机主机结构 一、8086/8088微处理器
8086微处理器的内部结构:从功能上讲,由两个独立逻辑单元组成,即执行单元EU和总线接口单元BIU。
执行单元EU包括:4个通用寄存器(AX,BX,CX,DX,每个都是16位,又可拆位,拆成2个8位) 4个16位指针与变址寄存器(BP,SP,SI,DI)
16位标志寄存器FLAG(6个状态标志和3个控制标志) 16位算术逻辑单元(ALU) 数据暂存寄存器
EU功能:从BIU取指令并执行指令;计算偏移量。 总线接口单元BIU包括:4个16位段寄存器(CS(代码段寄存器)、DS(数据段寄存器)、SS(堆栈段寄存器)和ES(附加段寄存器)) 16位指令指针寄存器IP(程序计数器) 20位地址加法器和总线控制电路
6字节(8088位4字节)的指令缓冲队列
BIU功能:形成20位物理地址;从存储器中取指令和数据并暂存到指令队列寄存器中。 3、执行部件EU和总线接口部件BIU的总体功能:提高了CUP的执行速度;降低对存储器的存取速度的要求。
4、地址加法器河段寄存器
由IP提供或由EU按寻址方式计算出寻址单元的16位偏移地址(又称为逻辑地址或简称为偏移量),将它与左移4位后的段寄存器的内容同时送到地址加法器进行相加,最后形成一个20位的实际地址(又称为物理地址),以对应存储单元寻址。 要形成某指令码的物理地址(即实际地址),就将IP的值与代码段寄存器CS(Code Segment)左移4位后的内容相加。 【例3.1】假设CS=4000H,IP=0300H,则指令的物理地址PA=4000H×10H+0300H=40300H。
4
逻辑地址=4000H: 0300H。
“段加偏移”的寻址机制:物理地址=段基地址(又称段起始地址=段地址×10H)+偏移地址 逻辑地址:其表达形式为“段地址:段内偏移地址”。 二、8086/8088CPU内部寄存器
设置段寄存器原因:8086/8088系统中,需要用20位物理地址访问1MB的存储空间,但是8086/8088CPU的每个地址寄存器都只是16位,因而采用分段存储结构,每个逻辑段的最长度为64KB。
8086/8088的内部寄存器编程结构共有13个16位寄存器和1个只用了9位的标志寄存器。
8080/8085相当的寄存器:ACHLBCDESP(程序计算器)PCPSW连线表示两个寄存器一起用高8位15AHBHCHDHSPBPSIDIIPFLAGSHCSDSSSESFLAGSL87ALBLCLDL低8位0AX累加器BX基址寄存器CX计数寄存器DX数据寄存器(I/O端口地址寄存器)数据寄存器通用寄存器组8086寄存器组:堆栈指针寄存器(给出栈顶元素的偏移地址)指针寄存器基址指针寄存器(给出堆栈中数据区基地址)变址寄存原变址寄存器(源操作数的偏移地址)器目标变址寄存器(目的操作数的偏移地址)指令指针寄存器状态标志寄存器控制寄存器组
8086/8088的16位标志寄存器F只用了其中的9位作标志位,即6个状态标志位,3个控制标志位。 6个状态标志位: CF(Carry Flag)进位标志:进位或借位时,则CF为1;否则为0。
PF(Parity Flag)奇偶性标志:含有偶数个“1”时,则PF为1;否则为0。 AF(Auxiliary Carry Flag)辅助进位标志:
ZF(Zero Flag)零标志:运算结果为零,ZF为1;否则为0。 SF(Sign Flag)符号标志:OF(Overflow Flag)溢出标志: 3个控制标志位(程序设置(1),清除(0)): DF(Direction Flag)方向标志
IF(Interrupt Enable Flag)中断允许标志 TF(Trap Flag)跟踪(陷阱)标志 三、总线周期
1、时钟周期:时钟脉冲信号的一个循环时间叫一个时钟周期,又称为一个“T”状态,是微处理器工作的最小时间单位 2、总线周期(基准时间):完成一次对存储器或I/O端口的操作所需要的时间。 3、指令周期:执行一条指令所需要的时间。
1个最基本的总线周期由4个时钟周期组成,4个时钟周期又称为4个状态,。 四、8086/8088引脚
地址/数据总线AD15~AD0:分时复用 地址/状态总线:A19/S6~A16/S3:
5
代码段寄存器(存放程序段地址)数据段寄存器(存放数据段段地址)堆栈段寄存器(存放堆栈段地址)附加段寄存器(存放附加段段地址或被处理后的数据)段寄存器组