汇编语言程序设计自测试题2 一、单项选择题(每小题2分,共30分) 1.IBM PC微机中,有符号数是用()表示的。 (A)原码 -(B)反码 (C)BCD (D)补码 2.堆栈指示寄存器是()。 (A)IP -(B)SP (C)BP (D)PSW 3.当执行指令ADD AX,BX后,若AX的内容为2BAOH,设置的奇偶标志位PF=1, 下面的叙述正确的是()。 (A)表示结果中含1的个数为偶数 (B)表示结果中含1的个数为奇数 (C)表示该数为偶数 -(D)表示结果中低八位含1的个数为偶数 4.完成将累加器AL清零,并使进位标志C℉清零,下面错误的指令是()。 -(A)MOV AL,0OH (B)AND AL,00H (C)XOR AL,AL (D)SUB AL,AL 5.下列指令执行后总是使C℉=0,0P=0的是()。 -(A)AND (B)NEG (C)NOT (D)INC 6.完成同指令XCHG AX,BX相同功能的指令或指令序列是()。 (A)MOV AX,BX (B)MOV BX,AX (C)PUSH AX POP BX -(D)MOV CX,AX MOV AX,BX MOV BX,CX 7.执行指令MOV AL,OFEH ADD AL,AL ADC AL,AL 之后,其结果应是()。 (A)AL=0F8H CF=1 (B)AL=0F8H CF=0 (C)AL=0F9H CF=0 -(D)AL=0F9H CF=1 8.DEBUG中的执行一段子程序的命令是()。 (A)D (B)T -(C)P (D)U
汇编语言程序设计自测试题 2 一、单项选择题(每小题 2 分,共 30 分) 1.IBM PC 微机中,有符号数是用( )表示的。 (A) 原码 -(B) 反码 (C) BCD (D) 补码 2.堆栈指示寄存器是( )。 (A) IP -(B) SP (C) BP (D) PSW 3.当执行指令 ADD AX,BX 后,若 AX 的内容为 2BA0H,设置的奇偶标志位 PF=1, 下面的叙述正确的是( )。 (A) 表示结果中含 1 的个数为偶数 (B) 表示结果中含 1 的个数为奇数 (C) 表示该数为偶数 -(D) 表示结果中低八位含 1 的个数为偶数 4.完成将累加器 AL 清零,并使进位标志 CF 清零,下面错误的指令是( )。 -(A) MOV AL,00H (B) AND AL,00H (C) XOR AL,AL (D) SUB AL,AL 5.下列指令执行后总是使 CF=0,OF=0 的是( )。 -(A) AND (B) NEG (C) NOT (D) INC 6.完成同指令 XCHG AX,BX 相同功能的指令或指令序列是( )。 (A) MOV AX,BX (B) MOV BX,AX (C) PUSH AX POP BX -(D) MOV CX,AX MOV AX,BX MOV BX,CX 7.执行指令 MOV AL,0FEH ADD AL,AL ADC AL, AL 之后,其结果应是( )。 (A) AL=0F8H CF=1 (B) AL=0F8H CF=0 (C) AL= 0F9H CF=0 -(D) AL=0F9H CF=1 8.DEBUG 中的执行一段子程序的命令是( )。 (A) D (B) T -(C) P (D) U
9.在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是()。 (A)CX=0且ZF=0 (B)CX=0且ZF=1 -(C)CX=0或ZF=0 (D)CX=0或ZF=1 10.下面指令中,合理而有意义的指令是()。 (A)REP LODSB (B)REP SCASB (C)REP CMPSB -(D)REP MOVSB 11.下面两个传送指令语句的源操作数寻址方式是()。 VAR1 DW 32H VAR2-32H MOV AX,VARI MOV BX,VAR2 (A)都是立即数寻址 (B)立即数寻址,直接寻址 -(C)直接寻址,立即数寻址(D)都是直接寻址 12.与MOV BX,OFFSET VAR指令完全等效的指令是(). (A)MOV BX,VAR (B)LDS BX,VAR (C)LES BX,VAR -(D)LEA BX,VAR 13.下列合法的指令是().。 (A)OUT AX,30H -(B)OUT DX,AL (C)OUT AL,DX (D)OUT 30H,AH 14.下面的CMP指令中,语法正确的是()。 (A)CMP BUF1,BUF2 -(B)CMP AL,OFH (C)CMP BUF1,OFH (D)CMP AL,BX 15.用于显示单个字符的D0S系统功能调用,应设置AH寄存器的内容为()。 (A)1H -(B)2H (C)9H (D)10H 二、简答题(每小题4分,共8分) 1.在某子程序的开始处要保护AX,BX,CX,DX四个寄存器信息,在子程序结 束时要恢复这四个寄存器信息。例如: PUSH AX\ PUSH BX\保护现场 PUSH CX PUSH DX/
9.在串操作指令前使用重复前缀指令 REPE,终止串的重复操作条件是( )。 (A) CX=0 且 ZF=0 (B) CX=0 且 ZF=1 -(C) CX=0 或 ZF=0 (D) CX=0 或 ZF=1 10.下面指令中,合理而有意义的指令是( )。 (A) REP LODSB (B) REP SCASB (C) REP CMPSB -(D) REP MOVSB 11.下面两个传送指令语句的源操作数寻址方式是( )。 VAR1 DW 32H VAR2=32H … MOV AX,VAR1 MOV BX,VAR2 (A) 都是立即数寻址 (B)立即数寻址,直接寻址 -(C) 直接寻址,立即数寻址 (D) 都是直接寻址 12.与 MOV BX,OFFSET VAR 指令完全等效的指令是( )。 (A) MOV BX,VAR (B)LDS BX,VAR (C) LES BX,VAR -(D)LEA BX,VAR 13.下列合法的指令是( )。 (A) OUT AX,30H -(B)OUT DX,AL (C) OUT AL,DX (D)OUT 30H,AH 14.下面的 CMP 指令中,语法正确的是( )。 (A)CMP BUF1,BUF2 -(B)CMP AL,0FH (C)CMP BUF1,0FH (D)CMP AL,BX 15.用于显示单个字符的 DOS 系统功能调用,应设置 AH 寄存器的内容为( )。 (A) 1H -(B)2H (C) 9H (D)10H 二、简答题(每小题 4 分,共 8 分) 1.在某子程序的开始处要保护 AX,BX,CX,DX 四个寄存器信息,在子程序结 束时要恢复这四个寄存器信息。例如: PUSH AX\ PUSH BX \ 保护现场 PUSH CX / PUSH DX/ :
}恢复现场 试写出恢复现场时的指令序列。 2.D1DB20HDUP(?) D2 DW D1 请写出用一条指令实现取D1的偏移地址=>SI中的三种方法。 三、程序分析题(每小题6分,共30分) 1.ADW1234H B DW 5678H PUSH A PUSH B POP A POP B 试回答:(1)上述程序段执行后(A)= (B)= (2)设执行前SP=200H,执行后SP= 2.分析下面程序段,写出其实现的数学公式。 MOV BL,X ADD BL,Y MOV AL,W SUB AL,X IMUL TEN ADD AX,5 IDIV BL IMUL TEN MOV Z,AX MOV AL,O 试问该程序段实现的数学公式是 3.程序段如下: BLK1DB46,84,34,-5,20,122,73 MOV CX,7
}恢复现场 试写出恢复现场时的指令序列。 2.D1 DB 20H DUP(?) D2 DW D1 请写出用一条指令实现取 D1 的偏移地址=>SI 中的三种方法。 三、程序分析题(每小题 6 分,共 30 分) 1. A DW 1234H B DW 5678H : PUSH A PUSH B POP A POP B 试回答:(1)上述程序段执行后(A)=___________,(B)=__ _________ (2)设执行前 SP=200H,执行后 SP=____________ 2.分析下面程序段,写出其实现的数学公式。 MOV BL,X ADD BL,Y MOV AL,W SUB AL,X IMUL TEN ADD AX,5 IDIV BL IMUL TEN MOV Z,AX MOV AL,0 试问该程序段实现的数学公式是_____________ 3.程序段如下: BLK1 DB 46,84,34,-5,20,122,73 : MOV CX,7
LEA S1,BLK1 NEXT:MOV AL,[SI] INC SI TEST AL,81H LOOPZ NEXT MOV BL,[SI] 请回答程序段运行后:(AL)= (BL)= 4.STRING DB ABCDEFGHIJ' MOV AH,01:从键盘输入字符19 INT 21H AND AL,OFH DEC AL XOR AH,AH MOV BX, OFFSET STRING ADD BX,AX MOV BL,[BX] MOV AH,02H;显示输出 INT 21H 试回答:(1)上述程序段的功能是什么? (2)如从键盘输入字符‘4,程序段有什么结果? 5.AND AL,AL JZ BRCH1 RCR AL,1 JZ BRCH2 RCL AL,1 INC AL JZ BRCH3
LEA S1,BLK1 NEXT: MOV AL,[SI] INC SI TEST AL,81H LOOPZ NEXT MOV BL,[SI] : 请回答程序段运行后:(AL)=____________ (BL)=____________ 4.STRING DB ‘ABCDEFGHIJ' : MOV AH,01 ;从键盘输入字符 1~9 INT 21H AND AL,0FH DEC AL XOR AH,AH MOV BX,OFFSET STRING ADD BX,AX MOV BL,[BX] MOV AH,02H ;显示输出 INT 21H : 试回答:(1)上述程序段的功能是什么? (2)如从键盘输入字符‘4',程序段有什么结果? 5. AND AL,AL JZ BRCH1 RCR AL,1 JZ BRCH2 RCL AL,1 INC AL JZ BRCH3 :
上述程序运行后,试回答: (1)当(AL)= 时,程序转向BRCH1 (2)当(AL)= 时,程序转向BRCH2 (3)当(AL)= 时,程序转向BRCH3 四、程序填空题(下列各小题中,一个空只能填一条指令。每小题6分,共12分) 1.为实现如下功能:字节变量STR中存放着一个字符串,以ODH为结束标志, 试求串长度并送字变量COUNT中。 LEA SI,STR XOR CX,CX GOON:CMP AL,[SI] INC CX JMP GOON NEXT:MOV COUNT,CX 2.现有下列数据段: DATA SEGMENT STR1 DB ABCDEFGHIJKL' COUNT EQU-STR1 BUF DB COUNT DUP (0) DATA ENDS 下面程序段是实现把STR1中所有字符逆向传送到BUF缓冲区(即STR1中第一 个字符送到BUF的最后一个单元,STR1中最后一字符送到BUF的第一个单元)。试 把程序中所空缺的指令填上。 MOV SI,OFFSET BUF-1 MOV DI,OFFSET BUF MOV CX,COUNT LOOP:MOVSB LOOP LOP
上述程序运行后,试回答: (1)当(AL)=__________时,程序转向 BRCH1 (2)当(AL)=__________时,程序转向 BRCH2 (3)当(AL)=__________时,程序转向 BRCH3 四、程序填空题(下列各小题中,一个空只能填一条指令。每小题 6 分,共 12 分) 1.为实现如下功能:字节变量 STR 中存放着一个字符串,以 0DH 为结束标志, 试求串长度并送字变量 COUNT 中。 LEA SI,STR ___________ XOR CX,CX GOON: CMP AL,[SI] ___________ INC CX ___________ JMP GOON NEXT:MOV COUNT,CX 2.现有下列数据段: DATA SEGMENT STR1 DB‘ABCDEFGHIJKL' COUNT EQU -STR1 BUF DB COUNT DUP(0) DATA ENDS 下面程序段是实现把 STR1 中所有字符逆向传送到 BUF 缓冲区(即 STR1 中第一 个字符送到 BUF 的最后一个单元,STR1 中最后一字符送到 BUF 的第一个单元)。试 把程序中所空缺的指令填上。 MOV SI,OFFSET BUF-1 MOV DI,OFFSET BUF MOV CX,COUNT _________________ LOOP:MOVSB _______________________________ LOOP LOP
五、编制程序(段)题(第1小题10分,第2小题10分,共20分) 1.编程实现从键盘输入0至9中任一自然数X:求其立方值。(若输入的字符 是0至9的非自然数,显示必要的输入出错的提示信息。并写出必要的注释。) 2.编程序段将首地址为A的字数组32,85,16,15,8从小到大排序(气泡算法, 多重循环)
五、编制程序(段)题(第 1 小题 10 分,第 2 小题 10 分,共 20 分) 1.编程实现从键盘输入 0 至 9 中任一自然数 X;求其立方值。(若输入的字符 是 0 至 9 的非自然数,显示必要的输入出错的提示信息。并写出必要的注释。) 2.编程序段将首地址为 A 的字数组 32,85,16,15, 8 从小到大排序(气泡算法, 多重循环)
汇编语言程序设计自测试题2答案 一、单项选择题(每小题1分,共20分) 1.(B)2.(B)3.(D)4.(A)5.(A) 6.(D)7.(D)8.(C)9.(C)10.(D) 11.C12.D13.B14.B15.B 二、简答题(每小题4分,共8分) 1.P0PDX(1分) POP CX(1分) POP BX(1分) P0PAX(1分) 2.三种方法,对1个得1.5分,对2个得3分,全对4分。 (A)LEA SI,D1 (B)MOV SI,OFFSET D1 (C)MOV SI,D2 上述三种方法无先后顺序。 三、程序阅读分析题 1. 2.((X+Y)*8-(X-Y)*2)/16 3. 4.(A)程序段功能:根据从键盘输入的字符‘1’~‘9’,确定在显示器上显示 STRING中第几个字符。(4分) (B)显示器显示字符‘D'(2分) 5.(A)(AL)=0,(B)(AL)=1,(C)(AL)=-1(每个回答各2分) 四、程序填空题(每小题6分,共12分) 1.(MOV AL,0DH)(2分) (JE NEXT或JZ NEXT)(2分) (INC SI)(2分) 2.(A)CLD(3分)(B)SUB SI,2(3分) 或(A)STD(3分)(B)ADD DI,2(3分) 五、编制程序题(第1小题10分,第2小题10分,共20分) 1.参考程序:P98/89 MOV AX,X IMUL Y ;X*y→(DX,AX) MOV CX,AX MOV BX,DX MOV AX,Z
汇编语言程序设计自测试题 2 答案 一、 单项选择题(每小题 1 分,共 20 分) 1.(B) 2.(B) 3.(D) 4.(A) 5.(A) 6.(D) 7.(D) 8.(C) 9.(C) 10.(D) 11. C 12.D 13.B 14.B 15.B 二、 简答题(每小题 4 分,共 8 分) 1.POP DX (1 分) POP CX(1 分) POP BX(1 分) POP AX(1 分) 2.三种方法,对 1 个得 1.5 分,对 2 个得 3 分,全对 4 分。 (A) LEA SI,D1 (B) MOV SI,OFFSET D1 (C) MOV SI,D2 上述三种方法无先后顺序。 三、程序阅读分析题 1. 2.((X+Y)*8-(X-Y)*2)/16 3. 4. (A)程序段功能:根据从键盘输入的字符‘1’~‘9’,确定在显示器上显示 STRING 中第几个字符。(4 分) (B)显示器显示字符‘D’(2 分) 5. (A)(AL)=0,(B)(AL)=1,(C)(AL)=-1(每个回答各 2 分) 四、 程序填空题(每小题 6 分,共 12 分) 1.(MOV AL,ODH)(2 分) (JE NEXT 或 JZ NEXT)(2 分) (INC SI)(2 分) 2.(A)CLD (3 分)(B)SUB SI,2(3 分) 或(A)STD(3 分)(B)ADD DI,2(3 分) 五、编制程序题(第 1 小题 10 分,第 2 小题 10 分,共 20 分) 1. 参考程序:P98 / 89 MOV AX, X IMUL Y ; x*y →(DX,AX) MOV CX, AX MOV BX, DX MOV AX, Z
CWD ;Z→(DX,AX) ADD CX,AX ADC BX,DX x*y+z→(BX,CX) SUB CX,540 SBB BX,0 X*y+z-540 MOV AX,V CWD ;V→(DX,AX) SUB AX,CX SBB DX,BX V-(x*y+z-540) IDIV X (v-(x*y+z-540))/x一(AX) 余数→(DX) 2. 参考程序: mov CX,5 ;元素个数 dec CX ;比较遍数 loop1: mov di,cx ;比较次数 mov bx,0 1oop2: mov ax,A[bx] :相邻两数 cmp ax,A[bx+2]; 比较 jle continue xchg ax,A[bx+2]:交换位置 mov A[bx],ax continue: add bx,2 loop loop2 dec di mov cx,di loop loop1
CWD ;Z →(DX,AX) ADD CX, AX ADC BX, DX ; x*y+z →(BX,CX) SUB CX, 540 SBB BX, 0 ; x*y+z-540 MOV AX, V CWD ;V →(DX,AX) SUB AX, CX SBB DX, BX ; v-(x*y+z-540) IDIV X ; (v-(x*y+z-540))/x→(AX) 余数→(DX) 2. 参考程序: mov cx, 5 ;元素个数 dec cx ;比较遍数 loop1: mov di, cx ;比较次数 mov bx, 0 loop2: mov ax, A[bx] ;相邻两数 cmp ax, A[bx+2] ; 比较 jle continue xchg ax, A[bx+2] ;交换位置 mov A[bx], ax continue: add bx, 2 loop loop2 dec di mov cx, di loop loop1