微机原理.docx
《微机原理.docx》由会员分享,可在线阅读,更多相关《微机原理.docx(25页珍藏版)》请在冰豆网上搜索。
微机原理
第一章
1.选择题
(1)C
(2)DA(3)C
3填空
(1)CPU,微型计算机,系统软件,外围设备,微型计算机系统
(2)10,3,12
(3)阶数
(4)10010010B,01000100B,11010110B,FF4EH
(5)3F7H,1C3H,243H,277H,
4简答题
(1)微处理器,微型计算机和微型计算机系统三者有何联系与区别?
微处理器是把原来的中央处理单元CPU的复杂电路(包括运算器和控制器)做在一片或几片大规模集成电路的芯片上。
把这种微缩的CPU大规模集成电路称为微处理器。
微型计算机是以微处理器为核心,再配备上用大规模集成电路工艺制成的存储器和I/O接口就构成了微型计算机。
以微计算机为核心,再配备上系统软件、I/O设备、辅助电路和电源就构成了微机系统。
微型计算机系统包括硬件和软件了两大部分。
(2)试述在计算机中常采用二进制的缘由?
(3)简述如何从补码判断真值的符号?
(4)BCD码与纯二进制数有何区别?
主要区别是二者对应的二进制位所表示的二进制真值不同,
(5)试述机器数的定点和浮点数表示形式。
第2章
2填空题
(1)递增,A7,A5,A3,A1.
(2)地址总线的宽度,00000H~0FFFFFH
(3)寄存器,运算器,控制器;运算和控制
(4)SS,SP
(5)MN/MX
(6)主频,总线宽度
(7)20,16
3简答题
(1)什么是指令周期?
什么是总线周期?
一个总线周期至少包括几个时钟周期?
指令周期是一条指令执行所需的时钟周期,cpu在执行指令过程中,凡需执行访问存储器或访问I/O端口的操作都统一交给BIU的外部总线完成,进行一次访问所需的时间称为一个总线周期。
一般一个基本的总线周期由4个时钟周期组成。
(2)8086CPU在最小模式下构成计算机系统至少应该包括哪几个基本的部分?
(3)8086CPU中,标志寄存器包含哪些标志位?
各标志位为‘0’,‘1’分别表示什么含义?
(4)8086CPU中有哪些通用寄存器和专用寄存器?
说明他们的作用。
(5)在8086CPU中,已知CS寄存器和IP寄存器的内容分别如下所示,请确定其物理地址.
1)CS=1000H,IP=2000H物理地址:
CS*16+IP=10000H+2000H=12000H
2)CS=1234H,IP=0C00H物理地址:
CS*16+IP=12340H+0C00H=12F40H
(6)设(AX)=2345H,(DX)=5219H,请指出两个数据相加或相减后,FLAG中状态标志位的状态.
相加:
CF=0,SF=0,ZF=0,AF=0,OF=0,PF=0
相减:
0010001101000101
1101001000011001
补1010110111100111
1101000100101110
CF=0,SF=1,ZF=0,AF=0,OF=0,PF=0
(7)8086CPU工作在最小模式下:
访问存储器要利用:
M/IO、ALE、BHE、RD、WR、DT/R、DEN、READY和数据、地址总线。
访问I/O要利用:
M/IO、ALE、BHE、RD、WR、DT/R、DEN、READY和数据、地址总线。
当HOLD有效并得到响应时,CPU置高阻的信号有:
数据/地址总线、数据状态总线及M/IO、BHE、RD、WR、DT/R、DEN、INTA。
第三章
P134
1.选择题
(1)D
(2)C(3)A(4)A
2.填空题
(1)递增
(2)60H0
(3)1F02CH
4.请指出下列指令中源操作数和目的操作数的寻址方式。
(1)源操作数为立即寻址,目的操作数为寄存器寻址
(2)源操作数为立即寻址,目的操作数为寄存器间接寻址
(3)源操作数为寄存器间接寻址,目的操作数为寄存器寻址
(4)源操作数为寄存器寻址,目的操作数为寄存器寻址
(5)单一操作数(源操作数)为寄存器寻址
(6)单一操作数(目的操作数)为寄存器寻址
(7)源操作数为相对基址变址寻址,目的操作数为寄存器寻址
(8)源操作数为寄存器间接寻址,目的操作数为寄存器寻址
(9)源操作数为立即寻址和寄存器寻址,目的操作数寄存器寻址
(10)单一操作数为段间直接寻址(相对变址寻址)
5.请写出如下程序片段中每条逻辑运算指令执行后标志ZF、SF、和PF的状态:
MOVAL,0AH;各标志位保持不变
ANDAL,0FH;ZF=0SF=0PF=1
ORAL,04BH;ZF=0SF=0PF=1
XORAL,AL;ZF=1SF=0PF=1
6.请写出如下程序片段中每条算术运算指令执行后标志CF、ZF、SF、OF、PF和AF的状态:
MOVAL,54H;各标志位保持不变
ADDAL,4FH;CF=0ZF=0SF=1OF=1AF=1PF=1
CMPAL,0C1H;CF=1ZF=0SF=1OF=0AF=0PF=1
SUBAL,AL;CF=0ZF=1SF=0OF=0AF=0PF=1
INCAL;CF=0ZF=0SF=OF=0AF=0PF=0
7.(DS)=3000H,(SS)=1500H,(SI)=010CH,(BX)=0870H,(BP)=0500H,指出下列指令的目的操作数字段寻址方式,并计算目的操作数字段的物理地址。
(1)MOV[BX],CX
目的操作数为寄存器间接寻址
目的操作数的物理地址为:
DS×16+0870H=30870H
(2)MOV[1000H],BX
目的操作数为直接寻址
目的操作数的物理地址为:
DS×16+1000H=31000H
(3)MOV[BP],BX
目的操作数为寄存器间接寻址
目的操作数的物理地址为:
SS×16+0500H=15500H
(4)MOV[BP+100],CX
目的操作数为寄存器相对寻址
目的操作数的物理地址为:
SS×16+0500H+64H=15564H
(5)MOV[BX+100][SI],CX
目的操作数为相对基址加变址寻址
目的操作数的物理地址为:
DS×16+0870H+64H+010CH=309E0H
8.指出如下指令哪些是错误的,并说明原因:
(1)MOV[SP],BX
错。
(2)MOVCS,BX
错。
CS寄存器不能赋值,要由装入程序确定
(3)POPCS
错。
CS寄存器不能赋值,要由装入程序确定
(4)JMPBX
对。
(5)SUB[BP+DI-1000],AL
错。
偏移量不能为负。
但编译能通过。
(6)SHLAX,CX
错。
源操作数最大为255,只能是CL,不能是CX
(7)XCHGES:
[BX],AL
对。
(8)LEAAX,[BX+DI]
对。
9.已知(SS)=2800H,(SP)=0010H,(AX)=0FA0H,(BX)=1002H,下列指令连续执行,请指出每条指令执行后SS、SP、AX、BX寄存器中的内容是多少?
PUSHAX;(SS)=2800H,(SP)=000EH,(AX)=0FA0H,(BX)=1002H
PUSHBX;(SS)=2800H,(SP)=000CH,(AX)=0FA0H,(BX)=1002H
POPAX;(SS)=2800H,(SP)=000EH,(AX)=1002H,(BX)=1002H
POPBX;(SS)=2800H,(SP)=0010H,(AX)=1002H,(BX)=0FA0H
10.阅读下列各小题的指令序列,在后面空格中填入该指令序列的执行结果。
(1)MOVBL,26H
MOVAL,95H
ADDAL,BL
DAA
AL=21HBL=26HCF=1
(2)MOVAX,1E54H
STC
MOVDX,95
XORDH,0FFH
SBBAX,DX
AX=1EF5HCF=1
11.已知程序段如下:
CMPAX,BX
JNCK1
JNOK2
JMPK3
假设有以下三组AX、BX值,那么在程序执行后,分别转向哪里?
(1)(AX)=0E301H,(BX)=8F50H
转向K1
(2)(AX)=8F50H,(BX)=0E301H
转向K2
(1)(AX)=147BH,(BX)=80DCH
转向K3
第四章
P183
1.选择题
(1)CB
(2)B(3)B(4)D
3.
(1)DATA1EQUTHISBYTE
DA1DW1234H,567H,89ABH
(2)DATA2DW56H,0BCH,79H,14H
(3)DATA3DB6DUP(‘c’),2DUP(3,3,1),20DUP(?
)
(4)STRINGDB‘HELLOWORLD!
’
4.
DATA1DB00H,0AH,10H
DATA2DB15DUP(04H,3DUP(08H),09H)
DATA3DW6577H,636CH,6D6FH
5.
LEABX,TABLE
MOVBX,OFFSETTABLE
8.
(1)宏展开:
+PUSHAX
+MOVAX,AX
+SUBAX,AX
+CMPAX,0
+JGENEXT(0014)
+MOVBX,AX
+POPAX
(2)调用无效。
语法错误(立即数的使用)。
(3)宏展开:
+PUSHAX
+MOVAX,[BX+SI]
+SUBAX,[BX+SI+X]
+CMPAX,0
+JGENEXT(0025)
+MOVCX,AX
+POPAX
调用无效。
相对基址加变址寻址方式形成的值在汇编时是不知道的。
11.
CMPNMACROX,Y,SUM
PUSHAX
PUSHDX
MOVAL,X
CMPAL,Y
JNCK1
MOVDL,5
MULDL
ADDAX,Y
JMPK2
K1:
MOVAL,Y
MOVDL,5
MULDL
ADDAX,X
K2:
MOVSUM,AX
POPAX
ENDM
12.
DSEGSEGMENT
CHARDB61DUP(?
)
DSEGENDS
CSEGSEGMENT
ASSUMECS:
CSEG,DS:
DSEG
STARTPROCFAR
MOVAX,DSEG
MOVDS,AX
MOVDX,OFFSETCHAR
MOVAH,0AH
INT21H
MOVDX,OFFSETCHAR
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
STARTENDP
CSEGENDS
ENDSTART
微机原理第五章部分习题答案
4、试编写一汇编程序,要求实现将ASCII码表示的两位十进制数转换为一字节二进制数。
DATASEGMENT
ASCDB36H,35H
ASCENDDB?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
DECIBINPROCFAR
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETASC
MOVAL,[BX]
CMPAL,30H
JLEXIT
CMPAL,39H
JGEXIT
SUBAL,30H
MOVDL,[BX+1]
CMPDL,30H
JLEXIT
CMPDL,39H
JGEXIT
SUBDL,30H
MOVCL,10
MULCL
ADDAL,DL
MOVASCEND,AL
EXIT:
MOVAH,4CH
INT21H
DECIBINENDP
CODEENDS
ENDDECIBIN
5.某存储区中存有20个单字节数,试编写一汇编语言分别求出其绝对值并放回原处。
DSEGSEGMENT
MUMDB1,2,3,-9,0,7,5,-4,-7,-11,34,-67,-44,-51,1,3,6,8,9,3
DSEGENDS
CSEGSEGMENT
ASSUMECS:
CSEG,DS:
DSEG
STARTPROCFAR
PUSHDS
XORAX,AX
PUSHAX
MOVAX,DSEG
MOVDS,AX
MOVCX,20
MOVSI,OFFSETMUM
LP1:
MOVAL,[SI]
ANDAL,AL
JNSDONE
NEGAL
DONE:
MOV[SI],AL
INCSI
LOOPLP1
MOVAH,4CH
INT21H
STARTENDP
CSEGENDS
ENDSTART
6、试编写一汇编程序,将AX中的各位取反,然后统计出AX中“0”的个数,将结果保存到CL中。
CODESEGMENT
MAINPROCFAR
ASSUMECS:
CODE
START:
MOVAX,0E001H
MOVDL,0
MOVCL,16
NOTAX
RETEST:
ANDAX,AX
JSSKIP
INCDL
SKIP:
SHLAX,1
LOOPRETEST
MOVCL,DL
EXIT:
MOVAH,4CH
INT21H
MAINENDP
CODEENDS
ENDSTART
12已知a1~a20依次存放在以BUF为首址的数据区,每个数据占两个字节,SUM也是两个字节。
试编程计算SUM=a1+a2+a3+...+a20
DATASEGMENT
DATDW0,1,8,27,64,-9,-5,6,77,-5,55,88,99,33,55,1,3,5,6,87
SUMDW?
DATAENDS
CODESEGMENT
MAINPROCFAR
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAX,0
MOVSUM,AX
MOVSI,OFFSETDAT
MOVCX,20
LP1:
ADDAX,[SI]
INCSI
INCSI
LOOPLP1
MOVSUM,AX
MOVAH,4CH
INT21H
MAINENDP
CODEENDS
ENDSTART
14编一字程序,计算f(t)=at3+bt2+ct+d。
设a,b,c,d,t均为一位十进制数,结果存入RESULT单元。
DATASEGMENT
AA1DB8
BBBDB5
CCCDB5
DDDDB5
TTTDB2
QQQDW3DUP(?
)
RESULTDW?
DATAENDS
CODESEGMENT
MAINPROCFAR
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVSI,OFFSETQQQ
MOVBL,TTT
MOVBH,0
MOVAX,BX
MULBX
MOV[SI],AX;存t2
MULBX
MOV[SI+2],AX;存t3
MOVAL,AA1
MOVAH,0
MULWORDPTR[SI+2]
MOVRESULT,AX
MOVAL,BBB
MOVAH,0
MULWORDPTR[SI]
ADDRESULT,AX
MOVAL,CCC
MULTTT
ADDRESULT,AX
MOVAL,DDD
MOVAH,0
ADDRESULT,AX
MOVCX,RESULT
MOVAH,4CH
INT21H
MAINENDP
CODEENDS
ENDSTART
15求出前20个Fibonacci数,存入数据变量FN开始的区域中。
Fibonacc数的定义为:
f0=0,f1=1,fn+2=fn+fn+1
DATASEGMENT
F1DW0
F2DW1
FNDW20DUP(?
)
RESULTDW?
DATAENDS
CODESEGMENT
MAINPROCFAR
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVCX,18
MOVAX,F1
MOVBX,F2
MOVSI,OFFSETFN
MOV[SI],AX
INCSI
INCSI
MOV[SI],BX
LL:
ADDAX,BX
ADDSI,2
MOV[SI],AX
MOVBX,[SI-2]
LOOPLL
MOVAH,4CH
INT21H
MAINENDP
CODEENDS
ENDSTART
第七章
1,
(1)B
(2)CD(3)B
2,
(1)0100:
48B00100:
48B34
(2)857
(3)中断请求、中断判优、中断响应、中断服务、中断返回
4,PORT0EQU40H
PORT1EQU41H;设置I/O地址号为40H和41H
MOVAL,13H
MOVDX,PORT0
OUTDX,AL;设置ICW1命令字边沿触发方式,单片无级联,需要设置ICW4
INCDX;DX增1,为设置下面的命令字做准备
MOVAL,08H
OUTDX,AL;设置ICW2,中断类型号为从08H开始的8个
MOVAL,09H
OUTDX,AL;设置ICW4一般EOI缓冲方式,全嵌套方式
5,
MOVDX,1207H
INAL,DX
ORAL,01011000B(或者58H)
OUTDX,AL
7,
(1)主片:
08H~0FH
从片:
80H~87H
(2)译码器输入可任选6个地址信号,从片的INT输入可以任选主片除IR5的中断源,下面的程序中选的是IR2
(3)主片初始化程序:
MOVAX,00H
MOVDS,AX
MOVBX,0DH*4
MOVAX,1260H
MOVDS:
[BX],AX
MOVAX,4310H
MOVDS:
[BX+2],AX
MOVAL,11H
OUT30H,AL
MOVAL,08H
OUT31H,AL
MOVAL,04H
OUT31H,AL
MOVAL,1DH
OUT31H,AL
从片初始化程序:
MOVAX,00H
MOVDS,AX
MOVBX,85H*4
MOVAX,2340H
MOVDS:
[BX],AX
MOVAX,4310H
MOVDS:
[BX+2],AX
MOVAL,11H
OUT36H,AL
MOVAL,80H
OUT37H,AL
MOVAL,02H
OUT37H,AL
MOVAL,01H
OUT37H,AL
微机原理习题第8章部分答案
2、I/O接口的主要功能有哪些?
一般有哪两种编址方式?
两种编址方式各自有什么特点?
I/O接口的主要功能有:
(l)解决CPU与外设之间速度不匹配问题
(2)实现信号电平的转换
(3)实现信号格式的转换
I/O端口的编址方式有两种:
统一编址方式和独立编址方式。
(1)统一编址方式(存储器映像寻址)
优点:
1)简化了指令系统的设计,在微处理器指令集中不必包含I/O操作指令;
2)访问I/O设备的指令类型多、功能强,能用访问存储器指令,对I/O设备进行方便、灵活的操作;
3)I/O地址空间可大可小,能根据实际系统上的外设数目来调整。
缺点:
I/O端口占用了存储单元的地址空间,且I/O译码电路变得较复杂。
其次,访问存储器的指令一般要比较长,这样延长了输入输出操作时间。
(2)独立编址方式
优点:
1)可读性好,输入输出指令和访问存储器的指令有明显的区别,使程序清晰;
2)I/O指令长度短,执行的速度快,占用内存空间少;
3)I/O地址译码电路较简单。
缺点:
CPU指令系统中必须有专门的IN和OUT指令,而且这些指令的功能没有访问存储器的指令强。
4、什么是直接存储器存取方式(DMA)?
DMA控制器在CPU与外设的数据传送过程中发挥怎样的作用?
直接存储器传送DMA指将外设的数据不经过CPU直接送入内存储器,或者,从内存储器不经过CPU直接送往外部设备。
DMA控制器的功能:
(1)能向CPU发出总线请求信号
(2)能实行对总线的控制
(3)能发送地址信号并对内存储器寻址
(4)能修改地址指针
(5)能向存储器和外设发出读/写控制信号
(6)能判断DMA传送是否结束
(7)能发出DMA过程结束信号,使CPU能正常工作
7、在8086微机系统中,有一外设的接口地址为2A8H~2AFH,请用74LS128译码器设计符合要求的地址译码电路.
9、一个采用查询式数据传送的输出接口,其数据端口地址为300H,状态端口地址为301H,外设状态位用D7位表示。
如果要将存储器缓冲区DATA中的200个字节数据通过该输出口输出,画出流程图,编写控制程序段。
程序段为:
LEASI,DATA
MOVCX,200
LP1:
MOVDX,301H
NR:
INAL,DX
SHLAL,1
JNCNR
DECDX
MOVAL,[SI]
OUTDX,AL
INCSI
LOOPLP1
微机原理第9章部分习题答案
1、
(1)D
(2)C(3)B(4)D
2、填空题
(1)3,基本输入/输出方式,选通输入/输出方式,双向总线I/O方式
(2)外设响应信号
(3)方式选择控制字,置位/复位控制字
(4)中断允许信号,PC6
3、设8255A的端口A和B均工作与方式1,端口A输出,端口B和C为输入,端口A地址为00C0H。
(1)写出工作方式控制字。
0AFH
(2)编写8255A的初始化程序。
MOVDX,00C3H
MOVAL,0AFH
OUTDX,AL
(3)若要用置位/复位方式将PC2置为1,PC7清0,试写出相应程序。
MOVDX,00C3H
MOVAL,05H
OUTDX,AL
MOVAL,0EH
OUTDX,AL
4、现拟用8255A设计一个3X3的键盘,并通过发光二极管显示按键状态。
要求该键盘能表示数字1~9,且按下1~8按键时,有一个相应的发光二极管点亮