模拟试题三一、单项选择题(每小题1分,共20分)1.如某存储器分段时,一个段最多允许16K个字单元,那么表示一个段内偏移地址的二进制位数至少是()位。A.15B.16C.17D.182.下列操作中允许超越的是()。A.取指令B.存目的串C.以BP为基址存取操作数D.堆栈操作3.下面有语法错误的指令语句是()。A.MOVAX,[BX][SI]B.MOVAX,-2[BX][DI]C.MOVAX,[BX][BP]D.MOVAX,-1[BX][SI]4.下列指令执行后能使BX中数据必为奇数的是()。A.XORBX,01HB.ORBX,01HC.ANDBX,01HD.TESTBX,01H5.设CL=05H,要获得CL=0AH,可选用的指令是()。A.XORCL,0FHB.NOTCLC.ORCL,0AHD.ANDCL,0FH6.没有语法错误的输出指令是()。A.OUTAX,30HB.OUTDX,ALC.OUTAL,DXD.OUT30H,AH7.假设执行ADD指令后AX=6EH,再执行AAA指令,AX中的值是()。A.14HB.0104HC.74HD.04H8.某数据段有如下语句:ORG0435HDA1DB17H,44H,77HADRDWDA1下述语句能使AL中的数据为偶数的是()。A.MOVAX,WORDPTRDA1B.MOVAX,WORDPTRDA1[1]C.MOVAX,ADRD.MOVAL,BYTEPTRADR9.当执行条件转移指令JNSOPR时,如条件成立,相对于转移指令的转移距离是()。A.-128~+127个字节B.-126~+127个字节C.-128~+129个字节D.-126~+129个字节10.用MOV指令将十进制数89以非压缩BCD码格式送入AX,可使用的指令是()。A.MOVAX,89B.MOVAX,0809C.MOVAX,89HD.MOVAX,0809H11.VAR1FQUBYTEPTRVNAR2VAR2DW0ABCDH┋SHLVAR1,1SHRVAR2,1上述两条指令执行后,VAR2字存储单元内容是()。A.0ABCDHB.0AB9AHC.55CDHD.559AH12.设AX=0BBCCH,CF=1ORAX,3CMCRCLAX,1上述三条指令执行后,AX中内容分别是()。A.779FHB.779EHC.779DHD.7799H13.下列语句中能与DA1DB32H,34H语句等效的是()。A.MOVDA1,32HMOVDA1+1,34HB.MOVDA1,32MOVDA1+1,34C.MOVWORDPTRDA1,3234HD.MOVWORDPTRDA1,'24'14.设SP=50H,执行段间返回指令′RET8′后,寄存器SP内容是()。A.5AHB.5CHC.44HD.46H15.汇编语言语句格式中,对名字项的规定,请指出错误的解释()。A.名字的第一个字符只可以是大小写英文字母及?、@、-等B.名字的第一个字符可以是大小写英文字母、数字、?、@、-等C.名字的有效长度≤31个字符D.名字从第二个字符起可以出现数字,但不允许出现$、#等字符16.使用DOS功能调用时,子程序编号应放在()寄存器中。A.AHB.ALC.AXD.任意指定17.下列语句中能实现留空8个字节单元的语句是()。A.DA1DT?B.DA2DW?,?C.DA3DD?D.DA4DQ?18.设BX的内容为0AA40H,执行SHRDX,1指令后的结果是()。A.5520HB.5480HC.0D420HD.0D580H19.TESTDL,55HJENEXT┇NEXT:……┇上述程序段,执行JE指令时能产生转移的情况是()。A.DL55HB.DL55HC.DL=55HD.DL中第0,2,4,6位均为020.20.寄存器BX和DX中存放有32位二进制数,其中BX中放高16位。下列程序段完成对这32位数扩大4倍的功能,那么该程序段中横线上应填的语句是()。MOVCX,2LOP:SHLDX,1________LOOPLOPA.ROLBX,1B.RORBX,1C.RCLBX,1D.RCRBX,1二、填空题(本大题共5小题,每小题1分,共5分)名词解释:请将各小题的叙述与下面的词语联系起来,括号内填入对应的a,b,c,d,e。1.宏定义开始用的伪造指令是(____)。2.DF是程序状态字寄存器中的(____)标志位。3.对汇编语言源程序进行汇编时,使用的宏汇编程序文件名是(____)。4.汇编语言程序中各语句的操作项可以是指令、伪指令或(____)的助记符。5.CF是程序状态字寄存器中的(____)标志位。词语:a、宏指令b、MASMc、状态d、MACROe、控制三、简答题(本大题共3小题,每小题2分,共6分)1.STRINGDB′ABˊ,0,0,ˊCDˊ,0,0,ˊFE′,0,0。请分别用DW、DD伪指令改写上述数据定义语句,要求改写后保持内存单元中内容不变。2.执行NEGDX指令时:(1)当DX=?时,CF=1(2)当DX=?时,OF=13.设某数据段的段名为DATA,段内有一变量BUF,请分别用MOV指令写出与下述两条语句等效语句。(1)MOVAX,DATA(2)LEABX,BUF四、程序分析题(本大题共7小题,每小题5分,共35分)1.MOVAL,01HRORAL,1ORAL,ALNEGAL上述程序段执行后,AL=____,CF=____。2.设A,B均是长度为10的字节数组,DS、ES已指向同一数据段:ADB1,2,3,4,5,6,7,8,9,0AHBDB0AH,9,8,7,6,5,4,3,2,1┇LEASI,ALEADI,BMOVCX,10CLDLOP:LODSBXCHGAL,[DI]XCHGSI,DIDECDISTOSBXCHGSI,DIINCDILOOPLOP上述程序段执行后,(1)程序段完成什么功能?(2)程序段执行后,A和B两个字节数组的内容分别是什么?3.已知AL的值为0~F中一位十六进制数:HECAPROCFARCMPAL,10JCKKADDAL,7KK:ADDAL,30HMOVDL,ALMOVAH,2INT21HRETHECAENDP试回答:(1)该子程序完成什么功能?(2)如调用子程序时AL=3,子程序执行后,DL=____。如调用子程序时AL=0FH,子程序执行后,DL=____。4.MOVAL,0FHXORAL,0FFHMOVCL,7SHRAL,CL试回答:(1)上述程序段执行后,AL=____。(2)如将指令SHR换成ROR指令后,那么程序段执行后,AL=____。5.已知BX=5E5CH,CX=8303H,CF=1RORBX,CLXORBH,CHROLBX,CL程序段执行后,DX=____,CF=____。6.XDW0123H,2A3EH,89DFHCUNTEQU$-XYDBCUNTDUP(0)┇LEASI,XLEADI,YMOVCX,CUNTCLDREPMOVSB试回答(1)上述程序段执行后,Y数据区各字节单元中的内容是什么?(2)程序段功能不变情况下,RERMOVSB指令可否用下面两条指令替代:LOP:MOVSBLOOPLOP7.MOVAX,0E0EHMOVBX,AXSHRBX,1CWDDIVBXXCHGBX,AXMULBX上述程序段运行结束后,AX=____,BX=____。五、程序填空题(本大题共2小题,每小题6分,共12分)1.下面程序段是完成用单个字符输入的1号功能调用,从键盘输入10个字符,然后再用单个字符显示输出的2号功能调用,并以相反顺序显示输出这10个字符。试把空白处填上适当的指令(每一空白处只填一条指令)。MOVCX,10LOP1:MOVAH,01HINT21H________LOOPLOP1MOVCX,10LOP2:________MOVAH,02HINT21HLOOPLOP22.下面程序段实现将以BUFF为首地址的内存区域,全部存储0FFH数据。试把空白处填上适当的指令(每一空白处只填一条指令)。BUFFDB20HDUP(?)┇________MOVAX,0FFFFHMOVCX,20H________REPSTOSW六、编制程序题(本大题共3小题,共22分)1.(5分)试编写一程序段,实现32位有符号数除4(设M字单元中为低16位,M+2字单元中为高16位)。2.(5分)试用两条指令对寄存器CH和CL分别减1,且CL中减1的借位从CH中获得,而CH中减1的借位从CL中获得。3.(12分)设数据段中有三个无符号数,分别存放在DAT,DAT+1,DAT+2字节单元中,试编一完整的源程序,找出三个数中数值大小居中的一个,并将其存入BUF字节单元中。DATDB××,××,××BUFDB?模拟试题三参考答案一、单项选择题1.A2.C3.C4.B5.A6.B7.B8.B9.D10.D11.C12.A13.A14.B15.B16.A17.D18.A19.D20.C二、填空题1d2e3b4a5c三、简答题1.用DW伪指令:STRINGDW′BA′,0,′DC′,0,′FE′,0用DD伪指令:STRINGDD′BA′,′DC′,′FE′2.(1)当DX=01~0FFFFH(或DX≠0)时,CF=1(2)当DX=8000H,OF=13.(1)MOVAX,SEGBUF(2)MOVBX,OFFSETBUF四、程序分析题1.AL=80H,CF=12.(1)程序段的功能是交换A,B两字节数组的内容(2)ADB0AH,9,8,7,6,5,4,3,2,1BDB1,2,3,4,5,6,7,8,9,0AH3.(1)程序段的功能是将一位十六进制数转换为相应的ASCII码并显示。(2)AL=3时,DL=33H(或′3′);AL=0FH时,DL=46H(或′F′)4.(1)AL=1(2)AL=0E1H5.DX=4658H,CF=26.(1)YDB23H,01,3EH,2AH,0DFH,89H(2)可以7.AX=0E0EH,BX=2五、程序填空题1.PUSHAXPOPDX2.LEADI,BUFFSHRCX,1六、编制程序题(以下均是参考答案)1.MOVCX,2LOP:SARM+2,1RCRM,1LOOPLOP2.SUBCX,0101HSBBCL,03.DATASEGMENTDATDB××,××,××BUFDB?DATAENDSSTACK1SEGMENTPARASTACKDB20HDUP(0)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,DATMOVBL,DAT+1MOVCL,DAT+2CMPAL,BLJBLP1XCHGAL,BLLP1:CMPAL,CLJAESAVXCHGAL,CLCMPAL,BLJBSAVXCHGAL,BLSAV:MOVBUF,ALMOVAH,4CHINT21HCODEENDSENDSTART