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