1、345678910111213141516171819201.以下寄存器中,哪一个不属于地址指针寄存器?( A )(A)AX (B)BX (C)SI (D)DI2.以下标志位中,哪一个不属于状态标志位?( C )(A)CF (B)OF (C)IF (D)AF3.以下寄存器中,哪一个用于指示堆栈的栈顶位置?(A)IP (B)SI (C)SP (D)BX4.以下寄存器中,哪一个用于提供代码段的段基值?(A)SS (B)DS (C)CS (D)AX5.以下指令中,不影响标志位的是哪一条?( D )(A)INC (B)AND (C)SUB (D)XCHG第 1 页,共 10 页试卷编号:6.SF标志位
2、的含义是如下哪一个?(A)符号标志 (B)零值标志 (C)补码溢出标志 (D)进位标志7.LOOP指令隐含使用如下哪一个寄存器作为计数器?(A)AX (B)BX (C)CX (D)DX8.以下指令中,哪一条一定会访问堆栈段?(A)DEC (B)ADD (C)MOV (D)CALL 9.以下伪指令中,用于结束一个段定义的是哪一个?(A)END (B)SEGMENT (C)ENDP (D)ENDS10.以下伪指令中,用于分配一个字节空间的是哪一个?( B )(A)DB (B)DW (C)DD (D)EQU11.假设(AL)=35H,执行指令AND AL,0FH后,(AL)=( D )(A)3FH
3、(B)F5H (C)30H (D)05H12.假设(AL)=02H,执行指令INC AL后,CF =( D )(A)0 (B)1 (C)2 (D)与执行INC指令前一致13. 假设(AL)=05H,执行指令ADD AL,0后,PF =( B )(A)0 (B)1 (C)2 (D)与执行SUB指令前一致14. 假设(AL)=88H,执行指令SUB AL,90H后,OF =( A )(A)0 (B)1 (C)2 (D)与执行ADD指令前一致15.假设(AL)=68H,执行指令ADD AL,08H后,AF = ( B )16.假设(AL)=81H,执行指令ROL AL,1后,(AL)= ( C )(
4、A)80H (B)18H (C)03H (D)0C0H 17.假设(AL)=93H,执行指令SHL AL,1后,OF = ( b )18.假设(SP)=0060H,执行指令PUSH AX后,(SP)=( b )(A)0058H (B)005EH (C)0062H (D)0060H19.假设CF=1,以下哪一条转移指令一定会转移至目标地址?(A)JC (B)JNC (C)JS (D)JNZ20.假设(BL)=04H,执行指令XOR BL,0FH后,(BL)=( D )(A)00H (B)0FH (C)04H (D)0BH第 2 页,共 10 页二、多项选择题(本大题共5小题,每小题2分,共10分
5、)提示:在每小题列出的五个备选项中有二个至五个是符合题目要求的,请将其代码填写在下表中。错选、多选、少选或未选均无分。1.以下哪些指令会影响CF标志位?( CD )(A)INC (B)DEC (C)AND (D)SUB (E)JC2.以下指令中,哪些会访问堆栈段?( ABDE )(A)CALL (B)RET (C)JMP (D)PUSH (E)POPF3.假设(AL)=92H,CF=1,执行指令ADC AL,88H后,以下结果哪些是正确的?( ACE )(A)(AL)=1BH (B)(AL)=1AH (C)CF=1 (D)OF=0 (E)ZF=04.假设(AL)=86H,执行指令SAR AL,
6、1后,以下结果哪些是正确的?( ACDE )(A)(AL)=0C3H (B)(AL)=0CH (C)CF=0 (D)OF=0 (E)PF=05.以下指令中,哪些使用了存储器寻址方式?( BCD )(A)ADD AL,02H (B)SUB BL,0104H (C)INC BYTE PTR BX(D)AND AL,SI (E)XOR BL,CL三、判断改错题(本大题共5小题,每小题4分,共20分)提示:下列各语句可能有语法错误,判断各语句正确与否,对于错误的语句,需解释其错误的原因,对于正确的语句,若做出正确判断则给4分,对于错误的语句,做出正确判断给2分,做出正确的解释再给2分。1. NEG 1
7、45 XNEG指令不能跟立即数2. JZ BX X条件转移指令JZ不能寄存器寻址,只能跟标号第 3 页,共 10 页3. OR BL,SI 对4. MOV BYTE PTR SI, BYTE PTR BX XMOV指令的两个操作数不能都为存单元5. XCHG AL,05H XXCHG指令的操作数不能有立即数四、程序分析题(本大题共5小题,每小题5分,共25分)。提示:每小题给出了一个程序片段,请按各小题的要求分析程序片段的执行结果或功能,并在空白处填写分析结果,分析正确则按照每空后标注的分值给分,如果分析错误则该空不得分。1. 有如下程序片段:MOV AL,35HMOV CL, 04HSHL
8、AL, CL执行该程序片段后,(AL)的十六进制形式为 50H (3分),PF = 1 (1分),ZF = 0 (1分)2. 有如下程序片段:MOV AL, 76HAND AL, 0FHOR AL, 80H执行该程序片段后,(AL)的十六进制形式为 86H (3分),CF = 0 (1分),OF = 0 (1分)第 4 页,共 10 页3. 有如下程序片段:MOV AL, 0F2HTEST AL, 01HJZ L1JMP L2L1:OR AL, 01HJMP L3L2:AND AL, 0FEHL3:执行该程序片段后,(AL)的十六进制形式为 0F3H (3分),CF = 0 (1分),PF =
9、 1 (1分)4. 有如下程序片段:MOV AL, 02HXOR BL, BLMOV AH, 13HMOV CX, 08HSHL AH, 1JC L2ADD BL, ALLOOP L1执行该程序片段后,(BL)的十六进制形式为 06H (3分),(CX) = 00H (1分),第 5 页,共 10 页5. 有如下程序片段:MOV AL, 92HMOV AH, 03HCMP AL, AHJG L1MOV AL,0L2: MOV AL,0FFH执行该程序片段后,(AL)的十六进制形式为 0FFH (3分),OF = 0 (1分),SF = 1 (1分)五、程序设计题(本大题共2小题,第1小题12分
10、,第2小题13分,共25分)。每小题给出了一个程序设计要求,请按照要求写出源程序代码,如果源程序代码中出现语法错误或逻辑错误,则酌情扣分。1试编写一个子程序,统计指定8位补码数组中负数的个数,假设指定数组最大长度不超过255字节。子程序的入口参数包括指定数组的偏移量、指定数组的长度,要求使用堆栈传递入口参数,传递顺序按上述顺序;子程序的出口参数为数组中负数的个数,要求使用AL寄存器传递出口参数。(注:仅写出子程序相关源代码,不写调用该子程序的相关源代码)GRAVES PROC FAR PUSH BP MOV BP,SP PUSH DS PUSH SI PUSH CX PUSH BX PUSH
11、AX MOV BX,BP+6 MOV CX,BP+8 XOR AH,AHLOOP1:MOV AH,BX OR AH,7FH CMP AH,0FFH JE L1 JMP L2L1:INC ALINC BX LOOP LOOP1 POP AX POP BX POP CX POP SI POP DS POP BP RET 4GRAVES ENDP2. 试编写一个完整程序,从键盘接收一个字符串(最大长度不超过50个字符),检测字符串中的逗号字符,在每个逗号后插入一个空格字符,换行显示处理后的字符串。写出完整源代码)DATA SEGMENT MAXLEN DB 50 LEN DB ? STR1 DB 5
12、1 DUP(?) STR2 DB 101 DUP(? NLINE DB 0AH,0DH,$DATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODEBEGIN:MOV AX,DATAMOV DS,AXMOV AH,0AHLEA DX,MAXLENINT 21H MOV CL,LEN XOR CH,CH LEA SI,STR1 LEA DI,STR2MOV AL,SI MOV DI,AL INC DI CMP AL,MOV DL, MOV DI,DLINC SI LEA DX,NLINE MOV AH,09H INT 21H LEA DX,STR2 MOV AH,4CHCODE ENDSEND BEGIN
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2