第1章 计算机基础知识
3. 填空:
(1) (1234)10=( )2=( )16
(2) (34.6875)10=( )2=( )16 (3) (271.33)10=( )2=( )16
(4) (101011001001)2=( )10=( )16 (5) (1AB.E)16=( )10=( )2 (6) (10101010.0111)2=( )10=( )16 【解】
(1) (1234)10=( 10011010010 )2=( 4D2 )16 (2) (34.6875)10=( 100010.1011 )2=( 22.B )16 (3) (271.33)10=( 100001111.010101 )2=( 10F.54 )16 (4) (101011001001)2=( 2761 )10=( AC9 )16 (5) (1AB.E)16=( 427.875 )10=(110101011.111 )2 (6) (10101010.0111)2=( 170.4375 )10=( AA.7 )16
4. 已知X=36,Y=-136,Z=-1250,请写出X、Y、Z的16位原码、反码和补码。 【解】
[X]原=0000 0000 0010 0100 [Y]原=1000 0000 1000 1000 [Z]原=1000 0100 1110 0010 [X]反=0000 0000 0010 0100 [Y]反=1111 1111 0111 0111 [Z]反=1111 1011 0001 1101 [X]补=0000 0000 0010 0100 [Y]补=1111 1111 0111 1000 [Z]补=1111 1011 0001 1110
5. 已知[X]补=01010101B,[Y]补=10101010B,[Z]补=1000111111111111B,求X、Y、Z及X+Y、Y-Z的十进制值为多少?
【解】Y-Z运算时Y需要扩展符号位 X=85 Y=-86 Z=-28673
X+Y=01010101B+10101010B=11111111B=-1 Y-Z=11111111 10101010B-10001111 11111111B
=11111111 10101010B+01110000 00000001B =0110 1111 1010 1011B =28587
1
8. 将下列8421BCD码表示为十进制数和二进制数:
(1) 01111001 (2) 001010000101 (3) 011000000111 (4) 010110010000 【解】
(1) 79, 1001111B (2) 285, 100011101B (3) 607, 1001011111B (4) 590, 1001001110B
12. 微型计算机由哪几部分组成,各部分的功能是什么?
【解】微型计算机由运算器、控制器、存储器、输入设备、输出设备五大部分组成。
运算器完成算术运算和逻辑运算;控制器分析命令并指挥协调各部件统一行动完成命令规定的各种动作或操作;存储器存放原始数据、中间结果和最终结果以及程序;输入设备、输出设备与外界交换信息。
13. CPU在内部结构上由哪几部分组成,CPU应具备什么功能? 【解】微处理器(CPU)由运算器和控制器组成。
CPU应具备的功能:对数据进行处理并对处理过程进行控制。
17. 如果某几种CPU的地址总线分别有8、16、20、32条,它们各自能寻址的存储器的容量是多少?
【解】地址总线8条: 2=256B
地址总线16条:2=64KB 地址总线20条:2=1MB 地址总线32条:2=4GB
18. 什么是硬件,什么是软件,硬件和软件的关系如何?
【解】硬件是指组成计算机的各种电子的、机械的、光磁学的物理器件和设备,它们构成了计算机的物理实体。软件则是指为了运行、管理和维护计算机而编制的各种程序及其有关的文档资料的总称。硬件是基础,软件是灵魂,两者既相互独立,又相互依存,缺一不可。硬件和软件合起来才组成一个完整的计算机系统。 19. 说明位、字节、字长的概念及它们之间的关系。
【解】(1) 位(bit)。位是计算机所能表示的最基本最小的数据单位。它只能有两种状态“0”和“1”,即二进制位。
(2) 字(Word)。计算机中作为一个整体参与运算、处理和传送的一串二进制数,是计算机中信息的基本单位。
(3) 字长(Word Length)。计算机中每个字所包含的二进制位数称为字长。 它们之间的关系:字由位构成,字长指每个字所包含的位的个数。
1. 8086 CPU 由哪两部分构成,它们的主要功能是什么?在执行指令期间,EU 能直接访问存储器吗,为什么?
【解】8086CPU由执行部件(EU)和总线接口部件(BIU)两部分组成。
执行部件由内部寄存器组、算术逻辑运算单元(ALU)与标志寄存器(FR)及内部控制逻辑等三部分组成。寄存器用于存储操作数和中间结果;算术逻辑单元完成16位或8位算术逻辑运算,运算结果送上ALU内部数据总线,同时在标志寄存器中建立相应的标志;内部控制
322016
8
2
逻辑电路的主要功能是从指令队列缓冲器中取出指令,对指令进行译码,并产生各种控制信号,控制各部件的协同工作以完成指令的执行过程。
总线接口部件(BIU)负责CPU与存储器、I/O设备之间传送数据、地址、状态及控制信息。
每当EU部件要执行一条指令时,它就从指令队列头部取出指令,后续指令自动向前推进。EU要花几个时钟周期执行指令,指令执行中若需要访问内存或I/O设备,EU就向BIU申请总线周期,若BIU总线空闲,则立即响应,若BIU正在取一条指令,则待取指令操作完成后再响应EU的总线请求。
3. 8086 CPU 中有哪些寄存器,各有什么用途? 【解】8086共有8个16位的内部寄存器,分为两组:
① 通用数据寄存器。四个通用数据寄存器AX、BX、CX、DX均可用作16位寄存器也可用作8位寄存器。用作8位寄存器时分别记为AH、AL、BH、BL、CH、CL、DH、DL。
AX(AH、AL)累加器。有些指令约定以AX(或AL)为源或目的寄存器。实际上大多数情况下,8086的所有通用寄存器均可充当累加器。
BX(BH、BL)基址寄存器。BX可用作间接寻址的地址寄存器和基地址寄存器,BH、BL可用作8位通用数据寄存器。
CX(CH、CL)计数寄存器。CX在循环和串操作中充当计数器,指令执行后CX内容自动修改,因此称为计数寄存器。
DX(DH、DL)数据寄存器。除用作通用寄存器外,在I/O指令中可用作端口地址寄存器,乘除指令中用作辅助累加器。
② 指针和变址寄存器。
BP(Basic Pointer Register)基址指针寄存器。 SP(Stack Pointer Register)堆栈指针寄存器。 SI(Source Index Register)源变址寄存器。 DI(Destination Index Register)目的变址寄存器。
BP、SP称为指针寄存器,用来指示相对于段起始地址的偏移量。BP和SP一般用于堆栈段。SI、DI称为变址寄存器,可用作间接寻址、变址寻址和基址变址寻址的寄存器。SI一般用于数据段,DI一般用于数据段或附加段。
标志寄存器(FR):是一个16位寄存器,算术逻辑单元进行算术逻辑运算后,在标志寄存器中建立相应的标志。
段地址寄存器(CS、DS、SS、ES)。用于存放段地址,根据其主要用途,分为代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS、附加段寄存器ES。
代码段寄存器CS:代码段是存放程序代码的存储区域,代码段寄存器用来存放代码段存储区域的起始地址。
数据段寄存器DS:数据段是存放程序中所使用的数据的存储区域,数据段寄存器用来存放程序的数据存储区的起始地址。
堆栈段寄存器SS:堆栈段寄存器用来存放堆栈存储区的起始地址。由堆栈段寄存器SS与堆栈指针寄存器SP来确定当前堆栈指令的操作地址。
附加段寄存器ES:附加段是为某些字符串操作指令存放目的操作数而设置的一个附加的
3
数据段,附加段寄存器用来存放该附加数据段存储区域的起始地址。
指令指针寄存器(IP)。又称程序计数器,是16位寄存器。IP中存放当前将要执行的指令的有效地址,每取出一条指令IP自动增量,即指向了下一条指令。
指令队列缓冲器:是一个与CPU速度相匹配的高速缓冲寄存器。在EU执行指令的同时,BIU可以从内存中取出下一条或下几条指令放到指令缓冲器中,EU执行完一条指令后,可以立即从指令缓冲器中执行下一条指令。
4. 状态标志与控制标志有何不同,程序中是怎样利用这两类标志的?标志寄存器有哪些标志位,各在什么情况下置位?
【解】状态标志根据算术逻辑运算结果由硬件自动设定,它们反映运算结果的某些特征或状态,可作为后继操作(如条件转移)的判断依据。控制标志由用户通过指令来设定,它们可控制机器或程序的某些运行过程。
标志寄存器的内容如下: 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 CF(Carry Flag)进位标志,反映在运算结果的最高位有无进位或借位。如果运算结果的最高位产生了进位(加法)或借位(减法)则CF=1,否则CF=0。
PF(Parity Flag)奇偶标志,反映运算结果中“1”的个数的奇偶性,主要用于判断数据传送过程中是否出错。若结果的低8位中有偶数个“1”则PF=1,否则PF=0。
AF(Auxiliary Carry Flag)辅助进位标志,又称半进位标志。加减运算时,若D3向D4
产生了进位或借位则AF=1,否则AF=0。在BCD码运算时,该标志用于十进制调整。
ZF(Zero Flag)零标志,反映运算结果是否为0。 若结果为零则ZF=1,否则ZF=0。 SF(Sign Flag)符号标志,反映运算结果最高位即符号位的状态。如果运算结果的最高位为1则SF=1(对带符号数即为负数),否则SF=0(对带符号数即为正数)。
OF(Overflow Flag)溢出标志,反映运算结果是否超出了带符号数的表数范围。若超出了机器的表数的范围,即为产生溢出,则OF=1,否则OF=0。
DF(Direction Flag)方向标志,用于串处理指令中控制串处理的方向。当DF=1时,每次操作后变址寄存器SI、DI自动减量,因此处理方向是由高地址向低地址方向进行。当DF=0,则SI、DI自动增量,处理方向由低地址向高地址方向进行。该标志由方向控制指令STD或CLD设置或清除。
IF(Interrupt Flag)中断允许标志,用于控制CPU是否允许响应可屏蔽中断请求。IF=1为允许响应可屏蔽中断请求,IF=0则禁止响应可屏蔽中断请求。该标志可由中断控制指令STI或CLI设置或清除。
TF(Trap Flag)陷阱标志,用于单步操作。TF=1时,每执行一条用户程序指令后自动产生陷阱,进入系统的单步中断处理程序。TF=0时,用户程序会连续不断地执行,不会产生单步中断。
5. 求出下列运算后各个标志的状态,并说明进位标志和溢出标志的区别。 (1) 1278H + 3469H (2) 54E3H - 27A0H (3) 3881H + 3597H (4) 01E3H - 01E3H
4
相关推荐: