汇编期末复习题完整含答案版.docx

上传人:b****5 文档编号:7877335 上传时间:2023-01-26 格式:DOCX 页数:18 大小:44.60KB
下载 相关 举报
汇编期末复习题完整含答案版.docx_第1页
第1页 / 共18页
汇编期末复习题完整含答案版.docx_第2页
第2页 / 共18页
汇编期末复习题完整含答案版.docx_第3页
第3页 / 共18页
汇编期末复习题完整含答案版.docx_第4页
第4页 / 共18页
汇编期末复习题完整含答案版.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

汇编期末复习题完整含答案版.docx

《汇编期末复习题完整含答案版.docx》由会员分享,可在线阅读,更多相关《汇编期末复习题完整含答案版.docx(18页珍藏版)》请在冰豆网上搜索。

汇编期末复习题完整含答案版.docx

汇编期末复习题完整含答案版

一、问答题

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

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

答:

操作数的寻址方式有:

①立即(数)寻址。

②寄存器寻址。

③存储器寻址。

存储器寻址方式有:

①立即寻址。

②寄存器寻址。

③直接寻址。

④寄存器间接。

⑤寄存器相对。

⑥基址变址。

⑦相对基址变址。

2、何谓中断向量,何谓中断号?

答:

中断向量即中断服务程序的入口地址。

中断类型号是系统分配给每个中断源的代号。

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

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

答:

PA=段基址*16+偏移量LA=段基址:

偏移量

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

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

6、8088的寻址空间有多大?

要寻址全部存空间必须采用什么技术措施?

答:

1MB,分段寻址

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

答:

在8086中:

BX/BP/SI/DI

8、在分断技术中,寄存器BX和BP默认对应的段寄存器是哪些?

答:

BX对应的是DS,BP对应的是SS。

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

答:

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

10、微机的存的最小编址单位是什么?

字型数据在存的中的存放原则是什么?

答:

最小编址单位是B,存放原则是先低字节,后高字节。

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

答:

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

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

答:

EA=位移量+基址+变址

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

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

15、条件转移指令的转移围是多少?

答:

—128~127

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

答:

CX.

17、设有变量ABCD,要取它的偏移地址送到寄存器AX中,可用哪两种方法?

用指令表达出来。

答:

①LEAAX,ABCD②MOVAX,ABCD

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

答:

①通过寄存器传送。

②通过堆栈传送。

③通过变量传送。

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

答:

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

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

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

④建立方向标志。

二、简答题

写出下列各指令的源操作数的寻址方式。

(1)MOVAX,0AH立即寻址(21)SUBCX,0CFH立即寻址

(2)MOVBX,12H立即寻址(22)MOVDX,49H立即寻址

(3)MOV[BX],CL寄存器寻址(23)ADDC[BP],DL寄存器寻址

(4)MOV[BX],CX寄存器寻址(24)ACHG[BX],AH寄存器寻址

(5)MOVAX,[200H]直接寻址(25)ANDAX,ES:

[buf]直接寻址

(6)MOVAX,[100H]直接寻址(26)MOVCX,SS:

[buf]直接寻址

(7)MOVBX,[BX]寄存器间接寻址(27)XORAX,[DI]寄存器间接寻址

(8)MOVAX,[BX]寄存器间接寻址(28)MOVCX,[BX]寄存器间接寻址

(9)MOVAX,[BP]寄存器间接寻址(29)ORDX,[BP]寄存器间接寻址

(10)MOVDX,[BP]寄存器间接寻址(30)MOVCX,[BP]寄存器间接寻址

(11)MOVAX,[SI][BX]基址变址寻址(31)ANDDL,[BP+DI]基址变址寻址

(12)MOVCX,[BX][SI]基址变址寻址(32)MOVBX,[SI+BP]基址变址寻址

(13)MOVDI,[BX+20]相对基址寻址(33)XORSI,56[BX]相对基址寻址

(14)MOVDI,20[BX]相对基址寻址(34)MOVDI,[BX+30]相对基址寻址

(15)MOVDH,VAL[BX]相对基址寻址(35)ADDDL,buf[BX]相对基址寻址

(16)MOVDH,ARRY[BX]相对基址寻址(36)MOVAL,[buf+BP]相对基址寻址

(17)MOVDS,VAL直接寻址(37)MOVDS,[BX+DI]基址变址寻址

(18)MOVDS,ARRY直接寻址(38)MOVDS,[BX+SI]基址变址寻址

(19)MOVBX,VAL[BX][SI]相对基址变址寻址(39)MOVAH,[buf+BP+DI]相对基址变址寻址

(20)MOVBX,ARRY[BX][DI]相对基址变址寻址(40)ADDAL,[buf+BX+SI]相对基址变址寻址

三、判断题

对者在题号前的括号中打“√”,错的打“×”

(×)1.SBBAL,DX(√)1.XCHGBX,AX

(√)2.MOVCX,DX(×)2.XORBL,CX

(√)3.CMPBX,[DI](√)3.CMPAX,[SI]

