汇编语言习题一、单项选择题1. 汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是( )。
A、名字项B、操作项C、操作数项D、注释项2. 在汇编语言程序中,对END语句的叙述正确的是()。
A、是一可执行语句B、表示程序执行到此结束C、表示源程序到此结束D、在汇编后要产生机器码3. 汇编语言源程序中,每个语句可由四项组成,其中名字项是一个符号,下面列出的有效名字是()A、VariableB、First & ldC、0FFFFHD、'Memphis'4.用一条指令仅实现将BX+SI=>AX的方法是()A、XCHG AX,[BX][SI]B、MOV AX,[BX+SI]C、LEA AX,BX[SI]D、LEA AX,[BX][SI]5.设 SP初值为2000H,执行指令"PUSH AX"后,SP的值是()A、1FFFHB、1998HC、2002HD、1FFEH6.条件转移指令JC产生程序转移的条件是()A、CF=1B、CF=0C、CF=1和ZF=1D、CF=1和ZF=07.选用串操作指令时,错误的操作是()A、置方向标志位B、根据串操作指令设置重复次数并送入CXC、设置源操作数及目的操作数指针D、源操作数和目的操作数都可以加段超越8.设AL=20H,SI=0500H,DS=3000H,(30500H)=0C0H,CF=1。
执行SBB AL,[SI]后,正确的结果是()A、AL=5FH SF=1 CF=1B、AL=60H SF=1 CF=0C、AL=5FH SF=0 CF=1D、AL=60H SF=0 CF=09.设AX=1000H,执行NOT AX指令后,正确的结果是()A、AX=1001HB、AX=0EFFHC、AX=1000HD、AX=0111H10. 设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是( )A、85B92HB、86192HC、BB690HD、12169H11. 可用作寄存器间接寻址或基址、变址寻址的地址寄存器,正确的是()A、AX,BX,CX,DXB、DS,ES,CS,SSC、SP,BP,IP,BXD、SI,DI,BP,BX12. 循环指令LOOPNZ终止循环的条件是( )。
A、CX=0,且ZF=0B、CX=0,或ZF=1C、CX10,且ZF=0D、CX10,或ZF=113. 设AH=0,AL=06H,BL=09H,执行指令ADD AL,BLAAA 之后,其结果应是()。
A、 AH=01,AL=05B、 AH=1 AL=15C、 AH=0 AL=0FHD、 AH=0 AL=0514. 下面的数据传送指令中,错误的操作是()。
A、 MOV SS:[BX+DI],1000HB、 MOV DX,1000HC、 MOV WORD PTR[BX],1000HD、 MOV DS,2000H15.DA1 EQU BYTE PTR DA2DA2 DW 0ABCDH┇SHL DA1,1SHR DA2,1上述指令序列执行后,DA2字存储单元的内容是()A、0ABCDHB、0AB9AHC、55CDHD、559AH16.下面语句中有语法错误的语句是()A、MOV CS,AXB、MOV DS,AXC、MOV SS,AXD、MOV ES,AX17. 下面指令执行后,改变AL寄存器内容的指令是( )。
A、TEST AL,02HB、OR AL,ALC、CMP AL,BLD、AND AL,BL18.执行下列指令序列后,正确的结果是()MOV AL,81HADD AL,ALADC AL,ALA、AL=05HB、AL=204HC、AL=04HD、AL=205H19. 与MOV BX,OFFSET VAR指令完全等效的指令是( )。
A、MOV BX,VARB、LDS BX,VARC、LES BX,VARD、LEA BX,VAR20. 下面指令执行后,变量DAB中的内容是()。
DAW DW 2A05HDAB DB 0FAH:MOV AL,BYTE PRT DAWSUB DAB,ALA、 0DAHB、 0FAHC、 0F5HD、 0D0H1. 汇编语言源程序中,每个语句由四项组成,其中可省略而肯定不影响结果的项是( )。
A、名字项B、操作项C、操作数项D、注释项2. 在汇编语言程序中,对HLT语句的叙述正确的是()。
A、是一可执行语句B、表示程序执行到此结束C、表示源程序到此结束D、在汇编后不产生机器码3. 汇编语言源程序中,其中名字项是一个符号,下面列出的有效名字是()A、ibmpcB、First & ldC、0FFFFHD、'Memphis'4.用一条指令仅实现将BX+SI=>AX的方法是()A、XCHG AX,[BX][SI]B、MOV AX,[BX+SI]C、LEA AX,BX[SI]D、MOV AX,OFFSET [BX][SI]5.设SP初值为2000H,执行指令"POP AX"后,SP的值是()A、1FFFHB、1998HC、2002HD、1FFEH6.条件转移指令JNC产生程序转移的条件是()A、CF=1B、CF=0C、CF=1和ZF=1D、CF=1和ZF=07.选用串操作指令时,错误的操作是()A、置方向标志位B、根据串操作指令设置重复次数并送入CXC、设置源操作数及目的操作数指针D、源操作数和目的操作数都可以加段超越8.设AL=20H,SI=0500H,DS=3000H,(30500H)=0C0H,CF=1。
执行ADC AL,[SI]后,正确的结果是()A、AL=0E0H SF=1 CF=1B、AL=0E1H SF=1 CF=0C、AL=5FH SF=0 CF=1D、AL=60H SF=0 CF=09.设AX=1H,执行NOT AX指令后,正确的结果是()A、AX=0FFFEHB、AX=0EFFHC、AX=1000HD、AX=0111H10. 设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是( )A、12169HB、86192HC、BB690HD、85B92H11. 可用作寄存器间接寻址或基址、变址寻址的地址寄存器,正确的是()A、AX,BX,CX,DXB、SI,DI,BP,BXC、SP,BP,IP,BXD、DS,ES,CS,SS12. 循环指令LOOPNE终止循环的条件是( )。
A、CX=0,且ZF=0B、CX=0,或ZF=1C、CX=0,且ZF=1D、CX=0,或ZF=013. 设AH=0,AL=06H,BL=09H,执行指令ADD AL,BLAAA 之后,其结果应是()。
A、AH=0 AL=05B、AH=1 AL=15C、AH=0 AL=0FHD、AH=01,AL=0514. 下面的数据传送指令中,错误的操作是()。
A、MOV SS:[BX+DI],1000HB、MOV SS,2000HC、MOV WORD PTR[BX],1000HD、MOV DX,1000H15.DA1 EQU BYTE PTR DA2DA2 DW 0ABCDH┇SHL DA1,1SHR DA2,1上述指令序列执行后,DA2字存储单元的内容是()A、0ABCDHB、0AB9AHC、55CDHD、559AH16.下面语句中有语法错误的语句是()A、MOV SS,AXB、MOV DS,AXC、MOV CS,AXD、MOV ES,AX17. 下面指令执行后,不改变AL寄存器内容的指令是( )。
A、NOT AXB、OR AL,ALC、XOR AL,ALD、AND AL,BL18.执行下列指令序列后,正确的结果是()MOV AL,81HADD AL,ALADC AL,ALA、AL=04HB、AL=204HC、AL=05HD、AL=205H19. 与LEA BX,V AR指令完全等效的指令是( )。
A、MOV BX,V ARB、LDS BX,V ARC、LES BX,V ARD、 MOV BX,OFFSET V AR20. 下面指令执行后,变量DAB中的内容是()。
DAW DW 2A05HDAB DB 0FAH:MOV AL,BYTE PRT DAWADD DAB,ALA、0FFHB、0FAHC、0F5HD、0D0H二、简答题1. 给出下列2条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态:xor ax,ax ;not ax ;2. 选用NOT,AND,OR XOR逻辑指令编写一指令序列,实现将AL第0位置1,第7位置0,其他位变反。
3. 判断下列程序段跳转的条件(1) test al,10000001bjnz there(2) cmp cx,64hjb there4. 有两个32位数值,按“小端方式”存放在两个缓冲区buffer1和buffer2中,编写程序段完成DX.AX←buffer1-buffer2功能。
5. 编写一个程序段,在DX高4位全为0时,使AX=0;否则使AX=-1。
(一)已知DS=2000H,ES=3100H,SS=1500H,SI=00A0H,BX=0100H,BP=0010H,数据段中变量名V AL的偏移地址值为0080H,试指出下列指令源操作数的寻址方式是什么?其物理地址值是多少?⑴MOV AX,ES:[BP] ⑵MOV AX,[BX][SI] ⑶MOV AX,V AL [BP] ⑷MOV AX,[BX+ V AL] ⑸MOV AX,[BX+SI+10](二)指出下列标志位的含义(1) CF (2) OF (3) AF (4) ZF (5) DF三、程序分析题1. A DW 1234HB DW 5678H:PUSH APUSH BPOP APOP B试回答:A、上述程序段执行后(A)=_________,(B)=_________B、设执行前SP=2000H,执行后SP=____________2. MOV AX,1234HMOV BX,5678HXOR AX,BXXOR AX,BX上述程序段运行后,AX=___________________,ZF=____________________3.DATA SEGMENTORG 3040HYY1 DB 30H,40HYY2 DW 3040HDATA ENDS┇MOV BX,OFFSET YY1MOV AX,[BX]MOV CL,BYTE PTR YY2MOV CH,BYTE PTR YY2+1上述程序段运行后,AX=_____________,BX=_______________,CX=_______________4. A DB 0F8HB DB 3 DUP(?)┇LEA DI,BMOV CX,3MOV AL,ALOP:SAR AL,1MOV [DI],ALINC DILOOP LOP上述程序段运行后,从B单元开始依次存放的数据5下面程序段完成的功能是什么?MOV SI,OFFSET ARRAYMOV CX,100AGAIN: DEC BYTE PTR [SI]INC SILOOP AGAIN6.MOV CL,8MOV AL,0NOT ALROL AL,CLCMP AL,0FFHJZ NEXTMOV AL,0NEXT:……上述程序段运行后,AL=__________________,CF=___________________1. A DW 3412HB DW 7856H:PUSH APUSH BPOP APOP A试回答:上述程序段执行后(A)=_,(B)=_B、设执行前SP=1000H,执行后SP=_2. MOV AX,1234HMOV BX,5678HXOR AX,AXXOR AX,BX上述程序段运行后,AX=______,ZF=_________SF=3.DATA SEGMENTORG 1234HYY1 DB 12H,34HYY2 DW 1234HDATA ENDS┇MOV BX,OFFSET YY1MOV AX,[BX]MOV CL,BYTE PTR YY2MOV CH,BYTE PTR YY2+1上述程序段运行后,AX=___________,BX=____________,CX=__________ 4. 下面程序段完成的功能是什么?mov al, bufXcmp al, bufYjge donemov al, bufYdone: mov bufZ, al5下面程序段完成的功能是什么?cmp bufX,0jl nextmov signX,0jmp donenext: mov signX,-1done:6、下面程序段完成的功能是什么?mov dl,’2’mov ax,bufXcmp ax,bufYje next1dec dlnext1: cmp ax,bufZje next2dec dlnext2: mov ah,2int 21h四、程序填空题(下列各小题中,一个横线上只能填一条指令。