江南大学现代远程教育上半年第三阶段测试卷A考试科目:《汇编语言程序设计》第5章至第7章(总分100分)时间:90分钟______________学习中心(教学点)批次:层次:专业:学号:身份证号:姓名:得分:一、单选题(每题3分,共24分)1.设某子程序使用的返回指令是RET 4,则返回地址为__________A.CALL指令下面第4条指令的地址B.CALL指令下面第2条指令的地址C.(SP+1)和(SP)中存放的地址D.(SP+5)和(SP+4)中存放的地址2. 执行CALL FAR PTR SUB1指令后,在堆栈区域中应__________A.弹出两个字节的内容B.压入两个字节的内容C.压入四个字节的内容D.弹出四个字节的内容3、对于下列要求,若用汇编语言设计,其中必须采用循环结构来完成的是A.拆字(将某一存贮单元中的内容拆成两个BCD码)B.比较两个带符号数的大小C.延时1秒种D.查表4、已知中断类型号为0BH,则其中断服务程序入口地址存放在中断矢量表中的地址是A.CS:000BH B.0000:000BHC.CS:002CH D.0000:002CH5、在汇编语言程序的开发过程中使用宏功能的顺序是A、宏定义,宏调用B、宏定义,宏展开C、宏定义,宏调用,宏展开D、宏定义,宏展开,宏调用6、循环指令LOOPNZ终止循环的条件是A、CX=0,且ZF=0B、CX=0,或ZF=1C、CX≠0,且ZF=0D、CX≠0,或ZF=17.已知RET指令是属性为NEAR子程序中的返回指令,执行RET之前SP=100H,执行后SP的内容为。
A.100H B.102H C.98H D.0FEH8.伪指令用来指定宏局部标号。
A.PUBLIC B.LOCAL C.EXTRN D.ASSUME二、阅读下列程序,并回答问题(每题10分,共30分)1. 有下列程序段:BUF DB 0CHMOV AL,BUFCALL FAR PTR HECA..HECA PROC FARCMP AL,10JC KlADD AL,7K1:ADD AL,30HMOV DL,ALMOV AH,2INT 21HRETHECA ENDP问:程序执行后,DL=?屏幕上显示输出的字符是什么?2、阅读下列程序MOV AL,38HMOV BL,49HCALL SUBOINC ALDEC CL┇SUBO PROCADD AL,BLMOV CL,ALDAARETSUBO ENDP上述程序段运行后,(AL)=_________,(CL)=_________3、设程序中的MM为一带符号数,阅读下列程序并回答下列问题程序:DA TA SEGMENTBUF1 DB MMBUF2 DB ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART PROCMOV AX,DA TAMOV DS,AXMOV BX,OFFSET BUF1MOV DI,OFFSET BUF2MOV AH,[ BX ]OR AH,AHJZ ZEROJL MINUSMOV AH,01HJMP ASSIGNZERO:MOV AH,00HJMP ASSIGNMINUS:MOV AH,0FFHASSIGN:MOV [ DI ],AHINT 20H ;返回DOSSTART ENDPCODE ENDSEND START问题:A:该程序完成的操作是(1);B:当MM为80H时,程序执行后BUF2单元的内容为(2);C:若程序中指令JL MINUS改为JNL MINUS且MM为00H时,则程序执行后BUF2单元的内容为(3)三、根据题意完善程序(每空3分,共27分)下面的程序把缓冲区NUM中的十六进制值转换为4个ASCII码,依次放入缓冲区STRING 中,并显示输出,请根据题意,完善该程序。
DA TA SEGMENTNUM DW 45AFHSTRING DB 4 DUP(?),‘$’DA TA ENDSSTACK SEGMENT PARA STACK ‘STACK’DB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME (1)BEGIN:MOV AX,DA TAMOV DS,AXLEA BX,STRINGCALL BINHEXLEA(2),STRINGMOV AH,9INT 21HMOV AH,(3)INT 21HBINHEX PROCMOV AX,NUMMOV DI,BXADD DI,3MOV DX,AXMOV CX,4AGAIN:AND AX,0FHCMP AL,0AH(4)ADD AL,‘a’―‘0’―0ahADDZ:ADD AL,‘0’MOV [ DI ],ALDEC (5)PUSH CXMOV CL,4SHR DX,CLMOV AX,DXPOP(6)LOOP AGAIN(7)BINHEX (8)CODE ENDSEND (9)四、编程题(共19分)编写一个完整程序,如果字节变量 TESTONE和 TESTTWO相等,则调用 ALLSAME子程序在屏幕上显示字符‘*’,否则调用 NOTSAME子程序在屏幕上显示字符‘&’。
答卷(考试成绩以答卷中给出的答案为准,以下信息需完整填写!)______________学习中心(教学点)批次:层次:专业:学号:身份证号:姓名:得分:一、单选题(每题3分,共24分)1.设某子程序使用的返回指令是RET 4,则返回地址为__________A.CALL指令下面第4条指令的地址B.CALL指令下面第2条指令的地址C.(SP+1)和(SP)中存放的地址D.(SP+5)和(SP+4)中存放的地址答:C2. 执行CALL FAR PTR SUB1指令后,在堆栈区域中应__________A.弹出两个字节的内容B.压入两个字节的内容C.压入四个字节的内容D.弹出四个字节的内容答:C3、对于下列要求,若用汇编语言设计,其中必须采用循环结构来完成的是A.拆字(将某一存贮单元中的内容拆成两个BCD码)B.比较两个带符号数的大小C.延时1秒种D.查表答: C4、已知中断类型号为0BH,则其中断服务程序入口地址存放在中断矢量表中的地址是A.CS:000BH B.0000:000BHC.CS:002CH D.0000:002CH答: D5、在汇编语言程序的开发过程中使用宏功能的顺序是A、宏定义,宏调用B、宏定义,宏展开C、宏定义,宏调用,宏展开D、宏定义,宏展开,宏调用答案:C6、循环指令LOOPNZ终止循环的条件是A、CX=0,且ZF=0B、CX=0,或ZF=1C、CX≠0,且ZF=0D、CX≠0,或ZF=1答案:B7.已知RET指令是属性为NEAR子程序中的返回指令,执行RET之前SP=100H,执行后SP的内容为。
A.100H B.102H C.98H D.0FEH答:B8.伪指令用来指定宏局部标号。
A.PUBLIC B.LOCAL C.EXTRN D.ASSUME答:B二、阅读下列程序,并回答问题(每题10分,共30分)1. 有下列程序段:BUF DB 0CHMOV AL,BUFCALL FAR PTR HECA..HECA PROC FARCMP AL,10JC KlADD AL,7K1:ADD AL,30HMOV DL,ALMOV AH,2INT 21HRETHECA ENDP问:程序执行后,DL=?屏幕上显示输出的字符是什么?答:DL=43H,屏幕上显示输出的字符是‘C’。
2、阅读下列程序MOV AL,38HMOV BL,49HCALL SUBOINC ALDEC CL┇SUBO PROCADD AL,BLMOV CL,ALDAARETSUBO ENDP上述程序段运行后,(AL)=_________,(CL)=_________答案:(AL)=88H (CL)=80H3、设程序中的MM为一带符号数,阅读下列程序并回答下列问题程序:DA TA SEGMENTBUF1 DB MMBUF2 DB ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART PROCMOV AX,DA TAMOV DS,AXMOV BX,OFFSET BUF1MOV DI,OFFSET BUF2MOV AH,[ BX ]OR AH,AHJZ ZEROJL MINUSMOV AH,01HJMP ASSIGNZERO:MOV AH,00HJMP ASSIGNMINUS:MOV AH,0FFHASSIGN:MOV [ DI ],AHINT 20H ;返回DOSSTART ENDPCODE ENDSEND START问题:A:该程序完成的操作是(1);B:当MM为80H时,程序执行后BUF2单元的内容为(2);C:若程序中指令JL MINUS改为JNL MINUS且MM为00H时,则程序执行后BUF2单元的内容为(3)答案:(1)判定MM的正负。
当MM=0时BUF2置为0;当MM>0时BUF2置为1当MM<0时BUF2置为-1(2)-1 (3)0三、根据题意完善程序(每空3分,共27分)下面的程序把缓冲区NUM中的十六进制值转换为4个ASCII码,依次放入缓冲区STRING 中,并显示输出,请根据题意,完善该程序。
DA TA SEGMENTNUM DW 45AFHSTRING DB 4 DUP(?),‘$’DA TA ENDSSTACK SEGMENT PARA STACK ‘STACK’DB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME (1)BEGIN:MOV AX,DA TAMOV DS,AXLEA BX,STRINGCALL BINHEXLEA(2),STRINGMOV AH,9INT 21HMOV AH,(3)INT 21HBINHEX PROCMOV AX,NUMMOV DI,BXADD DI,3MOV DX,AXMOV CX,4AGAIN:AND AX,0FHCMP AL,0AH(4)ADD AL,‘a’―‘0’―0ahADDZ:ADD AL,‘0’MOV [ DI ],ALDEC (5)PUSH CXMOV CL,4SHR DX,CLMOV AX,DXPOP(6)LOOP AGAIN(7)BINHEX (8)CODE ENDSEND (9)答案:(1)CS:CODE,DS:DATA,SS:STACK(2)DX(3)4CH(4)JL ADDZ / JB / JNAE / JC / JL / JNGE(5)DI(6)CX(7)RET(8)ENDP(9)BEGIN四、编程题(共19分)编写一个完整程序,如果字节变量 TESTONE和 TESTTWO相等,则调用 ALLSAME子程序在屏幕上显示字符‘*’,否则调用 NOTSAME子程序在屏幕上显示字符‘&’。