汇编语言程序第二次作业讲述.docx

上传人:b****2 文档编号:677508 上传时间:2022-10-12 格式:DOCX 页数:16 大小:19.41KB
下载 相关 举报
汇编语言程序第二次作业讲述.docx_第1页
第1页 / 共16页
汇编语言程序第二次作业讲述.docx_第2页
第2页 / 共16页
汇编语言程序第二次作业讲述.docx_第3页
第3页 / 共16页
汇编语言程序第二次作业讲述.docx_第4页
第4页 / 共16页
汇编语言程序第二次作业讲述.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

汇编语言程序第二次作业讲述.docx

《汇编语言程序第二次作业讲述.docx》由会员分享,可在线阅读,更多相关《汇编语言程序第二次作业讲述.docx(16页珍藏版)》请在冰豆网上搜索。

汇编语言程序第二次作业讲述.docx

汇编语言程序第二次作业讲述

一、单项选择题(只有一个选项正确,共10道小题)

1.若PORT_VAL<5,则执行指令MOVBX,((PORT_VALLT5)AND20)OR((PORT_VALGE5)AND30)后BX的内容是:

()。

  (A) 20

  (B) 30

  (C) 5

  (D) 10

你选择的答案:

 未选择  [错误]

正确答案:

A

解答参考:

2.假设(AL)=10010010, 

MOVCL,4

SHLAL,CL

执行上述指令后CF和AL的内容是()。

  (A) AF=1,(AL)=00001001

  (B) AF=0,(AL)=00001001

  (C) AF=1,(AL)=00100000

  (D) AF=0,(AL)=00100000

你选择的答案:

 未选择  [错误]

正确答案:

C

解答参考:

3.下面指令序列测试BH中的数是否为奇数, 若为奇数则转移至K1处,横线处的指令应为()。

TESTBH,01H

_____K1

  (A) JNE

  (B) JZ

  (C) JS

  (D) JC

你选择的答案:

 未选择  [错误]

正确答案:

A

解答参考:

4.已知标号NEXT与指令MOVAX,TYPENEXT在同一个段内,则AX的值为()。

  (A) 0

  (B) 1

  (C) 2

  (D) -1

你选择的答案:

 未选择  [错误]

正确答案:

B

解答参考:

5.DATASEGMENT

BUFDB1,2,3,4,5

COUNTEQU-BUF

DATAENDS

在以上数据段中COUNT的值为()

  (A) 3

  (B) 5

  (C) 4

  (D) 6

你选择的答案:

 未选择  [错误]

正确答案:

B

解答参考:

6.下列是8位二进制数的补码,其中真值最大的是(  )。

  (A) 10001000    

  (B) 11111111

  (C) 00000000 

  (D) 00000001

你选择的答案:

 未选择  [错误]

正确答案:

D

解答参考:

7.16位有符号数的补码所表示的十进制数的范围是(  )。

  (A) -32767~+32768  

  (B) -32768~+32767   

  (C) -65535~+65536

  (D) 0~65535

你选择的答案:

 未选择  [错误]

正确答案:

B

解答参考:

8.下面的XCHG指令中,语法正确的是()。

  (A) XCHGAL,DS

  (B) XCHGBL,[BX]

  (C) XCHGAL,0FH

  (D) XCHGBUF1,BUF2

你选择的答案:

 未选择  [错误]

正确答案:

B

解答参考:

9.LDSSI,ES:

[2000H]指令的全部功能是()。

  (A) 把地址2000H送SI

  (B) 把地址2000H字单元的内容送SI

  (C) 把地址2000H字单元内容送SI,把2002H字单元内容送DS

  (D) 把地址2000H字单元内容送DS,把2002H字单元内容送SI

你选择的答案:

 未选择  [错误]

正确答案:

C

解答参考:

10.数据定义如下:

BUF1DB10