(×)4.CMP[BP],[BX](√)4.POPDI

(√)5.POPDI(√)5.POPAX

(√)6.POPSI(×)6.PUSHCL堆栈操作以字为单位

(×)7.PUSHAL堆栈操作以字为单位(×)7.PUSHAL堆栈操作以字为单位

(×)8.PUSHDL堆栈操作以字为单位(√)8.ORBYTEPTR[BP],98

(√)9.MOVBYTEPTR[BP],124(√)9.AND[BX],255

(√)10.MOVBYTEPTR[BX],100(√)10.SUB[SI],BYTEPTR35

(√)11.ADD[DI],BYTEPTR24(√)11.MOV[BP],10

(√)12.SUB[BP],BYTEPTR10(×)12.DEC[CX]CX不能间接寻址

(×)13.DEC[DX]DX不能间接寻址(√)13.INC8[BX]

(√)14.INC2[BX](√)14.SHLAL,1

(√)15.RORBL,1(×)15.MOVBX,[DX]DX不能间接寻址

(×)16.MOVCX,[DX]DX不能间接寻址(√)16.MOVbuf[BP][SI],CL

(√)17.MOVDAT[BP][DI],AL(√)17.MOVbuf[BX][DI],CX

(√)18.MOVDAT[BX][SI],AX(√)18.ADDCAL,BYTEPTRAC(AC为字变量)

(√)19.SUBAL,BYTEPTRAC(AC为字变量)(√)19.CMPCX,WORDPTRWL(WL为字节变量)

(√)20.ADDCX,WORDPTRWL(WL为字节变量)(√)20.ADDBX,[DI]

四、程序填空题

1、要求用移位指令实现(BX)<—(BX)*9

MOVAX,BX

MOVCL,3

SHLAX,CL

ADDBX,AX

2、要求用移位指令实现(BX)<—(BX)*5

MOVAX,BX

MOVCL,2

SHLAX,CL

ADDBX,AX

3、假设程序中数据定义如下:

ASDDB3

要求把变量ASD的值在显示器上显示出来。

MOVDL,ASD

ADDDL,30H

MOVAH,2

INT21H

4、假设程序中数据定义如下:

XDB3

要求把变量X的值在显示器上显示出来。

MOVDL,X

ADDDL,30H

MOVAH,3

INT21H

5、假设程序中字符串MESS定义如下:

MESSDB’ABCDEF’

要求把字符串MESS送到显示器上显示出来。

LEADX,MESS

MOVAH,9

INT21H

6、假设程序中字符串BUF定义如下:

BUFDB‘ABCDEF’

MOVAH,9

INT21H

7、假设程序中数据定义如下:

