2012年合肥师范学院 汇编语言习题答案
- 格式:pdf
- 大小:142.71 KB
- 文档页数:7
1:设字长N=16,带符号数7AE9H的补码表示为(D)
A:9EA7HB:76C4HC:8417HD:7AE9H
2:把汇编源程序文件变成目标程序文件的过程是(B)
A:编译B:汇编C:编辑D:链接
3:在8086CPU的基址变址寻址方式中,变址寄存器可以是(D)
A:BX或CXB:CX或SI
C:DX或SID:SI或DI
4:指令JMPFARPTRHELLO属于(C)A:段内转移直接地址
B:段内转移间接地址
C:段间转移直接地址
D:段间转移间接地址
5:在程序执行过程中,IP寄存器中始终保存的是(B)
A:上一条指令的首地址B:下一条指令的首地址
C:正在执行指令的首地址D:需计算有效地址后才能确定地址
6:完成对CL寄存器的内容乘以4的正确操作是(C)
A:ROLCL,1B:MUL4ROLCL,1
C:SHLCL,1D:MOVCL,2SHLCL,1SHLCL,CL
7:在下面指令中,(D)指令的执行会影响条件码中的CF位
A:JMPNEXTB:JCNEXT
C:INCBXD:SHLAX,1
8:在下列指令表示中,使用不正确的是(C)
A:MOVAL,【BX+SI】B:JMPSHORTDONI
C:DEC【BX】D:MULCL
9:在JMPWORDPTR【BX】【SI】指令中转移的目标地址为(A)
A:16d*(DS)+【BX】+【SI】
B:16d*(ES)+【BX】+【SI】
C:16d*(SS)+【BX】+【SI】
D:16d*(CS)+【BX】+【SI】
10:子程序与宏的区别是(D)
A:宏是一段程序B:宏可以被多次调用
C:宏可以实现参数传递D:宏调用时不用返回
11:IBMPC微机中,带符号数是用(补)码表示的
12:在DEBUG下,修改寄存器AX的命令是(D)
A:DAXB:AAXC:RD:RAX
13:在指令MOVAX,【1000H】中,源操作的寻址方式是(B)
A;立即寻址B:直接寻址C;段内间接寻址D;寄存器寻址
14:带符号数3260H与0B425H的比较结果为(C)
A:相等B:小于C:大于D:不能比较
15:比较指令CMP(D)
A:专用于有符号数比较B:专用于无符号数比较
C:专用于串比较D:不区分比较的对象是有符号还是无符号16:若将DX的内容除以2,正确的指令是(C)
A:DIV2B:DIVDX,2
C:SARDX,1D:SHLDX,1
17:条件转移指令JNE的测试条件为(A)
A:ZF=0B:CF=0C:ZF=1D:CF=1
18:下列指令中表示不正确的是(A)
A:ADDBUF1,BUF2B:JMPDWORDPTRDAT【BX】
C:MOVAX,COUNT【BX+DI】D:TESTAL,08H
19:下列指令不能循环的是(D)
A:JGB:JNZC:LOOPD:DECCX
20:十六进制数0BDF1H,0FEF7H表示的十进制无符号和带符号数分别是多少?
0BDF1H无符号数48625D,带符号数-16911D
0FEF7H无符号数65271D,带符号数-265D
21:附加段,堆栈段,代码段,数据段寄存器的符号表示分别是(ES),(SS),
(CS),(DS)22:在算术运算中,当标志位(CF)=1时表示无符号数溢出,而当标志位(OF)
=1是表示带符号数运算产生溢出。
23:如JMP指令采用段间间接寻址,那么由4个相邻字节单元存放的转移地址中,前两个
字节存放的是(转向的偏移地址【IP】),后两个字节存放的是(转向的段地址【CS】)。24:DOS系统功能调用方式为:(1)置入口参数;(2)中断程序标号送(AL)寄存
器后执行INT21H。25:在寄存器间接寻址中,如果指令中指定的寄存器为BP,则操作数默认存放在(堆
栈)段中,段地址在(SS)寄存器中。26:在执行字符串操作指令MOVS之前,要将源字符串的首地址放入(源变址寄存器【SI】),
目的字符串的首地址放入(目的变址寄存器【DI】)。27:注释项用于说明程序段或是一条和几条指令的功能,一般用(;分号)表示
注释的开始。28:若(DS)=0E34H,(SI)=3000H,COUNT=0A6H,指令MOVAX,【SI+COUNT】中,
源操作数的有效地址EA为(30A6H),物理地址PA为(113E6H)。29:什么叫寻址方式?常用的寻址方式有哪些?
寻址方式给出操作数或操作数地址的计算方式,对转移指令形成程序的转移地址。常
用的寻址方式有:数据寻址方式1.立即数寻址方式2.寄存器寻址方式3.直接寻址方式4.寄存
器间接寻址方式5.寄存器相对寻址方式6.基址变址寻址方式7.相对基址变址寻址方式;转移
地址寻址方式:1.段内直接寻址,2.段内间接寻址,3.段间直接寻址,4.段间间接寻址。30:简述汇编语言中指令和伪指令的区别?
指令是告诉计算机如何处理数据的命令,指令语句有对于的机器语言指令,汇编是能产生
目标代码;伪指令只是告诉汇编程序如何汇编,没有与其对应的机器语言指令。31;简述下面两条指令分别是什么语法错误?
MOV【BX】,【SI】
MOVAX,DL
(1)在同一指令中源操作数和目的操作数不能同时为存储单元。(或:存储单元之间不能
之间传值。)(2)源操作数(字节)和目的操作数(字)类型不匹配。
32:假定【DX】=0000000010111001B,(CL)=3,(CF)=1,试确定下列各条指令单独执行后,DX中的值SHRDX,1(DX)=5CH
RCLDL,1(DX)=73H
RCLDX,CL(DX)=5CCH
33:写出完成下述功能的程序段:
将25H传送到AL寄存器
将AL内容乘以2
将15H传送到BL寄存器
将AL的内容乘以BL的内容
上述程序段执行完后,请写出(AX)=?
解:MOVAL,25HSHLAL,1
MOVBL,15H
MULBL
最后(AX)=612H34:简述上机运行汇编语言程序的过程。
答:建立源程序(.asm文件),汇编成目标代码程序(.obj文件),连接成执行文件(.exe文
件),最后执行程序。35:写出下列竖式的计算结果和状态标志AF,PF,CF,ZF,OF,SF的值,并结合CF,OF
解释运算结果。00001001
+01111100
(CF=0,PF=0,AF=1,ZF=0,SF=1,OF=1)OF=1,表明此运算在带符号数的意义下发生溢出,结果不正确,即(+9)+(+124)=-133
36:已知:(BX)=1357H,(DI)=2000H,(DS)=2000H,(ES)=4000H,分别指出下面
各指令中存储器操作数的物理地址。MOVAL,【BX】PA=21357H
MOVES:【BX+DI】,AHPA=43357H
37:下列语句在存储器中分别为变量分配多少字节?
AD2DW10DUP(?),1022个字节
AD3DD100DUP(?)400个字节
38:主程序和子程序之间的参数传递有几种实现方式?
答:通过寄存器传送参数;通过存储器传送参数;通过地址表传送参数地址;通过堆栈传
送参数或参数地址;多个模块之间的参数传送。
39:现有如下程序段:
DATASEGMENT
DA3EQU1234H
ORG0020H
DA4EQU¥-DA2?汇编中好像没有¥应该是$
DA1DW12H,23H
DA5DB31H,32H
DA2DB11H,21H
DATAENDS问:(1)该程序段已占有的存储字节数是多少?12个字节
(2)DA4的值是多少?DA5的值是多少?(DA4)=DF0FH(DA5)=3231H40:设寄存器AL,BL,CL中内容均为76H,
XORAL,0FH
ANDBL,0FH
ORCL,0FH
执行上述指令后,(AL)=(79H),(BL)=(6H),(CL)=(7FH)41:分析下列程序块:
DAIDB83H,72H,61H,94H,5AH
.
.
.
MOVCX,WORDPTRDAI
ANDCX,0FH
MOVAL,DAI+3
SHLAL,CL
上述指令序列执行后,(AL)=(0A0H),CL=(3H)。42:下面程序的功能是什么?
MOVAX,A
CMPAX,B
JGELAB
XCHGAX,B
LABMOVA,AX
答:求A、B中较大的数放入A中43:执行如下程序:
MOVAX,0
MOVBX,0
MOVCX,10
A:ADDAX,BX
INCBX
LOOPA
HLT
执行后(BX)=(0AH),(AX)=(2DH)44:分析下列程序:
DAWDW2A05H
DABDB0FAH
.
.
MOVAL,BYTEPTRDAW
SUBDAB,AL
此程序执行完后,变量DAB=(0F5H)45:分析下列程序:
ARYDW10DUP(?)
..
MOVAL,TYPEARY
MOVBL,LENGTHARY
MOVCL,SIZEARY
上述MOV指令程序列执行后AL,BL和CL中的内容分别是什么?
解:(AL)=2D=2H;(BL)=10D=0AH;(CL)=20D=14H46:已知(AX)=0FF60H,CF=1,若有如下指令序列:
MOVDX,96
XORDH,0FFH
SBBAX,DX
执行上述指令程序后,(AX)=(0),CF=(0)。47:已知(BX)=4567H,若有如下指令程序:
NEGBX
INCBX
NEGBX
DECBX
执行上述指令序列后,(BX)=(4565H),CF=(1)48:分析下列程序:
MOVAX,0
MOVBX,1
MOVCX,100
A:ADDAX,BX
INCBX
LOOPA
HLT
以上程序段执行后(BX)=(65H=101D),(AX)=(13BAH=5050D)49:编写完整的程序,把DX中的二进制以十六进制的形式显示在屏幕上
datasegment
dataends
codesegment
assumecs:code,ds:data
start:movax,data
movds,ax
movchch,4;初始化rotate:movclcl,4
rolbx,cl
moval,bl
andal,0fh
addal,30h;’0’~’9’ASCII30H~39H
cmpal,3ah
jlprintit
addal,7h;’A’~’F’ASCII41H~46H
printit:movdl,al
movah,2