微机原理试题作业3答案.docx
《微机原理试题作业3答案.docx》由会员分享,可在线阅读,更多相关《微机原理试题作业3答案.docx(16页珍藏版)》请在冰豆网上搜索。
微机原理试题作业3答案
作业3(请同学们作业时,不要改变题号、字体及答案的颜色,仅修改表内答案字母)
第一题得分
第二题得分
第三题得分
总分
一、判断题[30分](在表格内填空,正确填A,错误填B请不要改变字体的颜色)
题号
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
答案
B
B
A
A
A
A
A
A
A
A
A
B
B
A
B
1.不同指令的指令周期是等长的。
2.8086CPU在响应中断时,执行叁个中断响应周期
3.若SS=5310H,SP=0E30H,其物理地址为(53F30H)。
4.8086中断系统分为硬件中断和软件中断两类.
5.若CH=07H,CL=08H,执行指令ADDCH,CL后,AF=(0),CF=(0),OF=(0),
PF=
(1)。
6.指令由(操作码)和(操作数)两个字段构成。
7.条件转移指令JNE的测试条件是(ZF=0)。
8.若用指针(BP)访问存储器,则数据包含在(SS)段中。
9.若AX=1234H,SP=1000H,指令PUSHAX执行后AX=(1234H),SP=(0FFEH)。
10.指令采用(立即)寻址方式时操作数是在代码段中。
11.程序中的转移指令、返回指令以及中断处理都能对CS、IP进行操作。
12.SRAM电源撤除,信息不会丢失。
13.MOV[DI][SI]
14.DMA是一种不需要CPU介入的高速数据传送方式。
15.8086的中断系统中有两类硬中断:
可屏蔽中断和软中断。
二、选择题[60分](在表格内填写正确答案的大写字母,请不要改变字体的颜色,当有多个A时,表示是多选题)
题号
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
答案
C
C
C
C
D
B
A
D
B
D
A
C
A
C
C
题号
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
答案
A
A
D
A
D
D
C
D
D
A
D
B
B
B
A
1.程序中数据定义如下:
DATA1DW?
DATA2DB32DUP(?
)
DATA3DD?
COUNTEQU$-DATA1
此时COUNT的值是(C)。
(A)19(B)39(C)38(D)37
2.执行下列程序段后:
BUFDB01H
……
XORAL,AL
MOVAL,BUF
MOVBL,AL
SALAL,1
ADDAL,BL
XORAL,0FFH
HLT
寄存器AL的值是多少?
寄存器BL的值是多少?
C
(A)①AL=0FFH②BL=1
(B)①AL=0FCH②BL=2
(C)①AL=0FCH②BL=1
(D)①AL=0ECH②BL=1
3.写出下列程序段的功能C
MOVBX,2000H
MOVDS,BX
XORAL,AL
MOVCX,100
AGAIN:
MOV[BX],AL
INCBX
LOOPAGAIN
(A)数据段中以0100H起始的100个单元中的内容置1
(B)数据段中以0100H起始的100个单元中的内容清零
(C)数据段中以2000H起始的64H个单元中的内容清零
(D)数据段中以2000H起始的200个单元中的内容清零
4.写出下列程序段的功能C
LEASI,BUFFER
LEADI,ARRAY
MOVCX,100
XORBL,BL
LP:
CMP[SI],01H
JNZLP1
INCBL
LP1:
INCSI
LOOPLP
MOV[DI],BL
(A)统计以ARRAY为首址的100个单元中数字为1的个数存入BUFFER单元
(B)统计以ARRAY为首址的64H个单元中数字为1的个数存入BUFFER单元
(C)统计以BUFFER为首址的100个单元中数字为1的个数存入ARRAY单元
(D)统计以BUFFER为首址的100个单元中数字为0的个数存入ARRAY单元
5.写出下列程序段的功能D
MOVCX,16
MOVAX,N
MOVBH,0
LP0:
SHLAX,1
JCLP
INCBH
LP:
LOOPLP0
MOVSUM,BH
(A)统计CX字中0的个数
(B)统计CX字中1的个数
(C)统计N字中1的个数
(D)统计N字中0的个数
6.写出下列程序段的功能B
MOVAL,N
ANDAL,0FH
MOVBL,AL
MOVAL,N
SHRAL,4
MOVBH,AL
(A)将将N的内容拆为两部分分别存入AL,BL中
(B)将N的内容拆为两部分分别存入BH,BL中
(C)将N的内容拆为两部分分别存入BH,AL中
(D)将N的内容拆为两部分分别存入AH,BL中
7.执行下列程序段后,AX=?
A
MOVAX,0702H
MOVBH,09H
AAD
DIVBH
(A)AX=0008H
(B)AX=0009H
(C)AX=0007H
(D)AX=0006H
8.下面程序段执行后AL=?
D
ABCDW2152H,3416H,5731H,4684H
MOVBX,OFFSETABC
MOVAL,3
XLAT
(A)AL=16H
(B)AL=52H
(C)AL=67H
(D)AL=34H
9.执行下面的程序段后AX=?
B
MOVCX,5
MOVAX,50
NEXT:
SUBAX,CX
LOOPNEXT
HLT
(A)AX=22H
(B)AX=23H
(C)AX=33H
(D)AX=21H
10.执行下面的程序段后AX=?
D
TABDW1,2,3,4,5,6
ENTRYEQU6
MOVBX,OFFSETTAB
ADDBX,ENTRY
MOVAX,[BX]
(A)AX=0006H
(B)AX=0001H
(C)AX=0002H
(D)AX=0004H
11.执行下面程序段后AX=A
ARRAYDW1,2,3,4,5,6,7,8,9,10
COUNTEQU$-ARRAY
XORAX,AX
MOVCX,COUNT
MOVSI,OFFSETARRAY
NEXT:
ADDAX,[SI]
INCSI
LOOPNEXT
(A)AX=0055H
(B)AX=0555H
(C)AX=5555H
(D)AX=0005H
12.写出下列程序段的功能C
MOVAH,1
INT21H
ANDAL,0FH
MOVBL,AL
MOVAH,1
INT21H
SHLAL,4
ANDAL,BL
将从键盘接受到的两个字符拼在一起
(A)将从键盘接受到的1个字符拼在一起
(B)将从键盘接受到的叁个字符拼在一起
(C)将从键盘接受到的两个字符拼在一起
(D)将从显示接受到的两个字符拼在一起
13.执行下列程序段后A
NDB07H
XORBH,BH
MOVBL,N
RCLBL,1
ADDBH,BL
XORBH,0FFH
HLT
寄存器BH的值是(),寄存器BL的值是()。
(A)BH=0FFH,BL=0EH
(B)BH=0EFH,BL=0EEH
(C)BH=0FH,BL=0EH
(D)BH=0EH,BL=0FFH
14.分析下列程序段C
MOVAL,N
XORAH,AH
MOVCL,4
DIVCL
当N=3CH时,程序执行完后AX=?
(A)AX=000EH
(B)AX=0010H
(C)AX=000FH
(D)AX=00FFH
15.程序段如下:
C
CLC
MOVAL,6
MOVBL,9
ADDAL,BL
MOVBL,AL
DAA
执行上面程序段后,AL=,AF=,BL=
(A)AL=15H,AF=0,BL=FFH
(B)AL=15H,AF=0,BL=0FH
(C)AL=15H,AF=1,BL=0FH
(D)AL=15H,AF=1,BL=00H
16.执行下列指令后A
TABLEDB19H,55H,9CH
LEABX,TABLE
MOVAL,[BX]
XORAL,89H
MOV[BX],AL
寄存器AL的值是
(A)AX=90H
(B)AX=10H
(C)AX=99H
(D)AX=FFH
17.分析下列程序段,说明该程序段执行何种功能。
A
MOVCX,10
MOVDL,30H
NEXT1:
MOVAH,2
INT21H
INCDL
LOOPNEXT1
(A)向屏幕上依次输出0,1,…,9
(B)向屏幕上依次输出30,31,…,39
(C)向屏幕上依次输出9,8,…,0
(D)向屏幕上依次输出21,22,…,29
18.执行下列指令后D
MOVAX,1245H
MOVBX,5689H
ADDAL,BL
MOVCL,AL
MOVAL,AH
ADCAL,BH
DAA
寄存器AL的值是,寄存器CL的值是
(A)AL=12H,CL=45H
(B)AL=56H,CL=89H
(C)AL=68H,CL=CCH
(D)AL=68H,CL=CEH
19.分析下列程序段:
A
MOVAL,N
XORAH,AH
MOVBL,16
DIVBL
当N=57H时,程序执行完后AX=?
(A)AX=0705H
(B)AX=0707H
(C)AX=0700H
(D)AX=00FFH
20.在下面程序的括号中分别填入如下指令:
D
①LOOPXH②LOOPNEXH③LOOPEXH
问在这三种情况下,当程序执行完后,AX、BX、CX、DX四个寄存器中的内容分别是什么?
START:
MOVAX,04
MOVBX,02
MOVCX,03
MOVDX,05
XH:
INCAX
ADDBX,AX
SHRDX,1
()
HLT
(A)
①AX=0007H,BX=0014H,CX=0,DX=0
②AX=0006H,BX=0014H,CX=0,DX=0
③AX=0005H,BX=0007H,CX=0002H,DX=0002H
(B)
①AX=0007H,BX=0014H,CX=0,DX=0
②AX=0007H,BX=0014H,CX=0,DX=0
③AX=0001H,BX=0007H,CX=0002H,DX=0002H
(C)
①AX=0007H,BX=0014H,CX=0,DX=0
②AX=0007H,BX=0014H,CX=0,DX=0
③AX=0005H,BX=0017H,CX=0002H,DX=0002H
(D)
①AX=0007H,BX=0014H,CX=0,DX=0
②AX=0007H,BX=0014H,CX=0,DX=0
③AX=0005H,BX=0007H,CX=0002H,DX=0002H
21.阅读程序,请说出该程序的功能是什么?
D
MOVAX,DATA
MOVDS,AX
LEASI,BUFFER
XORBL,BL
MOVCX,100
AGAIN:
MOVAL,[SI]
TESTAL,1
JNZNEXT
INCBL
NEXT:
INCSI
LOOPAGAIN
HLT
(A)统计以BUFFER为起始地址的64H个单元中奇数的个数。
(B)统计以0100为起始地址的100个单元中偶数的个数。
(C)统计以BUFFER为起始地址的10个单元中偶数的个数。
(D)统计以BUFFER为起始地址的64H个单元中偶数的个数。
22.程序段如下:
C
MOVAL,N
ANDAL,0FH
ADDAL,90H
DAA
ADCAL,40H
MOVRUT,AL
HLT
问:
①若N=5,下列程序执行后AL=?
②该程序段的功能是什么?
(A)①135H②将十六进制数加法
(B)①135H②将十进制数加法
(C)①35H②将十六进制数转换为ASCII码
(D)①35H②将十六进制数转换为BCD码
23.执行下列程序段后:
D
DATASEGMENT
DT1LABLEWORD
DT2DB12H,34H
DATAENDS
………………
MOVAL,DT2
MOVDX,DT1
寄存器AL的值是①,寄存器DX的值是②。
(A)①34H②3412H
(B)①12H②1234H
(C)①23H②3412H
(D)①12H②3412H
24.读下列程序,请说出该程序的功能是什么?
D
DATASEGMENT
SUMDW0
DATAENDS
STACKSEGMENT
DB200DUP(?
)
STACKENDS
CODESEGMENT
ASSUMEDS:
DATA,SS:
STACK,CS:
CODE
START:
MOVAX,DATA
MOVDS,AX
MOVCX,50
MOVAX,0
MOVBX,1
NEXT:
ADDAX,BX
INCBX
INCBX
DECCX
JNENEXT
MOVSUM,AX
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
(A)求从50开始的50个数之和。
(B)求从1开始的50个数之和。
(C)求从1开始的200个数之和。
(D)求从1开始的50个奇数之和。
25.设伪指令定义如下,请画出内存分配示意图。
A
BUFDB?
DW‘AB’
DW‘C’
DW1234H
DB‘EF’
(A)
(B)
(C)
(D)
26.执行下列程序段后:
D
DATASEGMENT
DT1DW8A9BH
DT2DB7CH,6DH
DATAENDS
┇
┇
MOVAX,DT1
MOVBX,OFFSETDT1
MOVSI,OFFSETDT2
寄存器BX的值是①,寄存器SI的值是②。
(A)①、0002H②、0000H
(B)①、0000H②、0001H
(C)①、8A9BH②、0002H
(D)①、0000H②、0002H
27.执行下列指令后:
B
TABLEDB10H,33H,41H
┉┉
MOVBX,OFFSETTABLE
MOVAL,[BX]
XORAL,80H
MOV[BX],AL
寄存器AL的值是多少?
(A)AL=80H
(B)AL=90H
(C)AL=99H
(D)AL=10H
28.执行下列程序段后:
B
DATASEGMENT
N1DW3355H
N2DB23H,89H
DATAENDS
┇
MOVAX,N1
MOVDI,OFFSETN1
MOVBP,OFFSETN2
寄存器DI的值是多少?
寄存器BP的值是多少?
(A)DI=0002HBP=0000H
(B)DI=0000HBP=0002H
(C)DI=3355HBP=2389H
(D)DI=2389HBP=0002H
29.执行下列指令后:
B
DATDB10H,33H,41H
┉┉
LEABX,DAT
MOVAX,SEGDAT
MOVES,AX
MOVAL,ES:
[BX]
XORAL,80H
MOVES:
[BX],AL
寄存器AL的值是多少?
(A)AL=80H
(B)AL=90H
(C)AL=99H
(D)AL=10H
三、选择题[10分](在表格内填写正确答案的大写字母,请不要改变字体的颜色,当有多个A时,表示是多选题)
题号
S1
S2
答案
D
C
1.下列程序是在键盘上输入120个字符,然后将输入反序后显示在屏幕上。
请将程序填写完整。
STACK1SEGMENT
STPDW120DUP(?
)
STACK1ENDS
CODESEGMENT
ASSUMECS:
CODE,SS:
STACK1
START:
MOVAX,STACK1
MOVSS,AX
MOVSP,SIZESTPMOVCX,120
LOOP1:
MOVAH,01H
INT21H
PUSHAX
(S1)
MOVDL,0AH
MOVAH,02H
INT21H
MOVDL,0DH
INT21H
MOVCX,120
LOOP2:
(S2)
MOVAH,02H
INT21H
LOOPLOOP2
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
S1:
(A)LOOPLOOP2
(B)LOOP1LOOP2
(C)LOOP2LOOP1
(D)LOOPLOOP1
S2:
(A)POPBX;MOVDL,AL
(B)POPAX;MOVDL,AH
(C)POPAX;MOVDL,AL
(D)POPCX;MOVDL,AL