汇编语言程序设计真题精选.docx

上传人:b****3 文档编号:26679563 上传时间:2023-06-21 格式:DOCX 页数:19 大小:59.25KB
下载 相关 举报
汇编语言程序设计真题精选.docx_第1页
第1页 / 共19页
汇编语言程序设计真题精选.docx_第2页
第2页 / 共19页
汇编语言程序设计真题精选.docx_第3页
第3页 / 共19页
汇编语言程序设计真题精选.docx_第4页
第4页 / 共19页
汇编语言程序设计真题精选.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

汇编语言程序设计真题精选.docx

《汇编语言程序设计真题精选.docx》由会员分享,可在线阅读,更多相关《汇编语言程序设计真题精选.docx(19页珍藏版)》请在冰豆网上搜索。

汇编语言程序设计真题精选.docx

汇编语言程序设计真题精选

2020年汇编语言程序设计真题精选

[填空题]

1MOV  AX,0AH的源操作数的寻址方式是()

参考答案:

立即寻址

[填空题]

2编写循环结构程序,进行下列计算,结果存入RESULT内存单元2+4+6+8+10+……+100。

参考答案:

CODESEGMENT

ASSUMECS:

CODE

RESULTDW?

START:

XORAX,AX

MOVCX,50

MOVBX,2

AGAIN:

ADDAX,BX

ADDBX,2

LOOPAGAIN

MOVRESULT,AX

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

[填空题]

3写出8086操作数的寻址方式。

8086的存储器寻址方式有哪些?

参考答案:

操作数的寻址方式有:

①立即(数)寻址。

②寄存器寻址。

③存储器寻址。

存储器寻址方式有:

①立即寻址。

②寄存器寻址。

③直接寻址。

④寄存器间接。

⑤寄存器相对。

⑥基址变址。

⑦相对基址变址。

[填空题]

4编写循环结构程序,进行下列计算,结果存入RESULT内存单元11+22+33+44+……+99。

参考答案:

CODESEGMENT

ASSUMECS:

CODE

RESULTDW?

START:

XORAX,AX

MOVCX,9

MOVBX,11

AGAIN:

ADDAX,BX

ADDBX,11

LOOPAGAIN

MOVRESULT,AX

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

[填空题]

5试写出由逻辑地址计算物理地址的计算公式。

写出8086在存储器寻址下,存储单元的逻辑地址的表示形式。

参考答案:

P.A=段基址*16+偏移量

L.A=段基址:

偏移量

[填空题]

6已知ARRAY是5行5列的有符号字数组,编写程序,进行下列计算(假设和仍然为16b,不会产生溢出)求该数组第3行所有元素之和(行号从0开始)

参考答案:

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAX,0;累加器在循环之前清零

MOVCX,5;计数器置初值

MOVSI,3*5*2;第3行第0列元素在数组内的位移

NEXT:

ADDAX,ARRAY[SI]

ADDSI,2;SI指向本行下一列元素

LOOPNEXT

MOVSUM,AX

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

[填空题]

7在物理内存地址为00002H起的字单元内存放3412H,请用图表示出它们在存储器里存放的情况。

参考答案:

[填空题]

8已知ARRAY是5行5列的有符号字数组,编写程序,进行下列计算(假设和仍然为16b,不会产生溢出)求该数组反对角线上所有元素之和。

参考答案:

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAX,0;累加器在循环之前清零

MOVCX,5;计数器置初值

MOVSI,4*2;第0行第4列元素在数组内的位移

NEXT:

ADDAX,ARRAY[SI]

ADDSI,(5-1)*2;SI指向反对角线上下一个元素

LOOPNEXT

MOVSUM,AX

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

[填空题]

9寄存器间接寻址方式可使用哪些寄存器?

参考答案:

在8086中:

BX/BP/SI/DI

[填空题]

10变量X,Y,Z均为一字节压缩BCD码表示的十进制数,写出指令序列,求它们的和(用2字节压缩BCD码表示)。

参考答案:

XORAX,AX;清AX,用于存放2字节结果

MOVAL,X

ADDAL,Y;完成X+Y

DAA;压缩BCD码加法调整

ADCAH,0;把可能的进位收集到AH中;AH中最大的可能值为2,因此不需要BCD加法调整

ADDAL,Z;完成X+Y+Z

DAA;压缩BCD码加法调整

ADCAH,0;把可能的进位收集到AH中;计算完成,结果(2字节压缩BCD码)在AX中

[填空题]

11寄存器相对寻址方式中的位移量可以用什么形式表达?

参考答案:

位移量=EA—基址—(变址*比例因子)

[填空题]

12基址变址寻址方式的可用寄存器有哪些?

参考答案:

[BX][SI]/[BX][DI]

[单项选择题]

13、为了使执行串操作指令时,地址按减量方式处理应使用指令()。

