09秋微机原理与接口技术复习题.docx
《09秋微机原理与接口技术复习题.docx》由会员分享,可在线阅读,更多相关《09秋微机原理与接口技术复习题.docx(32页珍藏版)》请在冰豆网上搜索。
![09秋微机原理与接口技术复习题.docx](https://file1.bdocx.com/fileroot1/2023-7/1/02abd122-d79f-4989-8e6c-83364ff2e4d5/02abd122-d79f-4989-8e6c-83364ff2e4d51.gif)
09秋微机原理与接口技术复习题
09微机接口技术复习题
1、假设(CS)=3000H,(DS)=4000H,(ES)=2000H,(SS)=5000H,(AX)=2060H,(BX)=3000H,(CX)=5,(DX)=0,(SI)=2060H,(DI)=3000H,(43000H)=0A006H,(23000H)=0B116H,(33000H)=0F802H,(25060)=00B0H,下列各条指令为单独执行指令,前后无关系,请回到括号中的问题。
(1)SBBAX,BX
完成的是(带借位减法)操作,AX=()
(2)CMPAX,WORDPTR[SI+0FA0H]
完成的是(两个数的比较)操作,AX=()
(3)MULBYTEPTR[BX]
完成的是(两个数的乘法)操作,AX=()
(4)DIVBH
完成的是(两个数的除法)操作,AX=()
(5)SARAX,CL
完成的是()操作,AX=()
2、假设(DS)=2000H,(ES)=3000H,(SS)=4000H,(SP)=100H,(BX)=200H,(SI)=0001,(DI)=0002,(BP)=256,字变量ARRAY偏移地址为0050H,(20250H)=1234H,(40100H)=00A0H,(40102H)=2200H。
执行下列程序段并分析指令执行后的结果,(注意:
不是单条指令),按给出的要求填空回答问题:
(1)MOVAX,[BP][SI]
源操作数物理地址=H,指令执行后(AX)=H
(2)POPAX
源操作数物理地址=H,指令执行后(AX)=H
(3)MOVAL,[BX]
源操作数有效地址=H,指令执行后(AX)=H
(4)LEADI,ARRAY
源操作数的寻址方式是,指令执行后(DI)=H
(5)JMPBX
指令执行后(IP)=H
(6)INCBX
源操作数的寻址方式是
3、指出下列指令的错误,(要求说明错误的原因,并给出正确的写法)
(1)MOVAH,BX
(2)MOV[SI],[BX]
(3)MOVAX,[SI][DI]
(4)MOVBYTEPTR[BX],1000H
(5)MOVDS,BP
4、若给定AX和BX的值如下,
(1)(AX)=14C8H,(BX)=808DH
(2)(AX)=D022H,(BX)=9F70H
(3)(AX)=148DH,(BX)=808DH
(4)(AX)=9F22H,(BX)=9F20H
已知下列程序段,按无符号数计算,说明程序的转向。
ADDAL,BL
JZL1
JCL2
CMPAH,BH
JCL3
JZL4
JMPL5
5、下列标号为什么是非法的?
(1)GET.DATA
(2)1_NUM(3)TEST-DATA
(4)RET(5)NEWITEM
答案:
非法标号:
(1)因为‘.’只允许是标号的第一个字符
(2)第一个字符不能为数字
(3)不允许出现‘-’
(4)不能是保留字,如助记符
(5)不能有空格
6、下面的数据项定义了多少个字节?
DATA_1DB6DUP(4DUP(0FFH))
答案:
24字节
7、对于下面两个数据段,偏移地址为10H和11H的两个字节中的数据是一样的吗?
为什么?
DTSEGSEGMENT|DTSEGSEGMENT
ORG0010H|ORG0010H
DATA1DB72H|DATA1DW7204H
DB04H|DTSEGENDS
DTSEGENDS|
答案:
不一样.分别是72H,04H和04H,72H.存储字时低8位存在低字节,高8位存在高字节.
8、下面的数据项设置了多少个字节?
(1)ASC_DATADB‘1234’
(2)HEX_DATADB1234H
答案:
(1)设置了4个字节
(2)设置了2个字节
9、执行下列指令后,AX寄存器中的内容是什么?
TABLEDW10,20,30,40,50
ENTRYDW3
.
.
.
MOVBX,OFFSETTABLE
ADDBX,ENTRY
MOVAX,[BX]
答案:
(AX)=40
10、指出下列指令的错误:
(1)MOVAH,BX
(2)MOV[SI],[BX](3)MOVAX,[SI][DI]
(4)MOVAX,[BX][BP](5)MOV[BX],ES:
AX(6)MOVBYTEPTR[BX],1000
(7)MOVAX,OFFSET[SI](8)MOVCS,AX(9)MOVDS,BP
答案:
(1)源、目的字长不一致
(2)源、目的不能同时为存贮器寻址方式
(3)基址变址方式不能有SI和DI的组合
(4)基址变址方式不能有BX和BP的组合
(5)在8086寻址方式中,AX不能作为基址寄存器使用,而且源、目的不能同时为存贮器寻址方式
(6)1000超出一个字节的表数范围
(7)OFFSET只用于简单变量,应去掉
(8)CS不能作为目的寄存器
(9)段地址不能直接送入数据段寄存器
11、DATASEGMENT
TABLE_ADDRDW1234H
DATAENDS
.
MOVBX,TABLE_ADDR
LEABX,TABLE_ADDR
请写出上述两条指令执行后,BX寄存器中的内容。
答案:
MOVBX,TABLE_ADDR;执行后(BX)=1234H
LEABX,TABLE_ADDR;执行后(BX)=OFFSETTABLE_ADDR
12编写程序段,比较两个5字节的字符串OLDS和NEWS,如果OLDS字符串与NEWS不同,则执行NEW_LESS,否则顺序执行程序。
答案:
LEASI,OLDS
LEADI,NEWS
MOVCX,5
CLD
REPZCMPSB
JNZNEW_LESS
13.假定AX和BX中的内容为带符号数,CX和DX中的内容为无符号数,请用比较指令和条件转移指令实现以下判断:
(1)若DX的值超过CX的值,则转去执行EXCEED
(2)若BX的值大于AX的值,则转去执行EXCEED
(3)CX中的值为0吗?
若是则转去执行ZERO
(4)BX的值与AX的值相减,会产生溢出吗?
若溢出则转OVERFLOW
(5)若BX的值小于AX的值,则转去执行EQ_SMA
(6)若DX的值低于CX的值,则转去执行EQ_SMA
答案:
(1)CMPDX,CX
JAEXCEED
(2)CMPBX,AX
JGEXCEED
(3)CMPCX,0
JEZERO
(4)SUBBX,AX
JOOVERFLOW
(5)CMPBX,AX
JLEQ_SMA
(6)CMPDX,CX
JBEQ_SMA
14、假如在程序的括号中分别填入指令:
(1)LOOPL20
(2)LOOPNEL20(3)LOOPEL20
试说明在三种情况下,当程序执行完后,AX、BX、CX、DX四个寄存器的内容分别是什么?
TITLEEXLOOP.COM
CODESGSEGMENT
ASSUMECS:
CODESG,DS:
CODESG.SS:
CODESG
ORG100H
BEGIN:
MOVAX,01
MOVBX,02
MOVDX,03
MOVCX,04
L20:
INCAX
ADDBX,AX
SHRDX,1
()
RET
CODESGENDS
ENDBEGIN
答案:
(1)(AX)=5(BX)=16(CX)=0(DX)=0
(2)(AX)=2(BX)=4(CX)=3(DX)=1
(3)(AX)=3(BX)=7(CX)=2(DX)=0
15、变量N1和N2均为2字节的非压缩BCD数码,请写出计算N1与N2之差的指令序列。
答案:
MOVAX,0
MOVAL,N1+1
SUBAL,N2+1
AAS
MOVDL,AL
MOVAL,N1
SBBAL,N2
AAS
MOVDH,AL
16、假设(CS)=3000H,(DS)=4000H,(ES)=2000H,(SS)=5000H,(AX)=2060H,(BX)=3000H,(CX)=5,(DX)=0,(SI)=2060H,(DI)=3000H,(43000H)=0A006H,(23000H)=0B116H,(33000H)=0F802H,(25060)=00B0H,.(SP)=0FFFEH,(CF)=1,(DF)=1,请写出下列各条指令单独执行完后,有关寄存器及存储单元的内容,若影响条件码请给出条件码SF、ZF、OF、CF的值。
(1)SBBAX,BX
(2)CMPAX,WORDPTR[SI+0FA0H]
(3)MULBYTEPTR[BX]
(4)AAM
(5)DIVBH
(6)SARAX,CL
(7)XORAX,0FFE7H
(8)REPSTOSB
(9)JMPWORDPYR[BX]
(10)XCHGAX,ES:
[BX+SI]
答案:
(1)(AX)=0F05FH,(SF)=1,(ZF)=0,(OF)=0,(CF)=1
(2)(SF)=1,(ZF)=0,(OF)=1,(CF)=1
(3)(AX)=0240H,(OF)=1,(CF)=1
(4)(AX)=0906H,(SF)=0,(ZF)=0
(5)(AX)=20ACH
(6)(AX)=0103H,(CF)=0
(7)(AX)=0DF87H,(CF)=0,(OF)=0,(SF)=1,(ZF)=0
(8)(23000H)~(23004H)=60H,不影响标志位
(9)(IP)=0A006H,不影响标志位
(10)(AX)=00B0H,(25060)=2060H,不影响标志位
18、给定(SP)=0100,(SS)=0300,(FLAGS)=0240,存储单元的内容为(00020)=0040,(00022)=0100,在段地址为0900及偏移地址为00A0的单元中有一条中断指令INT8,试问执行INT8指令后,SP,SS,IP,FLAGS的内容是什么?
栈顶的三个字是什么?
答案:
(SP)=00FA
(SS)=0300
(IP)=0040
(FLAGS)=0040
堆栈内容:
00A1H
0900H
0240H
19、完成下列的填空
1).CPU中运算器的功能主要是()。
A.算数运算B.逻辑运算C.函数运算D.算数运算和逻辑运算
2)..CPU与外设间数据传送的控制方式有()。
A.中断方式B.程序控制方式C.DMA方式D.以上三种都是
3).段地址最多可以为()字节。
A.128KB.64KC.32KD.16K
4).指令MOVAX,MASK[BX][SI]中源操作数的寻址方式为()。
A.寄存器寻址B.变址寻址C.基址变址寻址D.相对基址变址寻址
5).EPROM是指()。
A.随机读写存储器B.可编程只读存储器
C.只读存储器D.可擦除可编程只读存储器
6).堆栈的工作方式是()。
A.先进先出B.随机读写C.只能读出不能写入D.后进先出
7).要使8086CPU工作在最小方式,其引脚MN/MX(非)应接()电平。
A、TTLB、CMOSC、逻辑低D、逻辑高
8). 从8086CPU的功能结构上看,其是由()两部分组成。
A、控制器和20位物理地址加法器B、运算器和总线接口
C、执行单元和总线接口单元D、控制器和运算器
9).某RAM芯片有12条地址线,它的容量为()。
A)1024KB)4MC)8MD)16M
10).8086/8088在内存00000H~003FFH空间建立了一个中断向量表,可容纳()个中断向量
A)1024B)256B)1MC)512
11).8086/8088的四个通用寄存器分别是()
A)AX、BX、CX、DXB)AX、BX、SI、DX
B)AX、BX、SI、DIC)AX、BX、CX、BP
12).8086微机系统中的中断向量地址是()
A)子程序入口地址B)中断服务程序入口地址
B)存放中断向量的地址C)中断服务程序入口地址的地址
13).在异步串行通信中,若采用8位数据、一位奇偶校验位、一位起始位、一位停止位的字符格式,当波特率为2400bps,则每秒钟能传送的数据字节数最多为()
A)180B)218B)240C)300
14).8255使用了(3)个端口地址
A)1B)2B)3C)4
15).8253的输入脉冲的频率为1MHZ,要求输出为2KHZ的方波信号,它的初值为()
A)01F1HB)01F2HB)01F3HC)01F4H
16)、LOOP指令执行时,隐含的寄存器为()
A)AXB)BXC)CXD)DX
17)、每当CPU执行指令时,决定指令的物理地址的寄存器是()
A)SS,SPB)DS,DX
B)CS,IPC)SI,DI
18)、若程序段中定义一个缓冲区,执行BUFFERDD10DUP(?
)后,则缓冲区的容量是()
A)10BYTEB)20BYTE
C)40BYTED)100BYTE
19)、在8088CPU中,用于堆栈操作指令的寄存器是()
A)AXB)BXC)SPD)SI
20)、在异步串行通信中,若采用7位数据、一位奇偶校验位、一位起始位、一位停止位的字符格式,当波特率为2400bps,则每秒钟能传送的数据字节数最多为()
A)180B)218B)240C)300
21)、指令MOVAX,MASK[BX][SI]中源操作数的寻址方式为()。
A)寄存器寻址B)变址寻址C)基址变址寻址D)相对基址变址寻址
22)、8086在对存储器做读操作时,WR、RD、M/IO三条线的逻辑电平为()
A)1、1、1B)1、0、1C)0、0、0D)0、1、1
23)、8088在访问数据段及堆栈段的偏移量分别由( )提供。
A)DS、CSB)ES、DSC)DS、ESD)SS、SP
24)8086汇编指令通常由()两部分组成。
A)指令标号与指令助记符B)指令标号与操作数C)操作数与注释D)指令助记符与操作数
25).假设AL=FFH,执行INCAL指令后不受影响的标志位是()。
A)ZFB)CFC)OFD)AF
26).执行P0P指令后,SP的内容是()
A)(SP)←(SP+1)B)(SP)←(SP-1)C)(SP)←(SP+2)D)(SP)←(SP-2)
20、8086有几个段寄存器?
各自的作用是什么?
答案:
有代码段CS存放代码段的段地址;数据段DS存放数据段的段地址;附加段ES存放附加段的段地址;堆栈段SS存放堆栈段的段地址
21、在8086中,物理地址是怎么组成的?
其计算公式?
答案:
将段寄存器提供的16位段地址左移4位,变为20位地址,然后与各种寻址方式提供的16位有效偏移地址相加,最终得到20位的物理地址。
物理地址=段地址*16+偏移地址
在访问内存时,用户编程使用的是16位的逻辑地址,而BIU使用的是20位的物理地址
22、8086是如何将地址数据复用线分离出来的,画出时序波形图,并给予解释。
答案:
由地址锁存ALE信号的电平来区分地址和数据信号的时间,在ALE为高时,复用线上出现的是地址信号,为低是出现数据信号。
23、什么是8086的中断类型码?
8086的中断向量如何组成?
作用是什么?
中断向量表在存储区的哪个位置?
8259的中断向量是如何组成的?
答:
8086微处理机可处理的每种中断的编号为中断类型码。
中断向量是指中断处理程序的入口地址,由处理器自动寻址。
中断向量表是存放所有类型中断处理程序入口地址的一个默认的内存区域。
在8086系统中,中断类型码乘4得到向量表的入口,从此处读出4字节内容即为中断向量。
高字送CS,低字送IP。
24、在8086的存储器设计中为什么要分奇、偶存储体?
奇、偶存储体分辨由那几个信号线控制?
答案:
8086是一个16位微处理器,其数据总线为16位,但存储器为8位数据线,在读写存储器时,为了实现既可以访问一个字节(字节访问),也可以同时访问两个字节(字访问)。
8086把存储空间它分为偶、奇两个存储体。
用BHE和AO两个信号线来控制来区分是对奇地址还是偶地址读写。
所有的偶地址单元集中于偶存储体,所有的奇地址单元集中于奇存储体。
25、简述中断处理过程?
CPU对中断响应的过程
(1)关中断---响应中断后,首先发出中断响应信号,内部自动完成关中断操作(本级中断源)。
(2)保存断点---响应中断后,停止下一条指令的执行,把当前相关寄存器的内容压入堆栈(必须保存IP和CS的内容,CPU自动完成),为中断返回做好准备。
(3)给出中断入口地址,转入相应的中断服务程序。
(4)恢复现场---完成中断服务后,利用中断服务程序,将原来保存的现场信息从堆栈弹出,恢复CPU内部相关寄存器的内容。
(5)开中断与返回---为使CPU能再次响应中断,在中断服务程序的最后执行开中断,同时紧跟一条返回指令,从堆栈弹出IP、CS(自动完成),恢复原程序的顺序执行。
26、当数据从8255A的C端口读到CPU时,8255A的控制信号
、
、
、A1、AO分别是什么电平?
答案:
=0、
=0、
=1、A1=1,A0=0
27、8086被复位后,以下各寄存器的内容是:
Flag:
;IP:
;CS:
,DS:
,系统从物理地址为存储器地址处取指令执行。
答案:
Flag:
0000H;IP:
0000H;CS:
FFFFH,DS:
0000H,系统从物理地址为FFFF0H存储器地址处取指令执行。
9、正误判断题,如果错误请说明原因
(1)、对一个字数据,当从偶地址存取时需占用2个总线周期,而从奇地址存取时需1个总线周期。
(×)
(2)、数据传送指令:
MOV[1000H],[BX](×)
(3)、堆栈指令:
PUSHAH(×)
(4)、数据传送指令:
MOVAX,BL(×)
(5)、数据传送指令:
MOVDS,1000H(×)
(6)、DMA方式传送数据时不需要CPU的干预,它是不同于程序传送方式的高速度数据传送。
(√)
(7)、数据传送指令:
MOVES,CS(×)
(8)、数据传送指令:
MOVCS,AX(×)
(9)、乘法指令:
MOVAX,BL(×)
(10)、8086/8088CPU执行指令RET与IRET产生的操作是一样的(×)
(11)、根据中断源的不同,中断可以分为外部中断、内部中端和软件中断。
(×)
答案:
中断可以分为外部中断、内部中端。
(12)、数据传送指令:
MOV[1000H],[AL](×)
答案:
存储器之间不能传送数据,MOVAL,[BX];MOV[1000H],AL
(13)、出栈指令:
POPAL(×)
答案:
堆栈操作为字操作;POPAX
(14)、数据传送指令:
MOVAL,BX(×)
答案:
数据长度比一致;MOVAX,BX或MOVAL,BL
(15)、数据传送指令:
MOVDS,[1000H](×)
答案:
存储器的内容不能直接传送到段寄存器,只能用16位通用寄存器传送。
(16)、除法指令:
MOVAX,BL(×)
答案:
目的操作数是隐含为AX或DX:
AX中
(17)、数据传送指令:
MOVES,CS(×)
答案:
段寄存器之间不能传送数据,只能用16位通用寄存器传送
(18)、数据传送指令:
MOVES,AX(√)
(19)、加1指令:
INC[BX](√)
指出下列指令的错误,(要求说明错误的原因,并给出正确的写法)
(1)MOVAH,BX;错,两个操作数位数不一致,应改为:
MOVAH,BH或MOVAX,BX
(2)MOV[SI],[BX];错,两个操作数位数不能都为存储器,应改为:
MOVSI,[BX]
(3)MOVAX,[SI][DI];错,源操作操的组合不对,应改为:
MOV,[BX][SI]
(4)MOVBYTEPTR[BX],1000H;错,目的操作数位数应该为字节,应改为:
BYTEPTR[BX],00H
(5)MOVDS,BP;错,源操作数只能为通用寄存器,应改为:
MOVDS,AX
28、8086在什么时候与什么条件下可以响应一个外部INTR中断请求?
中断向量表在存储器的什么位置?
这个向量表的内容是什么?
答案:
①每执行完一条指令后自动判断是否有中断请求信号,如有则在IF=1的条件下可以响应一个外部INTR中断请求。
②中断向量表在存储器的00000H-003FFH处。
③向量表的内容是中断服务子程序的入口地址。
29、ADC0809模/数转换接口电路中ADDA、ADDB、ADDC三位控制线的作用是什么?
它是多少位的数字量输出?
如果被采样信号的范围为0~5V,最小分辨率多少?
答案:
①ADDA、ADDB、ADDC三位控制线用来控制8路输入中那一路被选中。
②它是8位的数字量输出。
③最小分辨率为5V/255=0.0196V
30、在8086的存储器设计中为什么要分奇、偶存储体?
奇、偶存储体分辨由那几个信号线控制。
(5分)
答案:
8086是一个16位微处理器,其数据总线为16位,但存储器为8位数据线,在读写存储器时,为了实现既可以访问一个字节(字节访问),也可以同时访问两个字节(字访问)。
8086把存储空间它分为偶、奇两个存储体。
用BHE和AO两个信号线来控制来区分是对奇地址还是偶地址读写。
用A0和BHE信号线的状态来分辨奇、偶存储体。
31、什么是8086的中断类型码?
如有外部中断请求,8086如何从8259中得到的中断类型码?
中断向量表的作用是什么?
答:
①8086微处理器可处理的每种中断的编号为