BUF2DW20DUP(?

实现将BUF1单元的内容与BUF2开始的第三个字节单元内容相比较的指令是()。

  (A) CMPBUF1,BYTEPTRBUF2+3

  (B) MOVAL,BUF1

CMPAL,BYTEPTRBUF2+2

  (C) MOVAL,BUF1

CMPAL,BUF2+2

  (D) MOVAL,BUF1

CMPALBUF2+3

你选择的答案:

 未选择  [错误]

正确答案:

B

解答参考:

(注意:

若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。

在线只需提交客观题答案。

二、主观题(共15道小题)

11. 假设下列指令中的所有标识符均为类型属性为字的变量,请指出下列哪些指令是非法的?

它们的错误是什么?

(1)MOVBP,AL;

(2)MOVWORD_OP[BX+4*3][DI],SP

(3)MOVWORD_OP1,WORD_OP2;

(4)MOVAX,WORD_OP1[DX];

(5)MOVSAVE_WORD,DS

(6)MOVSP,SS:

DATA_WORD[BX][SI]

(7)MOV[BX][SI],2;

(8)MOVAX,WORD_OP1+WORD_OP2

(9)MOVAX,WORD_OP1-WORD_OP2+100

(10)MOVWORD_OP1,WORD_OP1-WORD_OP2

参考答案:

假设下列指令中的所有标识符均为类型属性为字的变量,请指出下列哪些指令是非法的?

它们的错误是什么?

(1)MOVBP,AL;错,寄存器类型不匹配

(2)MOVWORD_OP[BX+4*3][DI],SP

(3)MOVWORD_OP1,WORD_OP2;错,不能都是存储器操作数

(4)MOVAX,WORD_OP1[DX];错,DX不能用于存储器寻址

(5)MOVSAVE_WORD,DS

(6)MOVSP,SS:

DATA_WORD[BX][SI]

(7)MOV[BX][SI],2;错,[BX][SI]未指出数据类型

(8)MOVAX,WORD_OP1+WORD_OP2

(9)MOVAX,WORD_OP1-WORD_OP2+100

(10)MOVWORD_OP1,WORD_OP1-WORD_OP2

12. 假设VAR1和VAR2为字变量,LAB为标号,试指出下列指令的错误之处:

(1)ADDVAR1,VAR2;

(2)SUBAL,VAR1;

(3)JMPLAB[SI];

(4)JNZVAR1;

(5)JMPNEARLAB;

参考答案:

假设VAR1和VAR2为字变量,LAB为标号,试指出下列指令的错误之处:

(1)ADDVAR1,VAR2;不能都是存储器操作数

(2)SUBAL,VAR1;数据类型不匹配

(3)JMPLAB[SI];LAB是标号而不是变量名,后面不能加[SI]

(4)JNZVAR1;VAR1是变量而不是标号

(5)JMPNEARLAB;应使用NEARPTR

13. 有符号定义语句如下:

BUFFDB1,2,3,‘123’

EBUFFDB0

LEQUEBUFF-BUFF

问L的值是多少?

参考答案:

L=6。

14. 假设程序中的数据定义如下:

LNAMEDB30DUP(?

ADDRESSDB30DUP(?

CITYDB15DUP(?

CODE_LISTDB1,7,8,3,2

(1)用一条MOV指令将LNAME的偏移地址放入AX。

(2)用一条指令将CODE_LIST的头两个字节的内容放入SI。

(3)用一条伪操作使CODE_LENGTH的值等于CODE_LIST域的实际长度。

参考答案:

(1)MOVAX,OFFSETLNAME

(2)MOVSI,WORDPTRCODE_LIST

(3)CODE_LENGTHEQU-CODELIST;此语句必须放在CODELIST语句之后

15. 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。

参考答案:

程序段如下:

 

BEGIN:

MOVAH,1;从键盘输入一个字符的DOS调用

 

INT21H

 

CMPAL,‘a’ ;输入字符<‘a’吗?

 

JBSTOP

 

CMPAL,‘z’ ;输入字符>‘z’吗?

 

JASTOP

 

SUBAL,20H;转换为大写字母,用ANDAL,11011111B也可

 

MOVDL,AL;显示一个字符的DOS调用

 

MOVAH,2

 

INT21H

 

JMPBEGIN

 

STOP:

RET

16. 编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。

参考答案:

程序段如下:

BEGIN:

MOVAH,1;从键盘输入一个字符的DOS调用

INT21H

CMPAL,‘a’ ;输入字符<‘a’吗?

JBSTOP

CMPAL,‘z’ ;输入字符>‘z’吗?

JASTOP

DECAL;得到前导字符

MOVDL,AL;准备显示三个字符

MOVCX,3

DISPLAY:

MOVAH,2;显示一个字符的DOS调用

INT21H

INCDL

LOOPDISPLAY

STOP:

RET

 

 

 

 

 

 

 

 

 

 

 

 

 

 

17. 下面的程序段有错吗?

若有,请指出错误。

CRAYPROC

PUSHAX

ADDAX,BX

RET

ENDPCRAY

 

 

 

 

 

参考答案:

程序有错。

改正如下:

CRAYPROC

ADDAX,BX

RET

CRAYENDP;CRAY是过程名,应放在ENDP的前面

 

 

 

 

18. 写一段子程序SKIPLINES,完成输出空行的功能。

空出的行数在AX寄存器中。

参考答案:

程序如下:

CSEGSEGMENT

SKIPLINESPROCFAR

ASSUMECS:

CSEG

BEGIN:

PUSHCX

PUSHDX

MOVCX,AX

DISP:

MOVDL,0DH;显示回车换行,即输出空行

MOVAH,2;显示一个字符的DOS调用

INT21H

MOVDL,0AH

MOVAH,2;显示一个字符的DOS调用

INT21H

LOOPDISP

POPDX

POPCX

RET

SKIPLINESENDP

END

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

19. 编写一条宏指令CLRB,完成用空格符将一字符区中的字符取代的工作。

字符区首地址及其长度为变元。

参考答案:

宏定义如下:

 

CLRBMACRON,CFIL

 

MOVCX,N

 

CLD

 

MOVAL,‘ ’ ;;取空格符的ASCII码

 

LEADI,CFIL

 

REPSTOSB

 

ENDM

20. 写出分配给下列中断类型号在中断向量表中的物理地址。

(1)INT12H

(2)INT8

 

参考答案:

(1)中断类型号12H在中断向量表中的物理地址为00048H、00049H、0004AH、0004BH;

(2)中断类型号8在中断向量表中的物理地址为00020H、00021H、00022H、00023

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

当前位置:首页 > 法律文书 > 辩护词

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

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