1、汇编主观试题库汇编主观试题填空题1. 假设(DS)=2000H,(ES)=3000H,(SS)=4000H,(SP)=100H,(BX)=200H,(SI)=1,(DI)=2,(BP)=256,字变量ARRAY偏移地址为0050H,(20250H)=1234H,(40100H)=00A0H,(40102H)=2200H。填空回答下列问题。 (1)MOV AX,BPDI ;源操作数物理地址= H指令执行后(AX)= H (2)POP AX ;源操作数物理地址= H指令执行后(AX)= H (3)LEA DI,ARRAY ;源字段的寻址方式是 指令执行后(DI)= H (4)JMP BX ;指令执
2、行后(IP)= H (5)ADD AL,BYTE PTR ARRAYBX ;源字段的寻址方式是 指令执行后(AL)= H2 假设(CS)=1000H,(DS)=2000H, (ES)=3000H, (SS)=4000H, (SP)=100H, (BX)=200H,(SI)=1, (20200H)=400H, (30200H)=1400H, (20202H)=0004, (20204H)=202H,(21400H)=1234H, (21405H)=5678H。执行下列程序段(注意:不是单条指令),填空回答问题: MOV BP,256 ;源字段的寻址方式是 ;指令执行后(BP)= H PUSH E
3、S:BX ;源操作数物理地址= H MOV DI,3BXSI ;(DI)= H DEC SI ;源字段的寻址方式是 ;指令执行后(SI)= H INC DI ;目的操作数物理地址= H MOV AX,DI ;(AX)= H ADD -2BP,AX ;目的操作数物理地址= H POP BX MOV AX,BX+SI ;程序段执行完后,(AX)= H3假设数据区数据定义如下:ORG 100HA DB 34B DD 1X LABEL BYTEY DW AB 执行下列程序段并填空。 LEA DI, B ; (DI)= H MOV AX, WORD PTR A ; (AX)= H MOV BX, OFF
4、SET X ; (BX)= H LEA BP, Y ; (BP)= H MOV CL, X ; (CL)= H 注:1, 2, 3, 4的ASCII码为31H, 32H, 33H, 34H; A, B, C, D的ASCII码为41H, 42H, 43H, 44H。4假设数据区数据定义如下:ORG 200HA DB ABB DB 4 DUP(1,2,3)X LABEL BYTEY DW 12 执行下列程序段并填空。 LEA SI, B ; (SI)= H MOV AX,WORD PTR A ; (AX)= H LEA BX, X ; (BX)= H MOV DI, OFFSET Y ; (DI
5、)= H MOV DL, X+1 ; (DL)= H 注:1, 2, 3, 4的ASCII码为31H, 32H, 33H, 34H; A, B, C, D的ASCII码为41H, 42H, 43H, 44H。5分析下列指令并填空: MOV BH,38H ADD BH,2FH 执行后,(BH)= ,CF= ,PF= , AF= ,ZF= ,SF= 。6分析下列指令并填空: MOV AL,9CH MOV DH,64H ADD AL,DH 执行后,(AL)= ,CF= ,PF= , AF= ,ZF= ,SF= 。7分析下列指令并填空: MOV AX,34F5H ADD AX,95EBH 执行后,(A
6、X)= ,CF= ,PF= , AF= ,ZF= ,SF= 。8分析下列指令并填空: MOV BX,0AAAAH ADD BX,5556H 执行后,(BX)= ,CF= ,PF= , AF= ,ZF= ,SF= 。9分析下列指令并填空: MOV AX,94C2H MOV BX,323EH ADD AX,BX MOV DX,AX 执行后,(DX)= ,CF= ,PF= , AF= ,ZF= ,SF= 。10已知程序段如下: MOV AX,5678H MOV CL,4 ROR AX,CL INC AX MOV CX,2 MUL CX INT 20H ; 程序结束 试问:程序结束时,AX和DX的内容
7、是什么?11下列程序段中的每条指令执行完后,AX寄存器的内容是什么? MOV AX,0 ;(AX)= DEC AX ;(AX)= ADD AX,7FFFH ;(AX)= ADD AX,2 ;(AX)= NOT AX ;(AX)= SUB AX,1 ;(AX)= ADD AX,8000H ;(AX)= SUB AX,1 ;(AX)= AND AX,58D1H ;(AX)= SAL AX,1 ;(AX)= SAR AX,1 ;(AX)= NEG AX ;(AX)= ROR AX,1 ;(AX)= 12. 假设数据区数据定义如下:ORG 100HA DW 34B DD 1C DB 5 DUP (3
8、DUP (0,1,2) ORG 13EHX LABEL WORDY DB ABCDZ DW X+4,YN EQU 70 阅读下列程序段并填空。 LEA DI, C ; (DI)= H MOV AX, A ; (AX)= H LEA BX, X ; (BX)= H MOV CX, Z ; (CX)= H LEA DX, Z ; (DX)= H MOV SI, Z+2 ; (SI)= H MOV BP, N ; (BP)= H MOV X+1, 35H ; ( H)= 35H MOV AX, X+2 ; (AX)= H MOV Y+2, 2 ; ( H)= 2 MOV AX, WORD PTR Y
9、+2 ; (AX)= H13假设X和X+2单元的内容为双精度数P,Y和Y+2单元的内容为双精度数Q,下列程序段使2PQ时(AX)=1,2PQ时(AX)=2,请在下列程序段中填空。 MOV DX,X+2 MOV AX,X ADD AX,X DX,X+2 CMP DX,Y+2 L2 LI CMP AX,Y L2L1: MOV AX,1 EXITL2: MOV AX,2EXIT: MOV AH,4CH INT 21H14.下列程序段求双字长数的绝对值。双字长数在A和A2单元中,结果存放在B和B2单元中。请在下列程序段中填空。 MOV AX, A MOV DX, A+2 TEST DX, JZ STO
10、RE NEG NEG SBB DX, STORE : MOV , AX MOV , DX 15. 分析下列程序的功能,写出堆栈最满时各单元的地址及内容。 SSEG SEGMENT STACK AT 1000H ; 堆栈的段地址为1000H DW 128 DUP(?) TOS LABEL WORD SSEG ENDS; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DSEG SEGMENT DW 32 DUP(?) DSEG ENDS; - - - - - - - -
11、 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CSEG SEGMENT MAIN PROC FAR ASSUME CS:CSEG, DS:DSEG,SS:SSEG START: MOV AX,SSEG MOV SS,AX MOV AX,DSEG MOV DS,AX MOV AX,4321H CALL HTOA RETN: MOV AH,4CH INT 21H MAIN ENDP ; - - - - - - - - - - - - - - - - - - - - - - - - - - - -
12、 - - - - - - - - - - - - - - - - - HTOA PROC NEAR CMP AX,15 JLE B1 PUSH AX PUSH BP MOV BP,SP MOV BX,BP+2 AND BX,0FH MOV BP+2,BX POP BP MOV CL,4 SHR AX,CL CALL HTOA B1: POP AX B2: ADD AL,30H JL PRT ADD AL,07 PRT: MOV DL,AL MOV AH,2 INT 21H RET HTOA ENDP CSEG ENDS ; ; - - - - - - - - - - - - - - - - -
13、 - - - - - - - - - - - - - - - - - - - - - - - - - - - - END START16已知堆栈段寄存器SS的内容是0F0A0H,堆栈指针SP的内容是00B0H,先执行两条PUSH指令把8057H和0F79BH分别入栈,然后执行一条POP指令,试填出堆栈的初始状态以及每条指令执行后,堆栈的物理地址、堆栈内容以及SP内容的变化。堆栈地址 堆栈单元 堆栈单元 堆栈单元 堆栈单元( )( )( )( )SP初始状态PUSHPUSHPOP17现有程序如下,主程序存放在段地址为18F4H的代码段中,请将程序运行到、处时堆栈的情况填入空格中,可用寄存器或标号
14、来表示。 CODE1 SEGMENT START: MOV AX,18E4H MOV SS,AX MOV SP,40H ; PUSH AX PUSH BX ; CALL FAR PTR SUBP1 ; BACK1: CODE1 ENDS ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CODE2 SEGMENT SUBP1 PROC FAR CALL NEAR PTR SUBP2 ; BACK2: RET 4 ; SUBP1 ENDP ;- - - - - - - - - - - - -
15、- - - - - - - - - - - - - - - - - - - - - - - - - - SUBP2 PROC NEAR RET ; SUBP2 ENDP CODE2 ENDS END START物理地址堆栈堆栈堆栈堆栈堆栈堆栈(SP)= 18将下列文件类型填入空格: (1).exe (2).asm (3).obj (4).crf (5).map (6).lst 编辑程序输出的文件有 ; 汇编程序输出的文件有 ; 连接程序输出的文件有 。简答题19假设(DS)=2000H,(ES)=3000H,(SS)=4000H,(SP)=100H,(BX)=200H(DI)=2,(BP)=2
16、56,字变量ARRAY偏移地址为0050H,(30200H)=1234H,(40100H)=0104H,(40102H)=0106H。写出下列各条指令单独执行后相关寄存器或存储单元的内容. (1) MOV AX,BP+DI (2) POP AX (3) PUSH ES:BX (4) LEA DI,ARRAY (5) JMP BX 20现有 (DS)=2000H, (BX)=0100H, (SI)=0002H, (20100)=12H, (20101)=34H, (20102)=56H, (20103)=78H, (21200)=2AH, (21201)=4CH, (21202)=65H, (2
17、1203)=0B7H,试说明下列各条指令单独执行完后,相关寄存器或存储单元的内容。(1)MOV AX, 1200H(2)ADD BX, BX(3)SUB BH, BYTE PTR BX+1100(4)XCHG BX, BXSI(7)SAR 1100BXSI,121假设 (AX)=2000H, (BX)=1200H, (SI)=0002H, (DS)=3000H, (31200H)=50H, (31201H)=02H, (31202H)=0F7H。请写出下列各条指令单独执行后,相关寄存器或存储单元的内容。(1)ADD AX,1200H (2)MOV BX,AX (3)SAR BYTE PTR S
18、I+1200H,1 (4)JMP WORD PTR BX (5)DEC BYTE PTR 1200H22假设 (AX)=2000H, (BX)=1200H, (SI)=0002H, (DI)=0001H, (DS)=3000H, (SS)=3000H, (SP)=1000H, (31200H)=50H, (31201H)=02H, (31202H)=0F7H, (31203)=90H。请写出下列各条指令单独执行后,相关寄存器或存储单元的内容。(1)SUB AX,BX (2)PUSH AX (3)ROL BYTE PTR BX+SI+1,1 (4)JMP BX (5)XOR BYTE PTR 1
19、200H, 11H23试分析下列程序段执行完后,A单元的内容是什么? DATA SEGMENT A DW 0 B DW 0 C DW 230H,54,20 DATA ENDS CODE SEGMENT LEA BX,C MOV AX,BX MOV B,AX MOV AX,2BX ADD AX,B MOV A,AX CODE ENDS24执行下列指令后,AX寄存器中的内容是什么? TABLE DW 10,20,30,40,50 ENTRY DW 3 MOV BX,OFFSET TABLE ADD BX,ENTRY MOV AX,BX25执行下列指令后,AX寄存器中的内容是什么? TABLE DW
20、 50,40,30,20,10 ENTRY DW 5 LEA BX,TABLE ADD BX,ENTRY MOV AX,BX26已知程序段如下: MOV AX,1234H MOV CL,4 ROL AX,CL DEC AX MOV CX,4 MUL CX INT 20H ; 程序结束 试问:程序结束时,AX和DX的内容是什么?27假设(CS)=24F6H,(IP)=634AH,请问:(1)它们所指示的是什么段?(2)它们所指示的存储单元保存的是数据还是指令?(3)它们所表示的逻辑地址是多少?(4)它们所表示的偏移地址是多少?(5)它们所表示的物理地址是什么?(6)它们所表示的段的最低地址是多少
21、?(7)它们所表示的段的最高地址是多少?28假设(DS)=12FAH,(SI)=54AEH,请问:(1)它们所指示的是什么段?(2)它们所指示的存储单元保存的是数据还是指令?(3)它们所表示的逻辑地址是什么?(4)它们所表示的偏移地址是多少?(5)它们所表示的物理地址是什么?(6)它们所表示的段的最低地址是多少?(7)它们所表示的段的最高地址是多少?29已知下列程序段: ADD AL,BL JO L1 JC L2 CMP AH,BH JG L3 JB L4 JMP L5 若给定AX和BX的值如下,说明程序的转向。(1)(AX)=14C8H,(BX)=808DH(2)(AX)=3F23H,(BX
22、)=50D0H30对于下面两个数据段,偏移地址为100H和101H的两个字节中的数据是什么?(1) DTSEG SEGMENT ORG 100H DATA DB 10H, 20H DTSEG ENDS(2) DTSEG SEGMENT ORG 100H DATA DW 1020H DTSEG ENDS31已知下列程序段: ADD AL,BL JO L1 JC L2 CMP AH,BH JG L3 JB L4 JMP L5 若给定AX和BX的值如下,说明程序的转向。(1)(AX)=D082H,(BX)=9F70H(2)(AX)=427BH,(BX)=60DCH32已知下列程序段: ADD AL,
23、BL JO L1 JC L2 CMP AH,BH JG L3 JB L4 JMP L5 若给定AX和BX的值如下,说明程序的转向。(1)(AX)=3F23H,(BX)=50D0H(2)(AX)=0042H,(BX)=FF3DH33已知下列程序段: ADD AL,BL JO L1 JC L2 CMP AH,BH JG L3 JB L4 JMP L5 若给定AX和BX的值如下,说明程序的转向。(1)(AX)=0082H,(BX)=FF70H(2)(AX)=3F42H,(BX)=503DH34已知下列程序段: ADD AL,BL JO L1 JC L2 CMP AH,BH JG L3 JB L4 J
24、MP L5 若给定AX和BX的值如下,说明程序的转向。(1)(AX)=147BH,(BX)=80DCH(2)(AX)=42C8H,(BX)=608DH35说明下列程序段的算术功能:MOV CH,DL MOV CL,4 SAR DX,CL SAL CH,CL SHR AX,CL OR AH,CH36下列程序段中的X、N、M、RESULT均为数据段中的变量,其中N和M中分别存放数据10和20: XOR AX, AX MOV BX, M SUB BX, 2 NEXT: ADD AX , XBX SUB BX, 2 JGE NEXT MOV RESULT, AX RET 问:(1)这个程序段完成什么工
25、作? (2)定义一个适合这段程序的数据段。37下列程序段中的X、N、M、RESULT均为已定义的变量,其中N和M中分别存放数据100H和200H:SUB AX, AX LEA BX, XMOV CX, NNEXT: ADD AX, BXADD BX, 2DEC CXJG NEXTMOV RESULT, AXRET问:(1)这个程序段完成什么工作? (2)定义一个适合这段程序的数据段。38分析下列程序并回答问题。DATA SEGMENTCHAR DB WHAT TIME IS IT ?, 0DATA ENDS;CODE SEGMENTMAIN PROC FAR ASSUME CS:CODE, D
26、S:DATASTART: PUSH DS SUB AX, AX PUSH AX MOV AX, DATA MOV DS, AX; MOV BX, OFFSET CHAR CALL SEARCH RETMAIN ENDP;SEARCH PROC NEARNEXT: TEST BX, 0FFH JZ RETURN CMP BX, A JNE PRINTRETURN: RETPRINT: INC BXMOV AH, 02 ;显示字符功能 MOV DL, N INT 21H JMP NEXT SEARCH ENDP CODE ENDS END START(1)该程序的功能是什么?(2)该程序的运行结果是什么?39下列程序的功能是从键盘输入一串字符并回显在下一行,如:键盘输入: ABCDE(回车)回显: ABCDE 请指出程序中的错误,并改正之。 DATA SEGMENT MAX DB 10 LEN DB ? STRING DB 10 DUP(0) DATE ENDS ;-
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1