1、汇编考前辅导带答案版一、单项选择题1、CPU发出的访问存储器的地址是( A )。 A.物理地址 B.偏移地址 C.逻辑地址 D.段地址2、下列指令中操作数在代码段中的是( A )。 A.MOV AL,42H B.ADD AL,BL C.SUB BX,DI D.INC DI 3、与MOV BX,OFFSET VAR指令完全等效的指令是( D )。 A.MOV BX,VAR B.LDS BX,VARC.LES BX,VAR D.LEA BX,VAR4、表示过程定义结束的伪指令是( A )。 A.ENDP B.ENDS C.END D.ENDM5、BUF1 DB 3 DUP(0,2 DUP(1,2)
2、,3) COUNT EQU $ - BUF1 符号COUNT等价的值是( B )。A.6 B.18 C.16 D.8 6、下列寄存器中, 作为16位寄存器的是 ( D )。 A. AL B. BL C. CH D.DX7、在程序运行过程中, 确定下一条指令的物理地址的计算表达式是 ( C )。 A.DS*16+SI B. ES*16+DI C. CS*16+IP D. SS*16+SP8、物理地址(10FF0H )=10H,(10FF1H )=20H,(10FF2H )=30H,从地址10FF1H中取一个字的内容是 ( B )。A.1020H B.3020H C.2030H D.2010H9、
3、将AX 清零, 下列指令错误的是( C )。A.SUB AX,AX B.XOR AX,AX C.OR AX,00H D.AND AX,00H10、完成同指令XCHG AX,BX相同功能的指令或指令序列是( D )。A. MOV AX,BX B. MOV BX,AXC. PUSH AX D. MOV CX,AXPOP BX MOV AX,BXMOV BX,CX11、JMP BX 的目标地址的偏移量为( A )。A. BX 的内容 B. BX 所指向的内存单元的内容C. IP + BX 的内容 D. IP + BX12、可用作寄存器间接寻址或基址、变址寻址的地址寄存器,正确的是( D )。A.AX
4、,BX,CX,DXB.DS,ES,CS,SSC.SP,BP,IP,BX D.SI,DI,BP,BX13、设SP初值为2000H,执行指令“PUSH AX”后,SP的值是( D )。A.1FFFHB.1998HC.2002HD.1FFEH14、汇编语言源程序中,每个语句可由四项组成,其中名字项是一个符号,下面列出的有效名字是( A )。A.VariableB.First&ldC.0FFFFHD.Memphis15、要求将A,B两个字符的ASC码41H,42H顺序存放在连续两个字存储单元中,可选用的语句是( B )。A.DA1DBAB B.DA1DWABC.DA1DB0ABHD.DA1DW0ABH
5、16、在汇编语言程序中,对END语句的叙述正确的是( C )。A. END语句是一可执行语句 B. END语句表示程序执行到此结束C. END语句表示源程序到此结束 D. END语句在汇编后要产生机器码17、下面的数据传送指令中,错误的操作是( D )。 A. MOV SS:BX+DI,1000H B. MOV DX,1000H C. MOV WORD PTRBX,1000H D. MOV DS,2000H 18、当一个带符号数大于0FBH时程序转移,需选用的条件转移指令是( C )。 A. JLE B. JNL C. JNLE D. JL 19、用DEBUG调试汇编语言程序时,显示某指令的地
6、址是2F80:F400,此时段寄存器CS的值是( B )。A.F400H B.2F80H C.F4000H D.2F800H20、设DS=1100H,(12000H)=80H,(12001H)=20H,(12002H)=30H,执行MOV AX, 1000H则AX=( C )。A.8000H B.0080H C.2080H D.8020H21、在8086/8088系统中,约定用于形成堆栈段数据物理地址的寄存器有( A )。A.SS, SP, BP B.SS, SP, BX C.DS, BX, BP D.DS, SP, BP22、有指令MOV AX, 1234H,指令中的立即数1234H是存储在
7、( B )。A.数据段 B.代码段 C.附加段 D.堆栈段23、要在程序中定义缓冲区BUF,保留9个字节存储空间的语句是( C )。A.BUF DW 9 B.BUF DB 9C.BUF DB 9 DUP(?) D.BUF DW 9 DUP(?)24、完成将AX清零,并且使CF清零,下面错误的指令是( D )。A.SUB AX, AX B.AND AX, 0 C.XOR AX,AX D.MOV AX,025、汇编语言源程序每个语句可以由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是( B )。A.名字项 B.操作项 C.操作数项 D.注释项26、在堆栈段中,存放栈顶地址的寄存器是(
8、B )。A.IP B.SP C.BX D.BP 27、书写汇编语言程序时规定,对字母开头的十六进制数,其前面必须加( A )。A.0 B.D C.B D.H 28、MOV SIBX,AL,该指令中目的操作数采用的寻址方式是( A )。A.基址加变址 B.寄存器 C.寄存器间接 D.寄存器相对 29、在计算机中,以先进后出方式工作的存储空间是( D )。A.存储器 B.RAM C.ROM D.堆栈 30、已知BX=2000H,SI=1234H,则指令MOV AX,BX+SI+2的源操作在( A )中。A数据段中偏移量为3236H的字节B附加段中偏移量为3234H的字节C数据段中偏移量为3234H
9、的字节D附加段中偏移量为3236H的字节31、PSW寄存器中共有( A )位条件状态位,有( A )位控制状态位。A6、3 B3、6 C8、4 D4、832、下面指令执行后,改变AL寄存器内容的指令是( D )。 A、TESTAL,02H B、ORAL,AL C、CMPAL,BL D、ANDAL,BL33、MOVSP,3210H PUSHAX执行上述指令序列后,SP寄存器的值是( B )。 A、3211H B、320EH C、320FH D、3212H34、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有(D )。A、CMP B、SUB C、AND D、MOV35、设
10、AX=1000HNEGAXNOTAX执行上述指令后,正确的结果是( B )。A.AX=1001HB.AX=0FFFHC.AX=1000HD.AX=0111H36、下列指令执行后对源和目的操作数均无影响的是( D )。 A.MOV BX+2,AX B.SUB AX,2467H C.SBB SI,BX D.CMP AX,BX 37、8086/8088系统执行传送指令MOV时( A )。 A.不影响标志位 B.影响DF方向标志 C.影响SF符号标志 D.影响CF进位标志 38、若AX= - 15要得到AX=15应执行的指令是( A )。 A.NEG AX B.NOT AX C.INC AX D.DE
11、C AX 39、汇编语言程序中,反映指令操作结果的标志是( A )。A.状态标志 B.控制标志 C.ZF D.DF 40、移位指令中, 应先将移位次数放在 ( D )。A.AX B. AL C. CX D.CL二、简答题1、定义子程序时如何确定其属性?答:(1)子程序和主程序在同一个代码段中,则子程序定义为NEAR属性。(2)子程序和主程序不在同一个代码段中,则子程序定义为FAR属性。(3)主程序通常定义为FAR属性,这是因为主程序被看作DOS调用的一个子程序,以便执行完返回DOS。2、伪指令语句与指令语句的区别是什么?答:指令语句每一条指令语句在源程序汇编时都要产生可供计算机执行的指令代码(
12、即目标代码),所以这种语句又叫可执行语句。每一条指令语句表示计算机具有的一个基本能力,如数据传送,两数相加或相减,移位等,而这种能力是在目标程序(指令代码的有序集合)运行时完成的,是依赖于汁算机内的中央处理器(CPU)、存储器、IO接口等硬件设备来实现的。伪指令语句伪指令语句是用于指示汇编程序如何汇编源程序,所以这种语句又叫命令语句。例如源程序中的伪指令语句告诉汇编程序:该源程序如何分段,有哪些逻辑段在程序段中哪些是当前段,它们分别由哪个段寄存器指向;定义了哪些数据,存储单元是如何分配的等等。伪指令语句除定义的具体数据要生成目标代码外,其他均没有对应的目标代码。伪指令语句的这些命令功能是由汇编
13、程序在汇编源程序时,通过执行一段程序来完成的,而不是在运行目标程序时实现的。伪指令语句与指令语句的本质区别是指令语句有其对应的机器指令,而伪指令没有;伪指令的主要作用是指示汇编程序如何汇编源程序。3、子程序的参数传递有那几种方式及其各自的优缺点?答:(1)寄存器传递参数:用寄存器来传递参数最直接、简便,也是最常用的参数传递方式,只要把参数存放在约定的寄存器中就行了。但由于CPU中寄存器个数有限,所以,该方法适用于传递参数较少的情况。需要注意的是,用于传递出口参数的寄存器不能加以保护和回恢复,用于传递入口参数的寄存器可以保护也可以不保护。(2)存储单元传递参数:这种方法是使用存储单元传递参数的,
14、即主程序在存储单元建立一个参数表,存放子程序所需要的参数,在主程序中将该参数表首地址传送给子程序,子程序通过参数表去的所需参数,并把结果也存放到指定存储单元中。这种方法适合于传递参数较多的情况。(3)堆栈传递参数:用堆栈传递入口参数时,要在调用子程序前把有关参数依次压栈,子程序从堆栈中取得入口参数;用堆栈传递出口参数时,要在子程序返回前,把有关参数依次压栈,主程序就可以从堆栈中取到出口参数。这种方法也适合于传递参数较多的情况,但要特别注意避免因堆栈操作而造成子程序不能正确返回的错误。4、试比较CALL指令和JMP指令。答:CALL是调用跳转,在执行到RET指令后,会返回到CALL后继续执行 而
15、JMP则是无条件跳转,是不会跳回的 一般来说,执行一条CALL指令相当于执行一条PUSH指令加一条JMP指令。5、8086/8088CPU由哪两部分组成?它们的主要功能是什么?答:(1)总线接口部件BIU:总线接口部件由段寄存器、指令指针寄存器、地址加法器、指令队列和输入输出控制电路等组成。BIU是8086与系统总线的接口,负责CPU与存储器、I/O端口传送数据。(2)执行部件EU:执行部件由算术逻辑部件(ALU)、通用寄存器、标志寄存器和执行部件控制电路等组成,它负责指令的执行和数据的运算。6、中断处理程序的典型结构包括哪几部分?答:(1)现场保护(2)中断返回(3)中断嵌套(4)发中断结束
16、命令7、什么是中断矢量表?它有什么作用?答:在8086/8088系统中,为了方便中断处理程序的管理,把所有中断处理程序的入口地址都集中在一起,构成一个中断矢量表。而中断矢量即为中断处理程序的入口地址。8、CPU与外设问的数据传送方式有哪几种?它们各有什么特点?答:(1)查询方式:先查询外设的状态,后进行输入/输出操作的工作方式,称为查询式输入/输出方式。外设的状态是通过输入指令读外设的状态寄存器获得的。每个状态寄存器都有对应的地址,称为端口地址。(2)程序中断传送方式:当CPU需要输入/输出数据时,先执行启动外设工作的指令,然后CPU继续执行源程序,然后当输入/输出操作完成时,由外设向CPU发
17、出中断请求,则在收到请求信号后,暂时停止原来执行的程序,转去执行输入或输出的处理程序。在完成外设所要进行的输入或输出的处理操作后,再返回到原来被中断的程序,继续从中断处往下执行。这种中断输入/输出方式,实现了CPU与外设并行操作,因此极大地提高了CPU的使用效率。(3)DMA方式:DMA方式能摆脱CPU的直接干预,利用硬件控制设备DMA控制器,实现外部设备与内存间的直接数据传送。9、标志寄存器中有哪些状态标志和控制标志?它们每一位所表示的含义是什么? 答:(1)CF进位标志,主要用来反映运算是否产生进位或借位。(2)PF奇偶标志,用于反映运算结果中“1”的个数的奇偶性。(3)AF辅助进位标志,
18、记录运算时第3位(低半字节)产生的进位值。(4)ZF零标志,用来反映运算结果是否为0.(5)SF标志,记录运算符号的结果,它与运算结果的最高位相同。(6)OF溢出标志,用于反映有符号运算结果是否溢出。(7)TF追踪标志,也称单步标志。当追踪标志为1时,CPU进入单步方式即CPU每执行一条指令后,产生一个单步中断,通常用于程序的调试;当追踪标志为0时,处理器正常工作。(8)IF中断标志。当IF=1时,CPU可以响应可屏蔽中断请求;当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。(9)DF方向标志,用于在串处理指令中控制地址的变化方向。10、8086/8088的数据寻址方式有那几种
19、?每种寻址方式各举一例(以源操作数为例)。 11、在指令系统中,段内、段间返回均为RET指令。试回答:(1)执行段内返回RET指令时,执行的操作是:(IP)(SP),(SP)+1)(2)执行段间返回RET指令时,执行的操作是:(IP)(SP),(SP)+1) (CS) (SP)+2,(SP)+3)12、系统功能调用的方法如何?举例说明。答:(1)将调用参数装入指定的寄存器。(2)如需功能调用号,把它装入AH。(3)如需子功能调用号,把它装入AL。(4)按中断号调用DOS或BIOS。(5)检查返回参数是否正确。13、分别说明下列两组指令中两条指令操作的相同点和不同点(1)SUB AX,BX CM
20、P AX,BX(2)AND CX,DX TEST CX,DX答:(1)相同点:都是做减法不同点:SUB指令将结果回送给目的操作数,CMP指令不回送给目的操作数(2)相同点:都是做与操作不同点:AND 指令将结果回送给目的操作数,TEST指令不将结果回送给目的操作数三、填空题1、数据定义如下 X1 DB 10H,100,-1 X2 DW 10H,100,-1 X3 DD ? COUNT EQU X3-X1 变量COUNT的值是 BL=7 , 其表示的意义是 本程序段是可以的。2、下面程序段执行完后,AL的内容是什么?MOV AL,10ADD AL,ALSHL AL,1MOV BL,ALSHL A
21、L,1ADD AL,BL AL=_120_3、设DS=2000H,BX=1256H,变量TABLE的偏移地址为20A1H,(232F7H)=3280H.下列指令分别执行后,IP的值各是多少?(1)JMPBX IP=1256h (2)JMPTABLEBX IP=5331h4、MOV AX, 9090HSUB AX, 4AE0HJC L1JO L2JMP L3上述程序执行后AX=45B0H,程序转向L35、已知数据段定义如下:DATA SEGMENTORG 100HBUF DW CD,1,3 DUP(4,2 DUP(8,6)VRA DB 4AHDATA ENDS单独执行下列语句LEA BX,BUF
22、 BX=100HMOV CX,VRA-BUF CX=22H(用十六进制数表示)。6、 A DW 1234H B DW 5678H : PUSH A PUSH B POP A POP B 试回答:A.上述程序段执行后(A)5678H,(B)1234H 。7、设寄存器AL,BL,CL中内容均为76H, XORAL,0FH ANDBL,0FH ORCL,0FH执行上述指令序列后,AL=79h。BL=06H,CL=7FH。8、已知:BX=1357H,BP=2468H,SI=1000H,DI=2000H,SS=1000H,DS=2000H,ES=3000H,试分别指出下列各指令中存储器操作数的物理地址。
23、 MOV AL,BP+20H的物理地址是12488H。MOV BX+DI-80H,AL的物理地址是232D7H。MOV BL,ES:SI+40H的物理地址是31040H。9、阅读程序段:BLOCK DB 20H,1FH,08H,81H,0FFH,RESULT DB ?START:LEA SI,BLOCK MOV CX,SI INC SI MOV AL,SILOP1: CMP AL,SI+1JNG NEXT MOV AL,SI+1 NEXT:INC SI LOOP LOP1 MOV RESULT,AL HLT请问:(1)该程序完成的功能是什么?(2)该程序循环的次数是多少?答:(1)该程序完成的
24、功能是从20H(32)个有符号数中找出最小的数送入RESULT单元中。(2)该程序的循环次数是1FH(31)。10、STRING DB ABCDEFGHI : MOV AH,01;从键盘输入字符19 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,程序段有什么结果?答:(1)程序段功能:根据从键盘输入的字符19,确定在显示器上显示STRING中第几个字符。(2)显示器显示
25、字符D 四、编程题(30分)1、设在数据段中有X,Y两变量(字节单元),试编写程序段计算(只写有关程序功能的指令): Y= X 当X =0Y= 0 当X0放入OK1 jg ok2 ;0放入OK0 jmp ok3 ;否则放入OK3ok1: mov ax,bx mov di,ax add di,2 jmp ok3ok2: mov ax,bx mov si,ax add si,2 jmp ok3ok3: add bx,2 dec cx jnz again mov ah,4ch int 21h code endsend start4、设 X、Y、Z、W为十六位有符号数编程计算:W (X + Y * Z)/8 -Y 除法余数丢弃若ZF=1 ,程序转EQ;否则转NOT_EQ。5、X,Y,Z三个字节存储单元中各有一个无符号数,其中有两个数据相等,找出不相等的哪个数,并存入W单元中,试编写完成上述功能的程序段(只编写有关代码部分,勿需书写源程序格式)。Mov al,xCmp al,yJz /Cmp al,zJz Mov w,alJmp exit/:Mov bl,zMov w,blJmp exit: Mov bl,yMov w,blExit:Welcome ToDownload !欢迎您的下载,资料仅供参考!
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1