19.假设(AL)=0FFH依次执行ADDAL0FH指令后,标志位ZF和SF的状态分别为(A)0和0(B)0和1(C)1和0(D)1和1答案:A分析:1。ADD和AND指令对标志位均能产生影响,两条指令依次执行,所以看后一条指令对ZF和SF的影响。2。ADDAL,12指令执行后结果为(AL)
=0BH(注意:该指令中的立即数12为十进制数,所以要变为十六进制数后与AL中的0FFH相加)。3。AND指令能实现给特定位清零的功能,该指令中逻辑“与”常数为0FH,所以该指令对高4位清零,运算结果为(AL)=0BH,SF标志位为符号标志位,当运算结果最高位为0,SF=0,结果的最高位为1时,SF=1。ZF为零标志位,运算结果为0则ZF=1,结果非0则ZF=0,本题运算结果,为最高位为0的非0数据,所以SF=0,ZF=0。20.执行下列哪一条指令后,就能用条件转移指令判断AL和BL寄存器中的最高位是否相同?(A)TESTALBL(B)CMPALBL(C)ANDALBL(D)XORALBL答案:D分析:异或运算指令功能为:目的操作数和源操作数按位进行异或运算,对应位相同,该位的运算结果为0,否则为1。执行XORAL,BL后当AL和BL寄存器中最高位相同时,将影响SF=0,不同时影响SF=1,因此执行了XORAL,BL后可以用条件转移指令判断AL和BL寄存器中的最高位是否相同。21.若有BUFDW1234,则可将数据02H取到AL寄存器中的指令是:(A)MOVALBYTEPTRBUF+1(B)MOVALBYTEPTRBUF+2(C)MOVALBYTEPTRBUF+3(D)MOVALBYTEBUF2答案:B分析:DW定义字伪指令为每个操作数分配两个存储单元,BUFDW1,2,3,4指令定义的存储单元分配情况如图:02H所在存储单元相对BUF单元位移量为2,所以将02H取到AL寄存器中的指令是MOVAL,BYTEPTR[BUF2]。
22.根据下面定义的数据段:DESGSEGMENTDAT1DB‘1234’DAT2DW5678HADDREQUDAT2-DAT1DESGENDS执行指令MOVAXADDR后,AX寄存器中的内容是()(A)5678H(B)7856H(C)
4444H(D)0004H答案:D分析:根据数据段的定义则存储单元的分配情况如图:数据段定义中赋值语句EQU将表达式(DAT2-DAT1)的值赋予ADDR,表达式DAT2-DAT1的值为变量DAT2和变量DAT1相距字节数4,通过赋值语句将其赋予符号名ADDR,所以MOVAX,ADDR执行后,AX中内容为0004H。23.下面是80X86宏汇编语言中关于SHORT和NEAR的叙述,哪一个是正确的?(A)它们都可以直接指示无条件转移指令目标地址的属性(B)它们都必须借助于PTR才能指示无条件转移指令目标地址的属性(C)SHORT必须借助于PTR才能指示无条件转移指令目标地址的属性(D)NEAR必须借助于PTR才能指示无条件转移指令目标地址的属性答案:D分析:过程的距离属性有两种:NEAR和FAR。NEAR必须借助PTR才能指示无条件转移指令目标地址的属性,SHORT可以不必借助PTR直接指示无条件转移指令目标地址属性为段内短转移。24.若汇编语言源程序中段的定位类型设定为PARA,则该程序目标代码在内存中的段起始地址应满足什么条件?(A)可以从任意地址开始(B)必须是偶地址(C)必须能被16整除(D)必须能被256整除答案:C分析:段的定位类型有四种,分别是PAGE(页起始),起始地址以00H结尾,能被256整除;PARA(节起始),起始地址以0H结尾,能被16整除;WORD(字起始)起始地址末位为0,是偶地址;BYTE(字节起始)起始地址为任意边界。