微机原理考试答案

  • 格式:doc
  • 大小:87.50 KB
  • 文档页数:3

简答题1说明微型计算机的基本硬件构成和各部分功能。

微型计算机硬件一般由微处理器、内存储器、外存储器、系统总线、接口电路、输入/输出设备等部件组成。

主要组成部件的功能和特点分析如下:(1)微处理器:是微型计算机的核心部件,由运算单元ALU、控制单元、寄存器组以及总线接口部件等组成,其功能是负责统一协调、管理和控制系统中的各个部件有机地工作。

(2)内存储器:用来存放计算机工作过程中需要的操作数据和程序。

可分为随机存储器RAM和只读存储器ROM。

RAM存放当前参与运行的各种程序和数据,特点是信息可读可写,存取方便,但信息断电后会丢失;ROM用于存放各种固定的程序和数据,特点是信息固定不变,关机后原存储的信息不会丢失。

(3)系统总线:是CPU与其它部件之间传送数据、地址和控制信息的公共通道。

可分成数据总线DB、地址总线AB、控制总线CB。

(4)输入/输出接口电路:完成微型计算机与外部设备之间的信息交换。

由寄存器组、专用存储器和控制电路等组成。

(5)输入/输入设备:是微型计算机系统与外部进行通信联系的主要装置。

常用的有键盘、鼠标、显示器、打印机和扫描仪等。

2.说明微型计算机系统的基本构成。

微型计算机系统包括硬件系统和软件系统两大部分。

一、计算机硬件系统硬件是指组成计算机的各种物理设备,它包括计算机的主机和外部设备。

具体由五大功能部件组成,即:运算器、控制器、存储器、输入设备和输出设备。

这五大部分相互配合,协同工作。

二、计算机软件系统计算机软件系统包括系统软件和应用软件两大类。

1.系统软件系统软件是指控制和协调计算机及其外部设备,支持应用软件的开发和运行的软件。

其主要的功能是进行调度、监控和维护系统等等。

2.应用软件应用软件是用户为解决各种实际问题而编制的计算机应用程序及其有关资料。

10.说明8086CPU组成的系统中为什么必须使用地址锁存器?8086的数据总线和低16位地址总线是采用分时复用的。

当执行存储器读写或I/O读写,在CPU总线周期的T1状态时,作地址总线输出(A15~A0),在其他状态均作为双向数据总线使用。

地址总线的高4位A19~A16也是复用线,但他们是地址/状态复用线。

为了使地址信息在整个总线周期中均保持有效地址,必须设置地址锁存器把T1状态上输出的20条地址信息进行锁存。

11.8086 CPU的最大寻址范围是多少?如何实现对整个地址空间寻址?8086的存储器最大寻址范围为1M字节(地址为00000H~FFFFFH);I/O寻址的最大范围为64K(口地址为0000H~FFFFH)。

对1M存储器的寻址是通过段寄存器来实现的,每个存储器段为64K字节,1M字节的存储器可以分为若干个64KB段,利用段寄存器可寻址整个存储空间。

对I/O空间的寻址可使用直接寻址(对8位口地址);也可使用DX进行间接寻址(对16位口地址)。

第3章习题及参考解答1.指出下列各指令中源操作数和目的操作数的寻址方式。

(1)MOV DI,100(2)MOV CX.100[SI](3)MOV [SI],AX(4)ADD AX,[BX+DI](5)AND AX,BX(6)MOV DX,[1000](7)MOV BX,[BP+DI+100](8)PUSHF(9)SUB [1050],CX(10)AND DH,[BP+4]解源操作数目的操作数(1)立即寻址寄存器寻址(2)变址寻址寄存器寻址(3)寄存器寻址寄存器间接寻址(4)基址加变址寻址寄存器寻址(5)寄存器寻址寄存器寻址(6)直接寻址寄存器寻址(7)基址加变址寻址寄存器寻址(8)寄存器寻址寄存器间接寻址(9)寄存器寻址直接寻址(10)变址寻址寄存器寻址6.若CX=6700H,DX=78FFH,CF=1。

求分别执行指令(1)ADD CX,DX(2)ADC CX,DX(3)SUB CX,DX(5)AND CX,DX(6)OR CX,DX(7)XOR CX,DX后,CX与DX寄存器中的内容,并指出标志寄存器SF,ZF,AF,PF,CF及OF的状态。

解(1)CX=DFFFH,DX=78FFH,SFZFAFPFCFOF=100101B(2)CX=E000H,DX=78FFH,SFZFAFPFCFOF=101101B(3)CX=EE01H,DX=78FFH,SFZFAFPFCFOF=101010B(4)CX=EE00H,DX=78FFH,SFZFAFPFCFOF=101110B(5)CX=6000H,DX=78FFH,SFZFAFPFCFOF=00×100B(6)CX=7FFFH,DX=78FFH,SFZFAFPFCFOF=00×100B (7)CX=1FFFH,DX=78FFH,SFZFAFPFCFOF=00×100B8.若AL=75H,BL=48H,(1)求执行指令ADD AL,BLDAA之后AL=?标志AF=?CF=?并说明BCD码调整情况。

(2)若执行指令SUB AL,BL与DAS后,情况又如何?解(1)AL=23H,AFCF=11B(2)AL=27H,AFCF=10B 9.设X、Y、R、S、Z均为16位无符号数的变量。