BUFDB32DUP(?

要求在BUF中查找第一个’B’.

CLD

MOVCX,32

MOVAL,’B’

LEADI,BUF

REPENSCASB

8、假设程序中数据定义如下:

BUFDB38DUP(?

要求在BUF中查找第一个’M’

CLD

MOVCX,38

MOVAL,‘M’

LEADI,BUF

REPENSCASB

9、比较两个字符串B1和B2,其长度为20个字节,找出它们相匹配的位置。

LEASI,B1

LEADI,B2

CLD

MOVCX,0014H

REPNECMPSB

10、比较两个字符串STR1和STR2,其长度为45个字节,找出它们不相匹配的位置。

LEASI,STR1

LEADI,STR2

CLD

MOVCX,002DH

REPECMPSB

五、写出下列程序(段)的执行结果。

1、CODE1SEGMENT

ASSUMECS:

CODE1

MAINPROCFAR

START:

PUSHDS

XORAX,AX

PUSHAX

MOVCH,4

MOVBX,01111B

ROT1:

MOVCL,4

ROLBX,CL

MOVDL,BL

ANDDL,0FH

ADDDL,30H

CMPDL,3AH

OUT1

ADDDL,7H

OUT1:

MOVAH,2

INT21H

DECCH

JNZROT1

RET

MAINENDP

CODE1ENDS

ENDMAIN

此程序执行后,屏幕上显示的容为:

C48F

2、DATASEGMENT

BUFDB7,9,6

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

BEGIN:

MOVAX,DATA

MOVDS,AX

MOVCX,2

MOVBX,OFFSETBUF

MOVSI,1

MOVAL,BUF

AAA:

CMPAL,[BX+SI]

JLNEXT

MOVAL,[BX+SI]

NEXT:

INCSI

LOOPAAA

MOVDL,AL

ADDDL,30H

MOVAH,2

INT21H

MOVAH,4CH

INT21H

CODEENDS

ENDBEGIN

执行此程序后,屏幕上显示的容为:

6(此程序功能是将串中小于7的数字屏显出来)

3、MOVAL,03H

MOVCL,2

SHLAL,CL

此指令段执行后,AL中的值为:

0CH(即3*2*2=12)

4、MOVAL,40H

MOVCL,2

SHRAL,CL

此程序段执行后,AL中的值为:

10H(即64/2/2=16)

5、CODESEGMENT

ASSUMECS:

CODE

MAIN:

MOVAH,1

INT21H

MOVAH,2

MOVDL,AL

ADDDL,30H

INT21H

MOVAH,4CH

INT21H

CODEENDS

ENDMAIN

设输入数字7,其输出结果是多少?

7

6、CODESEGMENT

ASSUMECS:

CODE

MAIN:

MOVAH,1

INT21H

ADDAL,2

MOVAH,2

MOVDL,AL

ADDAL,30H

INT21H

MOVAH,4CH

INT21H

CODEENDS

ENDMAIN

设输入数字3,其输出结果是多少?

5

六、程序设计

1、求两个字节数X和Y的2倍放到Z单元中。

设X与Y的和是字节数。

DATASEGMENT

XDB2

YDB2

ZDB?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVBL,X

MOVCL,Y

ADDBL,CL

MOVCL,BL

ADDCL,BL

MOVZ,CL

MOVDL,Z

ADDDL,30H

MOVAH,02H

INT21H

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

2、求两个字节数X和Y的平均数放到Z单元中。

DATASEGMENT

XDB7

YDB8

ZDB?

//商

WDB?

//余数

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVBL,X

MOVCL,Y

ADDBL,CL

CBW

MOVAX,BX

MOVCL,2

DIVCL

MOVZ,AL

MOVW,AH

MOVDL,Z

ADDDL,30H

MOVAH,02H

INT21H

MOVDL,W

ADDDL,30H

MOVAH,02H

INT21H

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

3、编写程序,把从键盘读入的一个小写字母转换成相应的大写字母,并输出。

(注:

对应大小写字母之间的ASCII码值相差20H)

PROGNAMSEGMENT

MAINPROCFAR

ASSUMECS:

PROGNAM

START:

PUSHDS

SUBAX,AX

PUSHAX

NEXT:

MOVAH,1

INT21H

CMPAL,'A'

EXIT

CMPAL,'Z'

JAEXIT

SUBAL,20H

MOVDL,AL

MOVAH,2

INT21H

MOVDL,0AH

MOVAH,2

INT21H

JMPNEXT

EXIT:

RET

MAINENDP

PROGNAMENDS

ENDSTART

4、编写程序,把从键盘读入的一个大写字母转换成相应的小写字母,并输出。

(注:

对应大小写字母之间的ASCII码值相差20H)

PROGNAMSEGMENT

MAINPROCFAR

ASSUMECS:

PROGNAM

START:

PUSHDS

SUBAX,AX

PUSHAX

NEXT:

MOVAH,1

INT21H

CMPAL,'A'

EXIT

CMPAL,'Z'

JAEXIT

ADDAL,20H

MOVDL,AL

MOVAH,2

INT21H

MOVDL,0AH

MOVAH,2

INT21H

JMPNEXT

EXIT:

RET

MAINENDP

PROGNAMENDS

ENDSTART

5、已知数组X包含有8个无符号整数,编写对其中的每个奇数计算1+2+…+N,并把它们顺序存入存字单元SUM开始的存储区中,要求1+2+…+N用子程序实现。

不考虑溢出。

DATASEGMENT

XDW2,3,4,5,6,7,8,9

SUMDW8DUP(?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

MAIN:

MOVAX,DATA

MOVDS,AX

LEABX,X

LEADI,SUM

MOVCX,8

NEXT:

MOVDX,[BX]

MOVAX,DX

SHRAX,1

JNCN1

CALLSUB1

MOV[DI],AX

ADDDI,2

N1:

ADDBX,2

LOOPNEXT

MOVAH,4CH

INT21H

SUB1PROCNEAR

PUSHCX

XORAX,AX

MOVCX,DX

AGAIN:

ADDAX,CX

LOOPAGAIN

POPCX

RET

SUB1ENDP

CODEENDS

ENDMAIN

6、已知数组X包含有8个无符号整数,编写对其中的每个偶数计算1+2+…+N,并把它们顺序存入存字单元SUM开始的存储区中,要求1+2+…+N用子程序实现。

不考虑溢出。

DATASEGMENT

XDW2,3,4,5,6,7,8,9

SUMDW8DUP(?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

MAIN:

MOVAX,DATA

MOVDS,AX

LEABX,X

LEADI,SUM

MOVCX,8

NEXT:

MOVDX,[BX]

MOVAX,DX

SHRAX,1

JCN1

CALLSUB1

MOV[DI],AX

ADDDI,2

N1:

ADDBX,2

LOOPNEXT

MOVAH,4CH

INT21H

SUB1PROCNEAR

PUSHCX

XORAX,AX

MOVCX,DX

AGAIN:

ADDAX,CX

LOOPAGAIN

POPCX

RET

SUB1ENDP

CODEENDS

ENDMAIN

 

注:

编者水平有限,不能保证所有答案都正确,如发现错误之处,请指出。

卷上部分答案来源于互联网,不代表标准答案,此卷仅供参考。

最后两个编程题中有一道考试必考!

我只能帮你们到这里了!

呵呵

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

当前位置:首页 > 高等教育 > 工学

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

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