汇编模拟题2附答案文档格式.docx
《汇编模拟题2附答案文档格式.docx》由会员分享,可在线阅读,更多相关《汇编模拟题2附答案文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
AX,1
3.下面指令执行后,改变AL寄存器内容的指令是(
D
a、TEST
AL,02Hb、OR
AL,AL
c、CMP
AL,BLd、AND
AL,BL
4、与MOV
BX,OFFSET
VAR指令完全等效的指令是(
a、MOV
BX,VARb、LDS
BX,VAR
c、LES
BX,VARd、LEA
5、BUF
DW
10H
DUP(3
DUP(2,10H),3,5)
上述语句汇编后,为变量BUF分配的存储单元字节数是(
A、80Hb、100Hc、124d、192
6、在汇编语言程序的开发过程中使用宏功能的顺序是(
c
a、宏定义,宏调用b、宏定义,宏展开
c、宏定义,宏调用,宏展开d、宏定义,宏展开,宏调用
7、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是(
a、名字项b、操作项c、操作数项d、注释项
8、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有(
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
上述两条指令执行后,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:
0090H
d.DX:
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
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'
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:
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两数组内容的相互交换。
试完善本程序。
ADB0AH,9,8,7,6,5,4,3,2,1
ORG0010H
BDB1,2,3,4,5,6,7,8,9,0AH
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