A.CLI

B.STI

C.CLD

D.STD

参考答案:

D

[填空题]

14数组LIST2内存有20个压缩BCD码表示的单字节十进制数,写出完整程序,求这20个BCD数之和,结果(压缩BCD码)存入SUM2双字单元。

参考答案:

CODESEGMENT

ASSUMECS:

CODE

LIST2DB

12H,34H,56H,15H,82H,52H,48H,19H,31H,63H

DB22H,33H,44H,55H,66H,77H,88H,99H,11H,39H

SUM2DD?

START:

XORAX,AX;累加器清零

XORBX,BX;地址指针置初值

MOVCX,20;循环计数器置初值

ONE:

//ADDAL,LIST2[BX];加入一个压缩BCD数

DAA;调整

XCHGAH,AL;交换AH和AL

ADCAL,0;收集进位(百位、千位)

DAA;高位(百位、千位)调整

XCHGAH,AL;恢复AH和AL;(AH)=千位、百位,(AL)=十位、个位

INCBX;修改指针

LOOPONE;循环控制

MOVWORDPTRSUM2,AX;保存千、百、十、个位

MOVWORDPTRSUM2+2,0;高位清零

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

[填空题]

15写出相对基址变址寻址方式的偏移地址EA的计算公式。

参考答案:

EA=位移量+基址+变址

[填空题]

16数组LIST3内存有20个压缩BCD码表示的双字节十进制数,写出完整程序,求这20个BCD数之和,结果(压缩BCD码)存入SUM3双字单元。

参考答案:

CODESEGMENT

ASSUMECS:

CODE

LIST3DW

1234H,3456H,5678H,1523H,8263H,

DW5234H,4856H,1926H,3177H,6389H

DW2211H,3322H,4433H,5544H,6655H

DW7766H,8877H,9988H,1167H,3944H

SUM3DD?

START:

XORDX,DX

XORAX,AX;累加器清零

LEABX,LIST3;地址指针置初值

MOVCX,20;循环计数器置初值

ONE:

//ADDAL,CS:

[BX];加入第一字节压缩BCD数(十位、个位)

DAA;调整

XCHGAH,AL;交换AH和AL

INCBX;修改指针,指向高位字节(千位、百位)

ADCAL,CS:

[BX];高位累加,并收集低位进位DAA;高位(百位、千位)调整

XCHGAH,AL;恢复AH和AL;(AH)=千位、百位,(AL)=十位、个位

INCBX;修改指针

XCHGDX,AX;交换AX和DX

ADCAL,0;收集千位上的进位

DAA;调整,得到和的十万位和万位

XCHGDX,AX;恢复DX和AX

LOOPONE;循环控制

MOVWORDPTRSUM3,AX;保存千、百、十、个位

MOVWORDPTRSUM3+2,DX;保存十万位和万位

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

[单项选择题]

17、把若干个模块连接起来成为可执行文件的系统程序是()

A.汇编程序

B.连接程序

C.机器语言程序

D.源代码程序

参考答案:

B

[填空题]

18在内存物理地址为65780H起的连续地址空间内存放了一个值为12345678H的双字型数据,请用图表示出它们在存储器里存放的情况。

参考答案:

[填空题]

19设(BX)=0E3H,变量VALUE中存放内容为79H,指出下列指令单独执行后的结果。

ANDBX,VALUE

参考答案:

指令“ANDBX,VALUE”执行后,(BX)=0061H

[单项选择题]

20、已知AX,BX中均为带符号数,当进行字相除时,下面指令或指令序列正确的是()。

A.DIV  BX

B.CWD  IDIV  BX

C.XOR DX,DX  DIV   BX

D.CBW  IDIV   BX

参考答案:

B

[填空题]

21LOOP指令使用的循环计数器是什么?

参考答案:

CX.

更多内容请访问《睦霖题库》微信公众号

[填空题]

22设(BX)=0E3H,变量VALUE中存放内容为79H,指出下列指令单独执行后的结果。

XORBX,0FFH

参考答案:

指令“XORBX,0FFH”执行后,(BX)=001CH

[单项选择题]

23、子程序是用过程定义语句()定义的。

A.PROC    ENDP

B.PROC    ENDS

C.CALL    RET

D.PROC    RET

参考答案:

A

[填空题]

24子程序调用时传递参数的三种基本方法是什么?

参考答案:

①通过寄存器传送。

②通过堆栈传送。

③通过变量传送。

[填空题]

25设(BX)=0E3H,变量VALUE中存放内容为79H,指出下列指令单独执行后的结果。

ANDBX,0

参考答案:

指令“ANDBX,0”执行后,(BX)=0000H

[单项选择题]

26、主程序和所调用的子程序在同一代码段中,子程序的属性定义为()。

A.TYPE

B.WORD

C.NEAR

D.FAR

参考答案:

C

