1、汇编语言程序第三次作业 一、单项选择题(只有一个选项正确,共10道小题)1. 某数据段如下:DATA SEGMENTORG 20HX DB 12HY DW 789AHDATA ENDS则Y 单元的偏移址是( )。(A)0(B)20H(C)21H(D)12H你选择的答案:未选择错误正确答案:C解答参考:2. MOV AL,-1 NEG ALXOR AL,65上述程序段执行后,AL中的容是( )。(A)40H (B)64H(C)01H(D)61H你选择的答案:未选择错误正确答案:B解答参考:3. 下面的数据传送指令中,错误的操作是( )。(A)MOV SS:BX+DI,1000H(B)MOV DX
2、,1000H(C)MOV WORD PTRBX,1000H(D)MOV DS,2000H你选择的答案:未选择错误正确答案:D解答参考:4. 设AH0,AL06H,BL09H,执行指令ADD AL,BLAAA之后,其结果应是( )。(A)AH01,AL05(B)AH1 AL15(C)AH0 ,AL0FH(D)AH0 AL05你选择的答案:未选择错误正确答案:A解答参考:5. BUFA EQU THIS WORD BUFB DB 80 DUP (0)对以上两条语句而言,下列说法不正确的是( )。(A)BUFA 与BUFB对应同一存储单元地址。(B)BUFA与BUFA具有相同的偏移属性。(C)BUF
3、A与BUFB具有相同的类型属型。(D)BUFA 与BUFB具有相同的段属性。你选择的答案:未选择错误正确答案:C解答参考:6. 已定义数据:FEES DW 100 DUP(0,2 DUP(?),执行指令MOV AL,LENGTH FEES后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。 MOV BX
4、,VAR MOV AX,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)XCHG CX,BX(B)MOV CL,AX(C)PUSH AX(D)MOV AX,BX XCHG AX,CX MOV AX,BX PUSH BX MOV BX,AX MOV BX,CL POP AX POP BX 你选择的答案:未选择错误正确
5、答案:C解答参考:10. 数据段定义如下: DATA SEGMENT 0RG 0074H ARRAY DW 1,2,+4,3,4 DATA ENDS则执行指令 MOV AX,ARRAY4后,AX寄存器的容是( )。(A)0002H(B)0082H(C)007CH(D)0003H你选择的答案:未选择错误正确答案:C解答参考:(注意:若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。在线只需提交客观题答案。)二、主观题(共21道小题)11.从缓冲区写信息到一个文件,如果没有关闭文件,可能会出现什么问题?参考答案:文件结尾的部分信息就没有被写入磁盘,从而造成写入的文件不完整。12
6、.下面的ASCIZ串有什么错误?PATH_NAME DB C:PROGRAMSTEST.DAT参考答案:此ASCIZ串的最后少了一个全0字节,应改为:PATH_NAME DB C:PROGRAMSTEST.DAT, 013.据定义如下:X1 DB 10H,100,1X2 DW 10H,100,1X3 DD ?COUNT EQU X3X1变量COUNT的值是 ,其表示的意义是 。参考答案: 9 X1和X2两个变量所占存字节单元的个数。(写为存单元的个数也正确。如果写为字单元则为错误)14.执行指令MOV AX,0MOV AL,09HADD AL,4若要获得结果AX0103H,则在ADD指令之后,
7、加一条 指令,若要获得结果AL13H,在ADD指令之后加一条 指令。参考答案:DAA AAA15.实现AL中高四位置1的指令为 。实现AL中高四位取反的指令为 。参考答案: OR AL,0F0H XOR AL,0F0H16.存贮器的地址区域_为中断向量区。参考答案:最低1K字节 (0-3FFH) 0000开始的1K 字节以上三个答案都正确17.X、Y、Z是双精度数,他们分别存放在X、X+2、Y、Y+2、Z、Z+2的存单元中,高位字存放在高位地址中,低位字存放在低位地址中,下列指令序列实现X+Y+24-Z W。并且用W和W+2单元存放运算结果: MOV AX,X MOV DX,X+2 ADD A
8、X,Y ADC DX,Y+2 ADD AX,24 SUB AX,Z SUB DX,Z+2 MOV W,AX MOV W+2,DX分析以上指令序列,指出程序中出现的错误: ; 。参考答案: 在ADD和SUB两条指令之间加上 ADC DX,0(仅仅写出这条指令就正确)把SUB DX,Z+2改成SBB DX,Z+2(仅仅写出这条指令就正确)18.在数据段中有一个字符串,其长度是17,要求把他们传送到附加段中的一个缓冲区。 DATA SEGMENT MESS1 DB PERSONAL COMPUTER DATA ENDS EXTRA SEGMENT MESS2 DB 17 DUP(?) EXTRA E
9、NDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE, DS:DATA,ES:EXTRA START: PUSH DS SUB AX,AX PUSH AX LEA SI,MESS1 LEA DI,MESS2 CLD REP MOVSB RET MAIN ENDP CODE ENDS END START以上是完整的程序段,请分析主过程,修改主过程中的错误。1、 ;2、 ;3、 ;4、 ;5、 。参考答案: MOV AX,DATAMOV DS,AXMOV AX,EXTRAMOV ES,AXMOV CX,17 只要写出以上5条指令就给分,每条指令1分。评分标准:
10、指令中没有写出逗号、没有写对相应数据、写错操作码都视为错误答案。19.已知主程序和子程序之间的调用如下:STACK SEGMENT DB 100 DUP(0)STACK ENDSCODE1 SEGMENTASSUME CS:CODE1,SS:STACKBEG: MOV AX, 0A3BHMOV CX, 1234HCALL FAR PTR AA ;断点(IP)=1110H, (CS)=0200HCODE1 ENDSCODE2 SEGMENT ASSUME CS:CODE2AA PROC FARPUSH AX PUSH CXBB: RETAA ENDPCODE2 ENDSEND BEG画出执行到标
11、号BB时,堆栈的情况图。参考答案:1234H0A3BH1110H0200H20.试编写一个程序把 BX寄存器的二进制数用十六进制数的形式在屏幕上显示出来。参考答案:1、CODE SEGMENTMAIN PROC FAR ASSUME CS:CODE START: PUSH DS SUB AX,AX PUSH AX MOV CH,4 ROTATE:MOV CL,4 ROL BX,CL MOV AL,BL AND AL,0FH ADD AL,30H CMP AL,3AH JL PRINTIT ADD AL,07H PRINTIT:MOV DL,AL MOV AH,2 INT 21H DEC CH
12、JNZ ROTATE RETMAIN ENDPCODE ENDSEND START 21.写出一段子程序,完成输出空行的功能。空出的行数在AX寄存器中。参考答案:CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE START: PUSH DS SUB AX,AX PUSH AX MOV AX,5 OUTPUT:PUSH AX CALL DISP POP AX DEC AX 22.假定(DS)=2000H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H则MOV AX,BX+10的寻址方式是 ;操作数的物理地址是 。MOV A
13、X,BPSI的寻址方式是 ;操作数的物理地址是 。参考答案:寄存器相对寻址 物理地址:20110H 基址变址寻址 物理地址:150B0H23.如果TABLE为数据段中0032H单元的符号名,其中存放的容为1234H,则执行MOV AX,TABLE 后AX寄存器的容是 ;执行LEA AX,TABLE后AX寄存器的容是 。参考答案:1234H 0032H24.如果TABLE为数据段中0032H单元的符号名,其中存放的容为1234H,则执行MOV AX,TABLE 后AX寄存器的容是 ;执行LEA AX,TABLE后AX寄存器的容是 。参考答案:1234H 0032H25.1、汇编语言程序上机操作的步骤是 ; ; ; 。参考答案:用编辑器编写汇编源程序ASM文件 用MASM命令编译ASM文件为
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1