《汇编语言》课程综合复习资料一、单项选择1.已知[X]补=98H,则[X]补/2=()(A)0CCH(B)4CH(C)49H(D)31H2.已知X=78,Y=-83则[X+Y]补=()(A)0F5H(B)0A1H(C)0FBH(D)65H3.在计算机的CPU中执行算术逻辑运算的部件是()(A)ALU(B)PC(C)AL(D)AR4.将125转换成二进制数的结果()(A)7DH(B)7CH(C)7EH(D)7BH5.将93H看成一个组合BCD码,其结果是()(A)10010101(B)10010011(C)10000011(D)100000016.MOVAX,ES:[1000H]源操作数的寻址方式是()(A)立即寻址(B)直接寻址(C)变址寻址(D)基址寻址7.MOVAX,ES:COUNT[DI]源操作数的寻址方式是()(A)基址寻址(B)立即寻址(C)变址寻址(D)基址变址寻址8.MOVDX,COUNT[BP][DI]的源操作数的寻址方式是()(A)变址寻址(B)基址寻址(C)直接寻址(D)基址变址寻址9.指令MOVBX,MASK[BP],若MASK=3500H,SS=1200H,DS=1000H,BP=1000H,那么物理地址为()(A)17500H(B)16500H(C)14500H(D)13500H10.指令MOVAX,COUNT[BX],若COUNT=0400H,SS=1200H,DS=1000H,BX=5000H,那么物理地址为()(A)17400H(B)17000H(C)15400H(D)14500H11.指令MOVDX,DELTA[BX][SI],若DELTA=1300H,SS=7200H,DS=5400H,BX=0500H,SI=4000H,那么物理地址为()(A)6F300H(B)77800H(C)59800H(D)78700H12.汇编语言指令中唯一不可缺少的域是()(A)标号名字域(B)助记符域(C)操作数域(D)注释域13.下面哪一个命令是显示内存单元的内容()(A)D命令(B)E命令(C)F命令(D)R命令14.下列为不合法的标志符的是()(A)AXYZ(B)5SKY(C)@ATT(D)?ABC15.组合类型中本段与其它段无逻辑关系,每段均有自己的基址的组合类型是()(A)NONE(B)PUBLIC(C)COMMON(D)STACK16.在段定义中,()是默认的定位类型。(A)PAGE(B)PARA(C)WORD(D)BYTE17.源程序结束语句为()(A)ENDP(B)ENDS(C)ENDMAIN(D)END18.能被计算机直接识别的语言是()(A)C语言(B)汇编语言(C)机器语言(D)面向对象语言19.能把汇编语言转换成机器语言的翻译程序是()(A)编译程序(B)汇编程序(C)解释程序(D)调试程序20.汇编语言源程序的文件扩展名是()(A).EXE(B).OBJ(C).BIN(D).ASM二、简答题1.在某子程序的开始处要保护AX,BX,CX三个寄存器信息,在子程序结束时要恢复这三个寄存器信息。假设保护现场的指令序列为:PUSHAXPUSHBXPUSHCX试写出恢复现场时的指令序列。2.完成下列操作,分别选用什么指令:(1)将AX的内容,减去0520H,和上次运算的借位;(2)将变量名TABL的段地址送AX;(3)将变量名TABL的偏移地址送AX。3.定义数据段DATA_SEG,数据段中的数据按下列要求依次存储:(1)变量BUF,大小为25个字节,初值为0;(2)变量ARRAY,类型为字,初值为12H,56H,78H,0AH;(3)变量MSG存储字符串’yes’。4.试根据以下要求,分别写出相应的汇编语言指令。(1)把AX寄存器和BX寄存器的内容相加,结果存入AX中;(2)用BX和SI的基址变址寻址方式,把存储器中的一个字节与DL的内容相加,并把结果送回DL中;(3)把数5EH与AH内容相加,结果送回AH中。5.对于下面的数据定义,三条MOV指令分别汇编成什么?TAB1DW10DUP(?)TAB2DB10DUP(?)TAB3DB‘1234’┇MOVAX,LENGTHTAB1MOVBL,LENGTHTAB2MOVCL,LENGTHTAB36.假设有如下伪指令:D1DB20HDUP(?)D2DWD1请写出用一条指令实现“取D1的偏移地址=SI”中的三种方法。三、编程题1.编程序段:编制将ES段中名为DATA的字存储区清零的程序段。假定DATA存储区定义为:DATADW20DUP(?)要求用循环指令编写,循环控制采用计数寄存器自动控制。(此题勿需书写完整的源程序格式,只需把试题要求的有关指令序列书写出来。)2.编写完整程序:设在内存单元SQTAB首址开始存放了0~15的平方数表。要求用直接查表法编一程序,求出A单元中给定数(=15)的平方值送B单元保存。3.编程序段:设X,Y,Z,W存放16位带符号数,编程计算X*Y-Z的值,并将结果的低16位送到W。(此题勿需书写完整的源程序格式,只需把试题要求的有关指令序列书写出来。)《汇编语言》课程综合复习资料参考答案一、单项选择题目12345678910答案ACAABBCDBC题目11121314151617181920答案CBABABCCBD二、简答题1.参考答案:POPCXPOPBXPOPAX2.参考答案:(1)SBBAX,0520H(2)MOVAX,SEGTABL(3)MOVAX,OFFSETTABL3.参考答案:DATA_SEGSEGMENTBUFDB25DUP(0)ARRAYDW12H,56H,78H,0AHMSGDB'yes'DATA_SEGSEGMENT4.参考答案:(1)ADDAX,BX(2)ADDDL,[BX][SI](3)ADDAH,5EH5.参考答案:MOVAX,10MOVBL,10MOVCL,16.参考答案:(1)LEASI,D1(2)MOVSI,OFFSETD1(3)MOVSI,D2三、编程题1.参考答案:DATADW20DUP(?)MOVAX,SEGDATAMOVES,AXMOVDI,0MOVCX,20;或LENGTHDATA;GOON:MOVES:DATA[DI],0ADDDI,2LOOPGOON2.参考答案:DATASEGMENTSQTABDB0,1,4,9,16,25,36,49,64,81DB100,121,144,169,196,225ADB12BDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTARTPROCFARPUSHDXXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVBX,OFFSETSQTABMOVAL,AXLATMOVB,ALRETSTARTENDPCODEENDSENDSTART3.参考答案:MOVAX,XIMULYSUBAX,ZSBBDX,0MOVW,AX