[填空题]

27串操作指令在使用前应做哪些准备工作?

参考答案:

①把存放在数据段中的源串首地址(如反向传送则应是末地址)放入源变址寄存器中。

②把将要存放数据串的附加段中的目的串首地址(或反向传送时的末地址)放入目的变址寄存器中。

③把数据串长度放入计数寄存器。

④建立方向标志。

[填空题]

28某密码的加密规则为:

‘0’→‘A’,‘1’→‘B’,‘2’→‘C’,……。

按照以下要求编写程序。

把明文“96541833209881”翻译为密文。

参考答案:

CODESEGMENT

ASSUMECS:

CODE

TEXT1DB“96541833209881

”TEXT2DB14DUP(?

START:

MOVBX,0

MOVCX,14

NEXT:

MOVAL,TEXT1[BX];取出一字节明文

ADDAL,“A”-“0”;转换成密文

MOVTEXT2[BX],AL;保存

INCBX

LOOPNEXT

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

[单项选择题]

29、若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=()。

A.1400H

B.77F8H

C.0000H

D.0FFFFH

参考答案:

A

[填空题]

30MOV  [BX],CL的源操作数的寻址方式()

参考答案:

寄存器寻址

[填空题]

31编写程序,从键盘上输入一行明文,按照题3.17的规则翻译成密文,向显示器输出。

参考答案:

DATASEGMENT

MESSDB0DH,0AH,“Inputsometextplease:

$”

OUTMESSDB0DH,0AH,“Thetextafterconvert:

BUFFERDB81,?

,81DUP(?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEADX,MESS

MOVAH,09H

INT21H;输出提示信息

LEADX,BUFFER

MOVAH,0AH

INT21H;输入一行明文

MOVCL,BUFFER+1

MOVCH,0;输入字符个数送CX

LEABX,BUFFER+2;首字符地址送BX

NEXT:

MOVAL,[BX]

ADDAL,“A”-“0”;将一字节明文转换成密文

MOV[BX],AL;保存

INCBX

LOOPNEXT

MOVBYTEPTR[BX],“$”;送字符串结束标记

MOVWORDPTRBUFFER,2020H;缓冲区前2字节改为空格

LEADX,OUTMESS

MOVAH,09H

INT21H;输出转换以后的结果

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

[单项选择题]

32、DA2DB“AB”,“CD” MOV AX,WORD PTR DA2+1 上述语句执行后,AX中的值是()。

A.“AD‟

B.“BC‟

C.“DA‟

D.“CB‟

参考答案:

D

[填空题]

33MOV  AX,[200H]的源操作数的寻址方式()

参考答案:

直接寻址

[填空题]

34已知8086系统某存储单元物理地址为12345H,可以与它对应的“逻辑地址”中,段基址最大值,最小值分别是多少?

参考答案:

可以与物理地址12345H对应的逻辑地址中,段基址的最大值为1234H,最小值为0235H。

分析:

偏移地址取最大值时,对应的段基址为最小。

偏移地址可选的最大值为0FFF5H(最后一位必须为5),因此最小的段基址=(12345H-0FFF5H)/10H=0235H。

偏移地址取最小值时,对应的段基址最大。

偏移地址可选的最小值为0005H(最后一位必须为5),因此最大的段基址=(12345H-0005H)/10H=1234H。

[填空题]

35编写程序,使用库子程序,从键盘上输入8个有符号字数据,求它们的和,以十进制格式输出。

参考答案:

INCLUDEYLIB.H

DATASEGEMNT

MESS1DB0DH,0AH,“Inputanumberplease:

$”

MESS2DB0DH,0AH,“Thesumis:

$”

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

XORBX,BX;BX用作累加器,清零

MOVCX,8;循环计数器置初值

AGAIN:

LEADX,MESS1

CALLREADINT;输入一个数据(在AX中)

ADDBX,AX;累加

LOOPAGAIN

LEADX,MESS2

MOVAX,BX

CALLWRITEINT;输出8个数的和

CALLCRLF

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

[单项选择题]

36、执行PUSH BP指令时,目的操作数的物理地址表达式是( )。

A.16*SS+BP

B.16*DS+BP

C.16*CS+BP

D.16*SS+SP

参考答案:

D

[填空题]

37MOV  AX,[100H]的源操作数的寻址方式()

参考答案:

直接寻址

[填空题]

38阅读以下程序,指出它的功能。

参考答案:

MOVCL,04

SHLDX,CL

MOVBL,AH

SHLAX,CL

SHRBL,CL

ORDL,BL

把32位二进制代码(DX,AX)联合左移4位。

[填空题]

39CPU使用“寄存器”有什么好处?

为什么?

参考答案:

CPU使用寄存器主要有两个好处:

(1)寄存器位于CPU内部,访问寄存器比访问内存储器速度快;

(2)寄存器数量大大少于内存储器单元个数,标识寄存器使用的二进制代码比标识内存储器单元使用的二进制代码少得多,可以缩短指令长度。

[单项选择题]

40、检查二个无符号数的关系,若要实现AL>=BL时分支去LOP1处,那么在“CMP AL,BL”指令后应跟的分支指令是()。

A.JNC LOP1

B.JA LOP1

C.JC LOP1

D.JGE LOP1

参考答案:

A

[填空题]

41MOV  AX,[BX]的源操作数的寻址方式()

参考答案:

寄存器间接寻址

[填空题]

42已知(DX)=0B9H,(CL)=3,(CF)=1,确定下列指令单独执行以后DX寄存器的值。

SHRDX,1

参考答案:

指令“SHRDX,1”执行之后,(DX)=005CH。

[填空题]

43用8位补码完成下列运算,用二进制“真值”的格式给出运算结果,并指出运算后CF、OF、ZF、SF、PF标志位的状态。

-100-120。

参考答案:

[-100]补=10011100,[-120]补=10001000,

[-100-120]补=00100100,[-100-120]=+00100100(溢出)

COZSP=01001

[填空题]

44MOV  DX,[BP]的源操作数的寻址方式()

参考答案:

寄存器间接寻址

[单项选择题]

45、完成将AX清零,并且使CF清零,下面错误的指令是()。

A.SUB  AX, AX

B.AND  AX, 0

C.XOR AX,AX

D.MOV AX,0

参考答案:

D

[填空题]

46已知(DX)=0B9H,(CL)=3,(CF)=1,确定下列指令单独执行以后DX寄存器的值。

SHLDX,CL

参考答案:

指令“SHLDX,CL”执行之后,(DX)=05C8H

[填空题]

47MOV  CX,[BX][SI]的源操作数的寻址方式()

参考答案:

基址变址寻址

[填空题]

48用8位补码完成下列运算,用二进制“真值”的格式给出运算结果,并指出运算后CF、OF、ZF、SF、PF标志位的状态。

127+126。

参考答案:

[127]补=01111111,[126]补=01111110,

[127+126]补=11111101,[127+126]=-00000011(溢出)

COZSP=01010

[单项选择题]

49、下面()描述属于子程序嵌套调用。

A.某程序调用子程序

B.某程序调用子程序1,子程序又调用了子程序2。

C.某程序调用一个或多个子程序

D.某程序调用了两个子程序

参考答案:

B

[填空题]

50已知(DX)=0B9H,(CL)=3,(CF)=1,确定下列指令单独执行以后DX寄存器的值。

RORDX,CL

参考答案:

指令“RORDX,CL”执行之后,(DX)=2017H

[填空题]

51MOV  DI,[BX+20]的源操作数的寻址方式()

参考答案:

相对基址寻址

[填空题]

52两个8位补码表示的有符号数相加时,什么情况下会使进位标志等于“1”?

相减时,又是什么情况下会使借位标志等于“1”?

参考答案:

两个8位补码表示的有符号数相加时,下列情况会使进位标志等于“1”:

两个负数相加;

两个异号数相加,和为正(不会产生溢出)。

两个8位补码表示的有符号数相减时,下列情况会使借位标志等于“1”:

两个同号数相减,差为负(不会产生溢出);

正数减负数(有可能产生溢出);

[填空题]

53已知(DX)=0B9H,(CL)=3,(CF)=1,确定下列指令单独执行以后DX寄存器的值。

ROLDX,CL

参考答案:

指令“ROLDX,CL”执行之后,(DX)=05C8H

[填空题]

54把下列十六进制数转换为二进制数(100)16

参考答案:

(100)16=(000100000000)2

[填空题]

55把下列二进制数转换为十六进制数(0.00101)2

参考答案:

(0.00101)2=(0.0010‟1000)2=0.28H

[填空题]

56已知(DX)=0B9H,(CL)=3,(CF)=1,确定下列指令单独执行以后DX寄存器的值。

RCLDX,CL

参考答案:

指令“RCLDX,CL”执行之后,(DX)=05CCH

[单项选择题]

57、执行CALL子程序调用指令时,CPU会自动地将断点压入堆栈保护。

断点指的是()。

A.CALL指令所在的地址

B.CALL指令的下一条指令的首地址

C.子程序入口地址

D.CALL指令所在的段地址

参考答案:

B

[填空题]

58MOV  DH,VAL[BX]的源操作数的寻址方式()

参考答案:

相对基址寻址

[填空题]

59MOV  DS,VAL的源操作数的寻址方式()

参考答案:

直接寻址

[填空题]

60下面程序段执行完成后,BX寄存器的内容是什么?

MOVCL,3MOVBX,0B7HROLBX,1RORBX,CL

参考答案:

上面程序段执行完成后,(BX)=0C02DH

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1