按已给定的表达式Z(X+Y)/(R-S)→Z,有程序如下,试在空格处填入适当的指令(注:在加减过程中均无进位和借位)。

MOV AX,X①MOV CX,RSUB CX,S②③MOV Z,AXMOV Z+1,DXHLT解①ADD AX,Y②MUL Z③DIV CX13.若SS=1000H,SP=1000H,AX=1234H,BX=5678H,Flag=2103H,试说明执行指令PUSH BXPUSH AXPUSHFPOP CX之后,SP=?SS=?CX=?并画图指出栈中各单元的内容。

解SS=1000H,SP=0FFCH,CX=2103H栈中各单元内容如下:地址RAM0FFAH 030FFBH 210FFCH 340FFDH 120FFEH 780FFFH 561000H XX14.若DS=1100H,SI=1000H,CS=1200H,IP=100H,[12000H]=2000H,[12002]=1500H,求执行指令(1)CALL FAR[SI]后CS与IP的内容;(2)CALL [SI]后CS与IP的内容。

解(1)CS=1500II,IP=2000H(2)CS=1200H,IP=2000H18.指出下列8086指令中哪些是错误的,错在何处?(1)MOV DL,BX(2)MOV DS,2000H(3)MOV [DI],[SI](4)MOV AX,[BX][BP](5)XCHG CX,[2400H](6)PUSH DH(7)IN AH,DX(8)OUT 01F0H,AX解(1)错。

数据类型不匹配。

(2)错。

立即数不能直接送往段寄存器。

(3)错。

两个内存单元不能直接传送数据。

(4)错。

BX和BP部可作为基址寄存器,缺少变址寄存器。

没有基址加基址寻址方式。

(5)对。

(6)错。

堆栈操作必须是16位数据,DH是8位寄存器。

(7)错。

输入(IN)指令从端口读出的数据需送给累加器AL或AX,送给AH不行。

(8)错。

端口地址为16位时,必须用DX间接寻址。

19.连续执行以下指令,填写执行指令的结果(MEM为存储器物理地址)。

MOV AX,2280HMOV CX.0FFOOHMOV DS,AXMOV SI,CXADD CX,AX ;①CX= H,CF= BMOV[SI],CX ;②[SI]= H.[SI+1]= HADC [SI],AL;③[SI]=H,MEM= HDEC BYTE [SI] ;④[SI]= H,ZFCFPF=BMOV AX,06ADC AX,08 ;⑤AX= H,CFAF= BAAA ;⑥AX= H,CFAF= BADD AL,59H ;⑦AL= H,CFAF= BDAA ;⑧AL= HAND AL,0FHMOV BX,-8NEG BX;⑨BX= HMOV DL,06MUL DL;⑩AX= HOR AX,0FF00HCWD ;⑾AX= HIDIV BX;⑿AX= H,DX= HMOV AH,4CHINT 21H解①CX=2180H,CF=1B②[SI]=80H,[SI+1]=21H③[SI]=01H,MEM=32700H④[SI]=00H,ZFCFPF=111B⑤AX=000FH,CFAF=00B⑥AX=0105H,CFAF=11B⑦AL=5EH,CFAF=00B⑧AL=64H⑨BX=0008H⑩AX=0018H⑾AX=FF18H⑿AX=FFE3H,DX=0000H第4章习题及参考解答1.试编一程序,把地址偏移量为100H单元开始的256个单元分别写入00H,01H,02H,03H,…,FFH数据。

解源程序如下DATA SEGMENTORG 100HBUF1 DB 256 DUP(?)COUNT EQU $-BUF1DATA ENDSSTK SEGMENT STACKDB 100 DUP(?)STK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV SI,OFFSETBUF1 ;戓LEA SI,BUF1MOV CX,COUNTXOR AL,AL;或MOV AL,00HNEXT:MOV [SI],ALINC ALINC SILOOP NEXTMOV AH,4CHINT 21 HCODE ENDSEND START2.统计上题写入的数据块中0元素、正元素、负元素的个数,并分别把统计结果送入上述数据块之后的三个单元中。

解DATA SEGMENTORG 100HBUF1 DB 00H,01H.02H,…,0FEH,0FFH;共256个数据COUNT EOU$-BUF1DB 3 DUP(?)DATA ENDSSTK SEGMENT STACKDB 100 DUP(?)STK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOVS1,OFFSET BUF1MOC CX,COUNTXOR BX,BX ;BL与BH分别存放正、负元素的个数XOR DH,DH ;DH寄存器存放0元素个数NEXT2: MOV AL,[SI]CMP AL,0JZ ZER0 ;若ZF=1,则为0,转至ZERO,DH+1JS NEGAT ;若SF=0则为负数,BH+1INC BL ;既不是0又不是负,则为正数,BL+1JMP NEXT3ZERO:INC DH;0的个数加1JMP NEXT3NEGAT:INC BH ;负数个数加1NEXT3: INC SI ;修改地址指针SILOOP NEXT2 ;未完,继续循环MOV [SI],DH ;存入0元素个数统计结果INC SIMOV [SI],BX ;存入正、负数个数统计结果MOV AH,4CHINT 21HCODE ENDSEND START。