微型计算机原理.docx
《微型计算机原理.docx》由会员分享,可在线阅读,更多相关《微型计算机原理.docx(22页珍藏版)》请在冰点文库上搜索。
微型计算机原理
====《汇编语言程序设计》模拟试卷08====
一、填空(每空1分,总共30分)
1.计算机的中央处理机包括:
__________和_________两部分。
2.机器字长为16位,若N1=117,用二进制数和16进制数表示时分别为___________B和________H。
若N2=–117,则[N2]原=______________B,[N2]补=____________________H.
3.若某一存储单元的地址为2000:
2008,则该存储单元的段地址为__________H,偏移地址为___________H,物理地址为_______________H。
4.假设(SS)=2250H,(SP)=0140H,如果在堆栈中存入5个数据,则栈顶的物理地址为_____________H,若又从中取出2个数据,则栈顶的物理地址为_____________H。
6.执行下列两条指令:
MOVBX,9048H
SUBBH,BL
执行后,各标志位分别为:
CF=___,ZF=___,SF=___,OF=___,AF=___。
7.指出下列各指令中源操作数的寻址方式,并计算指令执行后AX的内容。
其中:
(DS)=3000H,(ES)=4000H,(SS)=5000H,(AX)=1200H,(BX)=1300H,
(BP)=1400H,(SI)=1500H,(42000H)=1000H,(51400H)=1280H,(33800H)=2008H。
①MOVAX,1250H;_________________寻址方式,(AX)=__________。
②MOVAX,ES:
[2000H];_______________寻址方式,(AX)=__________。
③MOVAX,[BP];________________寻址方式,(AX)=__________。
④XCHGAX,[BX+SI+1000H];_______________寻址方式,(AX)=__________。
⑤MOVAX,[BX+2500H];________________寻址方式,(AX)=__________。
8.执行下列指令,写出每条指令执行后右边所示的内容:
MOVAL,59H
ADDAL,68H;(AL)=______,CF=_______,AF=_________。
DAA;(AL)=_______。
二.单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干的括号内。
每小题2分,共20分)
1、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是()
A、AX,BX,CX,DXB、BX,BP,SI,DI
C、SP,IP,BP,DXD、CS,DS,ES,SS
2、循环指令LOOPNZ终止循环的条件是()。
A、CX=0,且ZF=0B、CX=0,或ZF=1
C、CX≠0,且ZF=0D、CX≠0,或ZF=1
3、对寄存器AX的内容乘以4的正确指令序列是()。
A、SHRAX,1B、SHLAX,1
SHRAX,1SHL,AX,1
C、ROLAX,1D、RCRAX,1
ROLAX,1RCRAX,1
4、设DH=10H,执行NEGDH指令后,正确的结果是()。
A、DH=10HCF=1B、DH=0F0HCF=0
C、DH=10HCF=0D、DH=0F0HCF=1
5、下面指令执行后,改变AL寄存器内容的指令是()。
A、TESTAL,02HB、ANDAL,BL
C、CMPAL,BLD、ORAL,AL
6、与MOVBX,OFFSETVAR指令完全等效的指令是()。
A、LEABX,VARB、LDSBX,VAR
C、LESBX,VARD、MOVBX,VAR
7、BUFDW10HDUP(3DUP(2,10H),3,5)
上述语句汇编后,为变量BUF分配的存储单元字节数是()。
A、80HB、100HC、124D、192
8、在汇编语言程序的开发过程中使用宏功能的顺序是()。
A、宏定义,宏调用B、宏定义,宏展开
C、宏定义,宏调用,宏展开D、宏定义,宏展开,宏调用
9、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是()。
A、名字项B、操作项
C、操作数项D、注释项
10、完成将BX清零,并使标志寄存器CF清零,下面指令错误的是( )。
A)SUBBX,BX B)XOR BX,BX
C)MOV BX,0 D)AND BX,0000H
三.判断下列指令的正误,若错误,请说明原因或改正。
(每小题2分,共20分)
其中:
VAR1,VAR2为字节变量
1.MOVBX,OFFSETVAR1;()
2.MOVAL,[BX+5];()
3.MOVAX,VAR1;()
4.MOVAX,WORDPTRVAR1+1;()
5.INC[AX];()
6.LEADI,VAR1[BX][SI];()
7.MOV134H,AX;()
8.ADDCS,AX;()
9.MOVVAR1,VAR2;()
10.POPCX;()
四.画出下面所定义的各变量在存储器中的存储情况,并将变量标注到存储单元的右边的。
(5分)
(其中A、B的ASCIIW为41H和42H)
DATA1DB12H
DATA2DD3*20
MESS1DW‘AB’
BUFFERDB2DUP(?
)
MESS2DB‘BA’
五.写出下面的程序片段(不必写完整的上机程序,只写出完成此功能的程序片段)。
(每小题5分,共10分)
1.若要测试AL寄存器中第6位是否为1(但不能改变AL的值),如为1则转移到EXI去执行,否则将其第3、4位变反。
2.有一个首地址为ARRAY的M字数组,试编写一个程序:
求出该数组的内容之和(不考虑溢出),并把结果存入TOTAL中。
六.程序设计题。
(要求写出完整的汇编语言源程序,可以上机调试运行,并给出适当的注释,15分)
在存储器中有一个首地址为ARRAY的N字数组为:
3,5,0,23,–37,49,–52,65,78,0,105要求测试其中正数、0、及负数的个数,正数的个数放在DI中,0的个数放在SI中,并根据N–(DI)–(SI)求得负数的个数放在AX中。
DATASEGMENT
ARRAYDW3,5,0,23,-37,49,-52,65,78,0,105
NDW11
DATAENDS
===《汇编语言程序设计》模拟试卷06====
一、填空(每空1分,总共40分)
1.微型计算机通常由__________,_________,__________,_____________和__________五大部分。
2.设机器字长为16位,若N1=117,用二进制数和16进制数表示时分别为_____________B和__________H。
若N2=–117,则[N2]原=______________B,[N2]补=_______________________H.
3.若某一存储单元的地址为8888:
2001,则该存储单元的段地址为__________H,偏移地址为___________H,物理地址为_______________H。
4.假设(SS)=2250H,(SP)=0140H,如果在堆栈中存入5个数据,则栈顶的物理地址为_____________H,若又从中取出2个数据,则栈顶的物理地址为_____________H。
5.在存储器里以______为单位存储信息;在机器里,访问存储器都是以_____为单位进行的,也就是说,机器是以_____(奇或偶)地址访问存储器的。
6.执行下列两条指令:
MOVBX,7896H
ADDBH,BL
执行后,各标志位分别为:
CF=___,ZF=___,SF=___,OF=___,PF=___。
7.指出下列各指令中源操作数的寻址方式,并计算指令执行后AX的内容。
其中:
(DS)=3000H,(ES)=4000H,(SS)=5000H,(AX)=1200H,(BX)=1300H,
(BP)=1400H,(SI)=1500H,(42000H)=2003H,(51400H)=2002H,(33800H)=2001H。
①MOVAX,1250H;__________________寻址方式,(AX)=__________。
②MOVAX,ES:
[2000H];_____________寻址方式,(AX)=__________。
③MOVAX,[BP];________________寻址方式,(AX)=__________。
④XCHGAX,[BX+SI+1000H];_____________寻址方式,(AX)=__________。
⑤MOVAX,[BX+2500H];______________寻址方式,(AX)=__________。
8.执行下列指令,写出每条指令执行后右边所示的内容:
MOVAL,28H
ADDAL,68H;(AL)=______,CF=_______,AF=_________。
DAA;(AL)=_______。
9.对于下面的数据定义:
DATA1DW10
DATA2DB2,8
DATA3DW100DUP(0)
请写出下列的MOV指令分别被汇编后的指令形式:
MOVBX,((DATA1LT5)AND20)OR((DATA1GE5)AND30)
;__________________________。
MOVSI,TYPEDATA2
;___________________________。
MOVCX,LENGTHDATA3
;__________________________。
MOVCX,SIZEDATA3
;__________________________。
二.判断下列指令是否正确,若错误,请说明原因。
(20分)
其中:
VAR1,VAR2为字节变量。
1.MOVBX,OFFSETVAR1;()
2.MOVAL,[BX+5];()
3.MOVAX,VAR1;()
4.MOVAX,WORDPTRVAR1+1;()
5.INC[AX];()
6.LEADI,VAR1[BX][SI];()
7.MOV2134H,AX;()
8.ADDCS,AX;()
9.MOVVAR1,VAR2;()
10.INC[BX];()
三.画出下面所定义的各变量在存储器中的存储情况,并将变量标注到存储单元的右边的。
(5分)
(其中A、B的ASCIIW为41H和42H)
DATA1DB12H
DATA2DD3*20
MESS1DW‘AB’
BUFFERDB2DUP(?
)
MESS2DB‘BA’
四.写出下面的程序片段(不必写完整的上机程序,只写出完成此功能的程序片段)。
(每小题5分,共10分)
1.假设在数据段中有一字符串string1,其长度为20,要求把它们传送到附加段string2中,假设DS和ES都初始化在同一数据段中。
2.有一个首地址为ARRAY的M字数组,试编写一个程序:
求出该数组的内容之和(不考虑溢出),并把结果存入TOTAL中。
五.宏定义如下,试展开下面的宏调用。
(每题5分,共10分)
1.Dfmess1MACROLAB,NUM,NAME
LAB&NUMDB‘HelloMR.&NAME’,0DH,0AH,0
ENDM;宏调用语句:
Dfmess1Mess,1,Assembly
;宏展开为:
2.Dfmess2MACROMESS
DB‘&MESS’,0DH,0AH,0
ENDS
;宏调用语句:
Dfmess2>90>
Dfmess2%10+5–2
宏展开为:
六.程序设计题。
(要求:
写出完整的汇编语言源程序,可以上机调试运行,并给出适当的注释,15分)
试编写程序,对BUF字节存储区的3个数进行比较,并按比较结果显示如下信息:
1.如果3个数都不相等则显示2
2.如果3个数中有两个相等则显示1
3.如果3个数都相等则显示0
(提示:
自己可以在数据段中随意定义3个数据,然后比较,若第一数和第二数相等,接着比较第三数,相等则显示0,否则显示1;若第一数和第二数不相等,接着比较第三数,相等则显示1,否则显示2).
DATASEGMENT
BUFDB48,50,10
DATAENDS
====《汇编语言程序设计》模拟试卷10====
一、填空(每空1分,总共30分)
1.计算机系统主要包括硬件和软件两部分,其中硬件主要有:
__________,_________,和__________三个主要部分,用系统总线把他们连接在一起;软件主要分为_____________和_________________两大类。
2.225D= B= H
3.已知X=-1011011,求[X]补= 。
4.已知[X]补=11010101,则X= D。
3.若某一存储单元的地址为2609:
3688,则该存储单元的段地址为__________H,偏移地址为___________H,物理地址为_______________H。
5.假设(SS)=2250H,(SP)=0140H,如果在堆栈中存入5个数据,则栈顶的物理地址为_____________H,若又从中取出3个数据,则栈顶的物理地址为_____________H。
6.在8086/8088中,存储器以______为单位存储信息;在机器里,访问存储器都是以_____为单位进行的,也就是说,机器是以_____(奇或偶)地址访问存储器的。
7.执行下列两条指令:
MOVBX,4800H
SUBBL,5
执行后,各标志位分别为:
CF=___,ZF=___,SF=___,OF=___,AF=___。
8.指出下列各指令中源操作数的寻址方式,并计算指令执行后AX的内容。
其中:
(DS)=3000H,(ES)=4000H,(SS)=5000H,(AX)=1200H,(BX)=1300H,(BP)=1400H,(SI)=1500H,(42000H)=1111H,(51400H)=2222H,(33800H)=9999H。
①ADDAX,2008H;__________________寻址方式,(AX)=__________。
②MOVAX,ES:
[2000H];________________寻址方式,(AX)=__________。
③MOVAX,[BP];_________________寻址方式,(AX)=__________。
④XCHGAX,[BX+SI+1000H];________________寻址方式,(AX)=__________。
二.请将下列左边的术语和右边的解释联系起来,在括号中填写响应的代号字母(10分)
1.CPU()A指CPU在交换、加工、存储信息时的基本长度
2.汇编语言()B记录指令操作结果的标志,如OF、SF、ZF、AF、PF、CF
3.机器语言()C由汇编程序在汇编过程中执行的指令
4.指令()D告诉CPU要执行的操作,在程序运行时执行
5.伪指令()E分析、控制并执行指令的部件,由运算器和控制器组成
6.控制标志()F能被计算机直接识别的语言
7.状态标志()G唯一代表存储空间中每个字节单元的地址
8.物理地址()H控制操作的标志,如DF、ZF、TF
9.汇编程序()I用指令的助记符、符号地址、标号等书写程序的语言
10.字长()J把汇编语言程序翻译成机器语言程序的系统程序
三.判断下列指令是否正确,若错误,请说明原因。
(20分)
1.MOVDX,100;()
2.MOVAL,[BX+5];()
3.MOV[1000H],[2000H];()
4.MOVAX,[BX+BP+1000H];()
5.PUSHAX,WORDPTR[SI];()
6.MOVDS,ES;()
7.INC[AX];()
8.OUTCX,AL;()
9.MOV2134H,AX;()
10.ADDCS,AX;()
三.改错题(15分)
下列程序求一组带符号字节数据的平均值,数据的首地址为DATA,数据个数存放在CNT单元,但程序有逻辑错误,请将错误改正过来。
1DSEGSEGMENT
2DATADB100.-100,90,20,-120,60
3CNTDW0005H
4AVERDB?
5DSEGENDS
6CSEGSEGMENT
7ASSUMECS:
CSEG,DS:
DSEG
8MAINPROCFAR
9PUSHDS
10XORDX,DX
11PUSHDX
12MOVAX,DS
13MOVDS,AX
14MOVSI,OFFSETDATA
15MOVCX,OFFSETCNT
16AGAIN:
ADDDL,[SI]
17ADCDH,0
18DECCX
19LOOPAGAIN
20DIVCL
21MOVAVER,AL
22RET
23MAINENDP
24CSEGENDS
25ENDMAIN
四、宏定义如下,试展开下面的宏调用。
(每题5分,共10分)
1.Dfmess1MACROLAB,NUM,NAME
LAB&NUMDB‘HelloMR.&NAME’,0DH,0AH,0
ENDM;宏调用语句:
Dfmess1Mess,5,zhang
;宏展开为:
2.Dfmess2MACROMESS
DB‘&MESS’,0DH,0AH,0
ENDS;宏调用语句:
Dfmess2>90>
Dfmess2%(2008-2000+4)
;宏展开为:
七.程序设计题(要求:
写出完整的汇编语言源程序,包括段的定义,寄存器保护等,并给出适当的注释,15分)
数据X定义如下,试编写程序,计算下面函数的值。
当X<0时,S=2X
当0≤X≤10时,S=3X
当XX>10时,S=4X
DataSegment
XDW34
SDW?
DataEnds
====《汇编语言程序设计》模拟试卷06参考答案====
一、填空(每空1分,总共40分)
1.运算器,控制器,存储器,输入设备,输出设备
2.0000000001110101B,0075H,1000000001110101B,0FF8BH
3.8888H,2001H,8A881H
4.22636H,2263AH
5.字节,字,偶
6.1,0,0,0,0
7.立即寻址2450H
直接寻址2003H
寄存器间接寻址2002H
基址+变址相对寻址2001H
寄存器相对寻址2001H
8.执行下列指令,写出每条指令执行后右边所示的内容:
90,0,1,96
9.MOVBX,30
MOVSI,1
MOVCX,100
MOVCX,200
二.判断下列指令是否正确,若错误,请说明原因。
(20分)
1.(√)
2.(√)
3.(×)类型不匹配
4.(√)
5.(×)AX不能为地址计数器
6.(×)相对基址变址寻址方式形成的值在汇编指令时是未知的
7.(×)立即数不能为目的操作数
8.(×)CX不能为目的操作数
9.(×)存储单元之间不能直接传送
10.(√)
四.写出下面的程序片段(每小题5分,共10分)
1.MOVCX,20
LEASI,string1
LEADI,string2
CLD
MOVSB
2.MOVCX,M
LEASI,ARRAY
MOVAX,0
START:
ADDAX,[SI]
ADDSI,2
LOOPSTART
MOVTOTAL,AX
五.宏定义如下,试展开下面的宏调用。
(每题5分,共10分)
1.1Mess1DB‘HelloMR.Assembly’,0DH,0AH,O
2.1DB‘Thisismyscore>90’,0DH,0AH,O
1DB‘13’,0DH,0AH,O
六.程序设计(15分)
DATASEGMENT
BUFDB48,50,10
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
XORDX,DX
MOVAL,BUF
CMPAL,BUF+1
JZDISP2
CMPAL,BUF+2
JZDISP1
MOVAL,BUF1
CMPAL,BUF2
JZDISP2
MOVDL,32H
MOVAH,02H
INT21H
JMPEXIT
DISP1:
MOVDL,31H
MOVAH,02H
INT21H
JMPEXIT
DISP2:
CMPAL,BUF+2
JNZDISP1
MOVDL,30H
MOVAH,02H
INT21H
EXIT:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
====《汇编语言程序设计》模拟试卷08参考答案====
一、填空(每空1分,总共30分)
1.运算器,控制器。
2.0000000001110101B,0075H,1000000001110101B,0FF8BH3.2000,2008,22008。
4.22636,2263A
6.0,0,0,1,1
7.立即寻址2450H
直