汇编模拟题2附答案.docx
《汇编模拟题2附答案.docx》由会员分享,可在线阅读,更多相关《汇编模拟题2附答案.docx(9页珍藏版)》请在冰豆网上搜索。
![汇编模拟题2附答案.docx](https://file1.bdocx.com/fileroot1/2022-12/7/708a899f-ce3d-40af-b06e-6675cc6cd278/708a899f-ce3d-40af-b06e-6675cc6cd2781.gif)
汇编模拟题2附答案
华南理工大学网络教育学院
《汇编语言》试卷
考试科目:
汇编语言
注意事项:
1.本试卷共7页,满分:
100分,考试时间:
120分钟;
2.所有答案全部写在试卷纸上;
3.考前请将密封线内填写清楚,字迹要工整。
题号
一
二
三
四
五
总分
得分
评卷人
一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,每小题1分,共20分)
1.下列8086CPU的寄存器组中,在段内寻址时可以提供偏移地址的寄存器组是( b )
a、AX,BX,CX,DXb、BX,BP,SI,DI
c、SP,IP,BP,DXd、CS,DS,ES,SS
2.对寄存器AX的内容乘以4的正确指令序列是( B )。
a、SHR AX,1 SHR AX,1b、SHL AX,1 SHLAX,1
c、ROL AX,1 ROL AX,1d、RCR AX,1 RCR AX,1
3.下面指令执行后,改变AL寄存器内容的指令是( D )。
a、TEST AL,02Hb、OR AL,AL
c、CMP AL,BLd、AND AL,BL
4、与MOV BX,OFFSET VAR指令完全等效的指令是( D )。
a、MOV BX,VARb、LDS BX,VAR
c、LES BX,VARd、LEA BX,VAR
5、BUF DW 10H DUP(3 DUP(2,10H),3,5)
上述语句汇编后,为变量BUF分配的存储单元字节数是( b )。
A、80Hb、100Hc、124d、192
6、在汇编语言程序的开发过程中使用宏功能的顺序是( c )。
a、宏定义,宏调用b、宏定义,宏展开
c、宏定义,宏调用,宏展开d、宏定义,宏展开,宏调用
7、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是( B )。
a、名字项b、操作项c、操作数项d、注释项
8、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有( D )。
a.CMPb.SUBc.ANDd.MOV
9.设ES=3000H,DI=00FFH,CX=0005H,AL=41H,DF=0,从300FFH开始的连续5个字节单元内容分别是44H,43H,42H,41H,41H。
执行REPNZSCASB指令后,正确的结果是(b)
a.DI=0104H,CX=0000H b.DI=0103H,CX=0001H
c.DI=0102H,CX=0002H d.DI=0101H,CX=0003H
10.某数据段如下:
DATASEGMENT
ORG20H
XDB12H
YDW789AH
DATAENDS
Y单元的偏移址是(C)
a.0 b.20H c.21H d.12H
11.在下列段寄存器中,代码段寄存器是(B)。
a.ES b.CS c.DS d.SS
12.设物理地址(10FF0)=10H,(10FF1H)=20H,(10FF2H)=30H,如从地址10FF1H中取出一个字的内容是(B)。
a.1020H b.3020H c.2030H d.2010H
13.完成将累加器AX清零,下面错误的指令是(C)。
a.SUBAX,AX b.XORAX,AX
c.ORAX,00H d.ANDAX,00H
14.设DS=5788H,偏移地址为94H,该字节的物理地址(B)。
a.57974H b. 57914H c.5883H d.58ECH
15.如AX=1000H
NEGAX
NEGAX
上述两条指令执行后,AX的值为(C)。
a.1001H b.1002H c.1000H d.0F000H
16.为了使执行串操作指令时,地址按减量方式处理应使用的指令是(A)。
a.STD b.STI c.CLD d.CLI
17.在执行POP[BX]指令,寻找目的操作数时,段地址和偏移地址分别是在(B)。
a.无段地址和偏移地址 b.在DS和BX中
c.在ES和BX中 d.在SS和SP中
18.下面所列通用数据传送指令的几种传送中,错误的传送方式是(D)。
a.从累加器到存储器 b.立即数到存储器
c.从寄存器到存储器 d.从存储器到存储器
19.XORAH,AH
MOVAL,90H
CWD
执行上述指令后,结果是(C)。
a.DX:
AX=0000:
FF90H b.DX:
AX=FFFF:
0090H
c.DX:
AX=0000:
0090H d.DX:
AX=FFFF:
FF90H
20.下面对伪指令语句的说明,正确的是(C)。
a.汇编程序将伪指令翻译成机器码
b.伪指令是在执行时完成其功能
c.伪指令的功能是指示、引导汇编程序在汇编过程中完成其不同操作
d.当汇编结束后,目标程序中仍保留有伪指令
二、填空题(每小题2分,共12分)
1.用IP 寄存器与 CS段寄存器联合确定下一条指令的物理地址。
2.AX寄存器清0的一条逻辑指令是 XORAX,AX或 SUBAX,AX 。
3.汇编语言源程序中的语句有三种类型,它们是指令语句、 宏指令 语句和 伪指令 语句。
4.设数据段的段地址为2A66H,其中某数组中第5个字节存储单元的物理地址为2A835H,试问该数组中首字节的偏移地址是 01D1H 。
5.ARY DW 10 DUP(?
)
……
MOV AL,TYPE ARY;执行后(AL)=02H
MOV CL,SIZE ARY;执行后(CL)=20
6.某数据段:
DATA SEGMENT
ORG 100H
NUM1=8
NUM2=NUM1+10H
DA1 DB 'COMPUTER'
DB 0AH,0DH
COUNT EQU $-DA1
DA2 DW'CO','MP','UT','ER'
DATA ENDS
试回答:
COUNT的值是_10,DA2+5字节单元的内容是_’U’
三、程序分析题(每小题5分,共20分)
1.设寄存器AL,BL,CL中内容均为76H,
XORAL,0FH
AND BL,0FH
OR CL,0FH
执行上述指令序列后,(AL)=____79H,(BL)=_06H,(CL)=__7FH____。
2.DA_BYDB83H,72H,61H,94H,5AH
MOVCX,WORDPTRDA_BY;(CX)=7283H
ANDCX,0FH;(CX)=0083H
MOVAL,DA_BY+3;(AL)=94H
SHLAL,CL;(AL)=40H
上述指令序列执行后,(AL)= A0H , (CL)= 03H .
3.ADBX
……
MOVAX,0
MOVAL,BYTEPTRA
MOVCL,10
MULCL
该程序段完成的功能的数学表达式是AX=AL×CL,结果放在AX 中.
4.ORG1000H
DA1DB?
……
LEABX,DA1
MOVCX,BX
NEXT:
ADDBX,1
LOOPNEXT
变量DA1的偏移地址= 1000H ,程序段执行后(BX)= 2000H
四、程序填空题(每空只能填一条指令!
每小题6分,共18分)
1.下面程序段是判断寄存器AH和AL中第3位是否相同,如相同,AH置0,否则AH置全1。
试把空白处填上适当指令。
(1)XORAH,AL
AND AH,08H
(2)__JZZERO
MOV AH,OFFH
JMP NEXT
ZERO:
MOV AH,0
NEXT:
……
2.下面程序段的功能是把DA1数据区的数0-9转换为对应的ASCII码,并存入ASCI数据区。
试完善本程序段。
DA1DB00H,01H,02H,03H,04H,05H,06H,07H,08H,09H
ASCIDB10DUP(?
)
CUNT=ASCI-DA1
……
LEASI,DA1
LEADI,ASCI
(3) MOVCX,10
LOP1:
MOVAL,[SI]
(4)ADDAL,30H
MOV[DI],AL
INCSI
INCDI
LOOPLOP1
3.设A,B是长度为10的字节数组,用串操作指令编写程序实现A,B两数组内容的相互交换。
试完善本程序。
DATASEGMENT
ADB0AH,9,8,7,6,5,4,3,2,1
ORG0010H
BDB1,2,3,4,5,6,7,8,9,0AH
DATAENDS
……
LEASI,A
LEADI,B
MOVCX,10
LOP:
LODSB;al=a+0
XCHGAL,[DI];al=b+0;b+0=al
(5) XCHGSI,DI
DECDI
STOSB
(6) XCHGSI,DI
INCDI
LOOPLOP
五、编制程序题(第1小题10,第2小题20,共30分)
1.写出程序片段,用DOS的1号功能调用通过键盘输入一字符,并判断输入的字符。
如字符是"Y",则转向YES程序段;如字符是"N",则转向NO程序段;如是其他字符,则转向DOS功能调用,重新输入字符。
(注:
YES和NO分别是两程序段入口处的标号。
DOS键盘输入功能调用的入口参数:
(AH)=1,出口参数:
(AL)=输入字符的ASCII码。
DSEGSEGMENT
MESS1DB'enteraKEY,please:
$'
MESS3DB'resultis$'
DSEGENDS
CSEGSEGMENT
MAINPROCFAR
ASSUMECS:
CSEG,DS:
DSEG
START:
:
MOVAX,DSEG
MOVDS,AX
DISPLAY:
MOVDX,OFFSETMESS1
MOVAH,09H
INT21h
MOVAH,01H
INT21
CMPDL,’Y’
JEYES
CMPDL,’N’
JENO
JMPDISPLAY
YES:
………
NO:
……..
CSEGENDS
ENDSTART
2.写出完整程序,主程序MAIN和过程PROADD在同一源文件中,要求用过程PROADD累加数组中的所有元素,并把和存在字存储单元SUM中。
主程序中判断数组的和中1的位数是奇数还是偶数,若是奇数,AL寄存器清0,否则,AL寄存器置1。
Desegsegment
arraydb1,2,3,4,5,6,7,8,9
sumdb?
Desegends
Cesegsegment
Aussmeds:
Deseg,cs:
Ceseg
mainprocnear
callproadd
movalsum
xordl
movcx8h
sh:
shlal
jncnext
decdl
next:
loopsh
anddl01H
jzzero
moval0
jmpexit
zero:
moval1
exit:
movax,4c00h
int21h
proaddprocnear
pushax
pushdx
pushcx
movcx,9h
addpro:
leasiarray
xorax
movdl,[di]
addal,dl
desdi
loopaddpro
movsumal
popcx
popdx
popax
ret
proaddendp