汇编语言程序第三次作业.docx
《汇编语言程序第三次作业.docx》由会员分享,可在线阅读,更多相关《汇编语言程序第三次作业.docx(19页珍藏版)》请在冰豆网上搜索。
![汇编语言程序第三次作业.docx](https://file1.bdocx.com/fileroot1/2022-10/10/8e021408-101b-42ae-8e06-fbd9c29d6f24/8e021408-101b-42ae-8e06-fbd9c29d6f241.gif)
汇编语言程序第三次作业
一、单项选择题(只有一个选项正确,共10道小题)
1.某数据段如下:
DATASEGMENT
ORG20H
XDB12H
YDW789AH
DATAENDS
则Y单元的偏移址是()。
(A) 0
(B) 20H
(C) 21H
(D) 12H
你选择的答案:
未选择 [错误]
正确答案:
C
解答参考:
2.MOVAL,-1
NEGAL
XORAL,65
上述程序段执行后,AL中的容是()。
(A) 40H
(B) 64H
(C) 01H
(D) 61H
你选择的答案:
未选择 [错误]
正确答案:
B
解答参考:
3.下面的数据传送指令中,错误的操作是()。
(A) MOVSS:
[BX+DI],1000H
(B) MOVDX,1000H
(C) MOVWORDPTR[BX],1000H
(D) MOVDS,2000H
你选择的答案:
未选择 [错误]
正确答案:
D
解答参考:
4.设AH=0,AL=06H,BL=09H,执行指令
ADDAL,BL
AAA
之后,其结果应是()。
(A) AH=01,AL=05
(B) AH=1AL=15
(C) AH=0,AL=0FH
(D) AH=0AL=05
你选择的答案:
未选择 [错误]
正确答案:
A
解答参考:
5.BUFAEQUTHISWORD
BUFBDB80DUP(0)
对以上两条语句而言,下列说法不正确的是()。
(A) BUFA与BUFB对应同一存储单元地址。
(B) BUFA与BUFA具有相同的偏移属性。
(C) BUFA与BUFB具有相同的类型属型。
(D) BUFA与BUFB具有相同的段属性。
你选择的答案:
未选择 [错误]
正确答案:
C
解答参考:
6.已定义数据:
FEESDW100DUP(0,2DUP(?
)),执行指令MOVAL,LENGTHFEES后AL寄存器容为()。
(A) 1
(B) 100
(C) 200
(D) 2
你选择的答案:
未选择 [错误]
正确答案:
B
解答参考:
7.09号中断的中断向量所处存中相应单元的物理地址为()。
(A) 00009H
(B) 00012H
(C) 00024H
(D) 00036H
你选择的答案:
未选择 [错误]
正确答案:
C
解答参考:
8.在VAR单元中存放着数据2010H的地址2000H。
MOVBX,VAR
MOVAX,[BX]
执行上述指令AX和BX寄存器的容分别是()。
(A) AX=2000H,BX=2010H
(B) AX=2010H,BX=2000H
(C) AX=22010H,BX=22100H
(D) AX=22100H,BX=22010H
你选择的答案:
未选择 [错误]
正确答案:
B
解答参考:
9.下列指令中能实现把AX,BX寄存器容进行交换的是()。
(A) XCHGCX,BX
(B) MOVCL,AX
(C) PUSHAX
(D) MOVAX,BX
XCHGAX,CX
MOVAX,BX
PUSHBX
MOVBX,AX
MOVBX,CL
POPAX
POPBX
你选择的答案:
未选择 [错误]
正确答案:
C
解答参考:
10.数据段定义如下:
DATASEGMENT
0RG0074H
ARRAYDW1,2,+4,3,4
DATAENDS
则执行指令MOVAX,ARRAY[4]后,AX寄存器的容是()。
(A) 0002H
(B) 0082H
(C) 007CH
(D) 0003H
你选择的答案:
未选择 [错误]
正确答案:
C
解答参考:
(注意:
若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。
在线只需提交客观题答案。
)
二、主观题(共21道小题)
11. 从缓冲区写信息到一个文件,如果没有关闭文件,可能会出现什么问题?
参考答案:
文件结尾的部分信息就没有被写入磁盘,从而造成写入的文件不完整。
12. 下面的ASCIZ串有什么错误?
PATH_NAMEDB‘C:
\PROGRAMS\TEST.DAT’
参考答案:
此ASCIZ串的最后少了一个全0字节,应改为:
PATH_NAMEDB‘C:
\PROGRAMS\TEST.DAT’,0
13. 据定义如下:
X1DB10H,100,-1
X2DW10H,100,-1
X3DD?
COUNTEQUX3-X1
变量COUNT的值是,其表示的意义是 。
参考答案:
9X1和X2两个变量所占存字节单元的个数。
(写为存单元的个数也正确。
如果写为字单元则为错误)
14. 执行指令
MOVAX,0
MOVAL,09H
ADDAL,4
若要获得结果AX=0103H,则在ADD指令之后,加一条 指令,若要获得结果AL=13H,在ADD指令之后加一条 指令。
参考答案:
DAAAAA
15. 实现AL中高四位置1的指令为。
实现AL中高四位取反的指令为。
参考答案:
ORAL,0F0HXORAL,0F0H
16. 存贮器的地址区域___________为中断向量区。
参考答案:
◎最低1K字节◎(0-3FFH)◎0000开始的1K字节
以上三个答案都正确
17. X、Y、Z是双精度数,他们分别存放在X、X+2、Y、Y+2、Z、Z+2的存单元中,高位字存放在高位地址中,低位字存放在低位地址中,下列指令序列实现X+Y+24-ZW。
并且用W和W+2单元存放运算结果:
MOVAX,X
MOVDX,X+2
ADDAX,Y
ADCDX,Y+2
ADDAX,24
SUBAX,Z
SUBDX,Z+2
MOVW,AX
MOVW+2,DX
分析以上指令序列,指出程序中出现的错误:
;
。
参考答案:
在ADD和SUB两条指令之间加上ADCDX,0(仅仅写出这条指令就正确)
把SUBDX,Z+2改成SBBDX,Z+2(仅仅写出这条指令就正确)
18. 在数据段中有一个字符串,其长度是17,要求把他们传送到附加段中的一个缓冲区。
DATASEGMENT
MESS1DB‘PERSONALCOMPUTER’
DATAENDS
EXTRASEGMENT
MESS2DB17DUP(?
)
EXTRAENDS
CODESEGMENT
MAINPROCFAR
ASSUMECS:
CODE,DS:
DATA,ES:
EXTRA
START:
PUSHDS
SUBAX,AX
PUSHAX
LEASI,MESS1
LEADI,MESS2
CLD
REPMOVSB
RET
MAINENDP
CODEENDS
ENDSTART
以上是完整的程序段,请分析主过程,修改主过程中的错误。
1、;
2、;
3、;
4、;
5、。
参考答案:
MOVAX,DATA
MOVDS,AX
MOVAX,EXTRA
MOVES,AX
MOVCX,17只要写出以上5条指令就给分,每条指令1分。
评分标准:
指令中没有写出逗号、没有写对相应数据、写错操作码都视为错误答案。
19. 已知主程序和子程序之间的调用如下:
STACKSEGMENT
DB100DUP(0)
STACKENDS
CODE1SEGMENT
ASSUMECS:
CODE1,SS:
STACK
BEG:
¼
MOVAX,0A3BH
MOVCX,1234H
CALLFARPTRAA;断点(IP)=1110H,(CS)=0200H
¼
CODE1ENDS
CODE2SEGMENT
ASSUMECS:
CODE2
AAPROCFAR
PUSHAX
PUSHCX
BB:
¼
RET
AAENDP
CODE2ENDS
ENDBEG
画出执行到标号BB时,堆栈的情况图。
参考答案:
1234H
0A3BH
1110H
0200H
20. 试编写一个程序把BX寄存器的二进制数用十六进制数的形式在屏幕上显示出来。
参考答案:
1、 CODESEGMENT
MAINPROCFAR
ASSUMECS:
CODE
START:
PUSHDS
SUBAX,AX
PUSHAX
MOVCH,4
ROTATE:
MOVCL,4
ROLBX,CL
MOVAL,BL
ANDAL,0FH
ADDAL,30H
CMPAL,3AH
JLPRINTIT
ADDAL,07H
PRINTIT:
MOVDL,AL
MOVAH,2
INT21H
DECCH
JNZROTATE
RET
MAINENDP
CODEENDS
ENDSTART
21. 写出一段子程序,完成输出空行的功能。
空出的行数在AX寄存器中。
参考答案:
CODESEGMENT
MAINPROCFAR
ASSUMECS:
CODE
START:
PUSHDS
SUBAX,AX
PUSHAX
MOVAX,5
OUTPUT:
PUSHAX
CALLDISP
POPAX
DECAX
22. 假定(DS)=2000H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H则
MOVAX,[BX+10]的寻址方式是;操作数的物理地址是。
MOVAX,[BP][SI]的寻址方式是;操作数的物理地址是。
参考答案:
寄存器相对寻址物理地址:
20110H
基址变址寻址物理地址:
150B0H
23. 如果TABLE为数据段中0032H单元的符号名,其中存放的容为1234H,则执行MOVAX,TABLE后AX寄存器的容是;执行LEAAX,TABLE后AX寄存器的容是。
参考答案:
1234H0032H
24. 如果TABLE为数据段中0032H单元的符号名,其中存放的容为1234H,则执行MOVAX,TABLE后AX寄存器的容是;执行LEAAX,TABLE后AX寄存器的容是。
参考答案:
1234H0032H
25. 1、汇编语言程序上机操作的步骤是;
;;
。
参考答案:
用编辑器编写汇编源程序ASM文件
用MASM命令编译ASM文件为