《微机原理期末练习题及答案.pdf》由会员分享,可在线阅读,更多相关《微机原理期末练习题及答案.pdf(153页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、=汇编语言程序设计模拟试卷01=一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干的括号内。每题2 分,共 20分)1.若栈顶的物理地址是20100H,当执行完指令CALL AX后,栈顶的物理地址是()。A)20102H B)20101H C)200FFH D)200FEH2.当执行完下列指令序列后,标志位CF和 OF的值是()。MOV AH,85HSUB AH,32HA)0,0 B)0,l C)l,0 D)l,l3JMP SI的目标地址偏移量是(),A)SI的内容 B)SI所指向的内存单元的内容QIP+SI 的内容 D)IP+SI4.循环指令LOOPNZ终止循环
2、的条件是()。A、C X=0,且 ZF=0 B、C X=0,或 ZF=1C、C X A 0,且 ZF=0 D、C X rO,或 ZF=15 .指出下列哪个数据在汇编语言中是非法的?()A)19BH+25D B)25+AL C)108-102Q D)101B*0ABH6.已知AL,BX中各放一个无符号数,计算AL*BX的 积,应采用下列程序段()A)MUL BX B)IMUL BXC)XOR AH,AH D)CBXMUL BX MUL BX7.NEXT是程序中某指令语句标号,下述四个程序段中,不能实现转移到NEXT语句执行的 是()A)JMP NEXT B)MOV BX,OFFSET NEXTJ
3、MP BXC)MOV BX,NEXT D)LEA AX,NEXTJNP BX JNP AX8.DATA的定义如下:DATA DW 1234H现想把12H取入到AL寄存器,可以实现该功能的程序段是()A)MOV AL,BYTE PTR DATAB)MOV AL,DATA+1C)MOV AL,BYTE PTR DATA+1D)MOV AX,DATA9.下面指令执行后,改变AL寄存器内容的指令是()。A、TEST AL,02H B、OR AL,ALC、CMP AL,BL D、AND AL,BL10.在汇编语言程序的开发过程中使用宏功能的顺序是()。A、宏定义,宏调用 B、宏定义,宏展开C、宏定义,宏
4、调用,宏展开 D、宏定义,宏展开,宏调用二、填空题(每空1 分,共 30分)L 设机器字长为16位,若 Nl=117,用二进制数和16进制数表示时分别为B 和 H。若 N2=-117,则四2 原=B,N2 补=H.2.指出下列各指令中源操作数的寻址方式,并计算指令执行后AX的内容。其 中:(DS)=3000H,(ES)=4000H,(SS)=5000H,(AX)=1200H,(BX)=1300H,(BP)=1400H,(S I)=1500H,(42000H)=1260H,(51400H)=1270H,(33800H)=1280Ho MOV AX,1250H;寻址方式,(A X)=o MOV A
5、X,ES:2000H;寻 址 成,(AX)=MOV AX,BP;寻址方式,(AX)=XCHG AX,BX+SI+1OOOH;寻址方式,(AX)=o MOV AX,BX+2500H;寻 址 同,(AX)=3.执行下列两条指令:MOV BX,9048HSUB BH,BL执行后,各标志位分别为:C F=_ ,Z F=_ ,SF=_ ,O F=_ ,AF=4.在存储器里以 为单位存储信息;在机器里,访问存储器都是以为单位进行的,也就是说,机器是以 一(奇或偶)地址访问存储器的5.I/O端口有 和 两种编址方式,8086采用_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _编址方式,最大
6、I/O寻址空间是.6.执行下列指令,写出每条指令执行后右边所示的内容:MOV AL,28HADD AL,68H;(AL)=,CF=AF=0DAA;(AL)=0三、改错题(15分)下列程序求一组带符号字节数据的平均值,数据的首地址为DATA,数据个数存放在CNT单 元,但程序有逻辑错误,请将错误改正过来。1 DSEG SEGMENT2 DATA DB 100.-100,90,20,-120,603 CNT DW 0005H4 AVER DB?5 DSEG ENDS6 CSEG SEGMENT7 ASSUME CS:CSEG,DS:DSEG8 MAIN PROC FAR9PUSH DS10XOR
7、DX,DX11PUSH DX12MOV AX,DS13MOV DS,AX14MOV SI,OFFSET DATA15MOV CX,OFFSET CNT16AGAIN:ADD DL,SI17ADC DH,018DEC CX19LOOP AGAIN20DIV CL21MOV AVER,AL22RET23 MAIN ENDP24 CSEG ENDS25 END MAIN四、简单程序设计题(每小题5分,共10分)用尽可能少的指令实现完成下列功能的程序片段。1.假设在数据段中有一字符串stringl,其长度为20,要求把它们传送到附加段string2中,假 设DS和ES都初始化在同一数据段中。2.DX:
8、AX中双字数据算术右移n位,n值在CL中。五.阅读下列程序,回答后面的问题:(10分)DATADATACODESTARTSEGMENTDATA1 DB 85H,27H,4AHDATA2 DB 93H,87H,65HLEGH DW 3SUM DB 0,0,0ENDSSEGMENTASSUME CS:CODE,DS:DATAAGAINMOVAX,DATAMOVDS,AXLEAS I,DATA1LEABX,DATA2LEAD I,SUMMOVCX,LEGHCLCMOVAL,SIADCAL,BXMOVDI,ALINCSIINCBXINCDILOOPAGAINMOVAH,4CHINT21HCODE EN
9、DSEND START请 回 答:(1)该程序完成什么功能?(2)程序中的INC SI可否用指令ADD SI,1 代 替,为什么?(3)程序中的指令LEA SI,DATA1可用指令()代替。(4)C L C 指令的目的是()。六、程序设计题(要求:写出完整的汇编语言源程序,并给出适当的注释,15分)设在数据段中有一字数组:3,5,15,23,3 7,49,52,65,78,99,105,并且已按从小到大的顺序存储,该数组的首地址和末地址分别为Array_head和 Array_end,要求编写程序,将 数 N=55插入该数组的正确位置,使得插入N 后数组仍按从小到大的顺序存储。Data Seg
10、mentX DW?Array.head DW 3,5,15,23,37,49,52,65,78,99Array_end DW 105N DW 55Data Ends=汇编语言程序设计模拟试卷01参考答案=-单项选择题D B A B B C C C D C二填空题1.0000 0000 0111 0101B,0075H,1000 0000 0111 0101B,0FF8BH2.立即寻址 2450H直接寻址1260H寄存器间接寻址 1270H基址+变址相对寻址1280H寄存器相对寻址 1280H3.CF=O,ZF=O,SF=O,OF=1,AF=14.字 节,字,偶5.统一编址,独立编址,独立编址,
11、64K6.90,0,1,96三改错题第 3 行:0005改为0006H第 12行:DS改 为 DSEG第 15行:OFFSET去掉第 1618行改为:PUSH CXAGAIN:MOV AL,SICBWADD DX,AXINC SI第 19行和第20行之间插入一行:POP CX第 20行改为:IDIV CL四简单程序设计题1.MOV CX,20LEA SI,stringlLEA DI,string2CLDMOVSB2.MOV CH,0DI:SAR DX,1RCR AX,1LOOP DI五读下列程序,回答后面的问题(1)该程序用来将存放在DATA1和DATA2开始的单元中的两个多字节数据相加,并将
12、结果存放在SUM开始的连续单元中。(2)不可以,因为ADD指令影响进位标志CF的状态(3)MOV S I,OFFSET DATA1(4)清进位,以便在数据最低字节相加时,可以用ADC指令。六程序设计题Data SegmentX DW?Array.head DW 3,5,15,23,37,49,52,65,78,99Array_end DW 105N DW 55Data EndsPrognam segmentMain proc farAssume cs:prognem,ds:DataStart:push dsSub ax,axPush axMov ax,DataMov ds,axMov ax,N
13、Mov Array_head-2,0FFFFHMov si,0Compare:cmp Array_endsizaxJie insertMov bxz Array_endsiM ov Array_endsi+2zbxSub si,2Jmp short compareInsert:mov Array_endsi+2,axRetMain endpPrognam endsEnd start=汇编语言程序设计模拟试卷02=一 填 空(每 空1分,共30分)1.225D=()B=()H2.已知 X=-1011011,求 X补=()03 已知凶补=11010101,则X=()D。4.8086CPU在取指令时
14、,会选取段寄存器()的值作为段基值,再加上由()提供的偏移地址形成20位的物理地址。5.地址2000H:0480H,其物理地址是(),段地址是(),偏移量是().6.按存储器的位置,可以将存储器分为 和.7.汇编语言程序的建立及汇编过程为:先用()产生源程序,然后用()产生目标程序,最后用(0产生可执行文件。8.执行下列两条指令:MOV BX,9048HSUB BH,BL执行后,各标志位分别为:CF=(0,ZF=(),SF=(),OF=(),A F=()。9.对于下面的数据定义:DATA1 DW 10DATA2 DB 2,8DATA3 DW 100 DUP(0)请写出下列的MOV指令分别被汇编
15、后的指令形式:MOV BX,(DATA1 LT 5)AND 20)OR(DATA1 GE 5)AND 30)MOV SI,TYPE DATA2MOV CX,LENGTH DATA3MOV CX,SIZE DATA31 0 .在存储器里以()为单位存储信息;在机器里,访问存储器都是以()为单位进行的,也就是说,机器是以()(奇或偶)地址访问存储器的11.1/0 端口有()和()两种编址方式,8086采用()编址方式,最大I/O 寻址空间是().二 选 择 题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干的括号内。每小题2 分,共 20分)1 用来存放即将执行的指令的偏移地址的
16、寄存器是().A)SP B)IP C)BP D)CS2 .源变址寄存器是()。A)SI B)DI C)SP D)BX3.设 SP=1110H,执 行 PUSH AX后,SP中的内容为()。A)SP=1112H B)SP=110EH C)SP=1111H D)SP=110FH4.语 句 DAI DB 2 DUP(3,5,7)汇编后,与该语句功能等同的语句是()。A)DAI DB 3,5,7B)DAI DB 2,3 ,5,7C)D A I DB 3,5,7,2D)DAI DB 3,5,7,3,5 ,75 .下面四个寄存器中,不能用来作为间接寻址的寄存器是()。A)BX B)CX C)BP D)DI
17、6.完成将BX清 零,并使标志寄存器CF清 零,下面指令错误的是()。A)SUB BX,BX B)XOR BX,BXC)MOV BX,0 D)AND BX,0000H7 .下面数据传送指令中,正确的是()。A)MOV BUF1,BUF2 B)MOV CS,AXC)MOV CL,1000 D)MOV DX,WORD PTRBP+DI8.下面指令执行后,改变AL寄存器内容的指令是()。A、TEST AL,02H B、OR AL,ALC、CMP AL,BL D、AND AL,BL9.完成将有符号数BX的内容除以2 的正确指令是()。A)SHR BX,1B)SAR BX,1C)ROR BX,1D)RC
18、RBX,110.指 令 LOOPZ的循环执行条件是().A)CX0HZF=0 B)CXO pgZF=0C)CXHO且 ZF=1 D)CXHO或 ZF=1三改正下列程序中的错误(直接在程序中改正)(12分)1 下面是将内存一字节数据高4 位 和 低 4 位互换并放回原位置的程序,找出错误并改正。15 CODE ENDS1DATASEGMENT2DD1 DB 23H3DATAENDS4CODESEGMENT5ASSUME CS:CODE,DS:DATA6STARTMOVAX,DATA7MOVDS,AX8LEA 5 乳,OFFSET DD19MOVAL,SI10MOV CL,411RCRAL,CL1
19、2MOVSI,AL13MOVAH,4CH14INT21H16END START2.下面的程序是将内存单元一字节数据乘以10放回单元的程序,找出错误并改正。1 DATA SEGMENT2 DA DW 343 DATA ENDS4 CODE SEGMENT5 ASSUME CS:CODE,DS:DATA6 START:MOV AX,DATA7 MOV DS,AX8 MOV S I,OFFSET DA9 MOV AL,SI10 MUL 1011 MOV SI,AX12 MOV AH,4CH13 INT 21H14 CODE ENDS15 END START四程序分析(12分)1.执行完程序后,回答指
20、定的问题。MOV AX,0MOV BX,2MOV CX,50LP:ADD AX,BXADD BX,2LOOP LP问:(1)该程序的功能是:(2)血 执 行 完 成 后,(AX)=()。2.执行完程序后,回答指定的问题。BLOCKDB20H,1FH,08H,81H,OFFH.RESULTDB7START:LEAS I,BLOCKMOVCH,0MOVCL,SIDECCXINCSIMOVAL,SILOP1:CMPAL,SI+JLENEXTMOVAL,SI+1NEXT:INC SILOOP LOP1MOV RESULT,ALHLT问:(1)该程序的功能是:(2)该程序的循环次数是()。五、填语句(1
21、2分)。1.从键盘输入一个十六进制数码,转换成二进制数放入HEXNUM单 元,在横线上填入适当的语句。HEXNUM DB?MOVAH,INT 21HCMP AL,39H_ NEXTSUB AH,NEXT:SUB AL,30HMOV HEXNUMHLT六、程序设计题(要 求:写出完整的汇编语言源程序,可以上机调试运行,并给出适当的注 释,14分)知在内存中从BLOCK单元起存放有20个带符号字节数据,统计其中负数的个数并放入COUNT单元.DATA SEGMENTBLOCK DB-7,1,12,-90,-70,34,-1,56,45,-12DB-3,-4,2 3,0 ,12,11,-9,-8,6
22、7,-56CN EQU$-BLOCKCOUNT DB?DATA ENDS=汇编语言程序设计模拟试卷02参考答案=一 填 空(每 空1分,共30分)1.11100001B,ElH2.10100101B3.-434.CS,IP5.20480,2000h,0480H6 .内存储器,外存储器7.Edit,Masm,Link8 .0,0,0 ,1,19.MOV BX,30MOV SI,1MOV CX,100MOV CX,20010.字节,字,偶11.统一编址,独立编址,64K二 选 择 题(每 小 题 2 分,共 20分)B A B D B C D D B C三改正下列程序中的错误(直接在程序中改正)(
23、12分)1.第 8 行去掉OFFSET第 11行改为:ROR AL,CL2.第 9 行改为:MOV AL,BYTE PTR SI第 10行改为:MOV BL,10MUL BL三程序分析(12分)1(1)完成0100之间所有偶数求和的功能(2)(AX)=(2250)2(1)从一组数中找出最小数送RESULT中(2)3 1五、填语句(12分)。01,JBE,07,AL六、程序设计(14)DATA SEGMENTBLOCK DB-7,1,12,-90,-70,34,-1,56,45,-12DB-3,-4,2 3,0 ,12,11,-9,-8,67,-56CN EQU$-BLOCKCOUNT DB?D
24、ATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXMOV DL,0LEA S I,BLOCKMOV CX,CNLP:MOV AL,SITEST AL,80HJZ NEXTINC DLNEXT:INC SILOOP LPMOV COUNT,DLMOV AH,4CHINT 21HCODE ENDSEND START=汇编语言程序设计模拟试卷03=一 填 空 题(每 空1分,共20分)1.计算机系统由_ _ _ _ _ _ _ _ _ 和 组成.2.计算机语言是_ _ _ _ _ _ _ _ _ _ 与_ _ _
25、_ _ _ _ _ _ _ _ _之间交流信息的工具,计算机语言可分为三类:O3.28.625D=B=Q=H。4 .8086CPU B _位微机,8088CPU 位 酬,80386CPU B _位微机。5.在下列空白处,填上一个属于同类的运算符号:+、-、*、/、SHL、SHR AND、OR、NOT(3)EQ、NE、LT、LE、GT、6.在8086/8088中,存储器以 为单位存储信息;在机器里,访问存储器都是以为单位进行的,也就是说,机器是以一(奇或偶)地址访问存储器的。7.已知 X补=11010101,贝(J X=D。二 选 择 题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码
26、填在题干的括号内。每 题2分,共20分)1.以8086/8088为CPU的微机内存最大容量为()。A)4MB B)1MB C)640KB D)64KB2.与1A.5H不等的数据是()。A)26.3125D B)11010.0101B Q32.5Q3.8位二进制补码表示的整数数据范围是()。A)-128-127 B)-127-127 C)-128128 D)-1271284 .下列四个寄存器中,不允许用传送指令赋值的寄存器是().A)CS B)DS C)ES D)SS5.指 令 MOV 1OOSIBP,AX的目的操作数的隐含段为().A)数据段 B)堆栈段 C)代码段 D)附加段6 .确定下列哪
27、些数据在汇编语言中是非法的()。A)19AH B)1372 C)ABH D)1457.若栈顶的物理地址为20100H,当执行完指令PUSH AX后,栈顶的物理地址为().A)20102H B)20101H C)200FFH D)200FEH8.当执行完下列指令序列后,标志位CF和 SF的值是()。MOV AL,0C4HADD A L,9DHA)0,0 B)0,1 C)1,0 D)1 ,19.JMP WORD PTRBX转移的目标地址是()。A)B X 中的内容 B)S P+B X的和C)IP +BX之和 D)BX指示的内存单元的内容10.8086/8088CPU的 I/O 指令采用间接寻址时,
28、可使用的间址寄存器是().A)BX B)DX C)SI D)DI三 判 断 题,若错误,请说明原因或改正(判断每题的正误,对的在题后括号内画 7 错 的 画 X)(20分,)1.在 8 位补码表示中,10000000表示的真值为-0。()2.奇偶标志位P F,当运算结果的低8 位中有偶数个1 时,被置为0。()3 .CS、DS、ES和 SS段都可以存放指令代码。()4.INC AX()5.MOV DI,SI()6.两数相等时转移可用JZ指令。()7.OUT BX,AL()8.当IF=0时,CPU不能响应NMI中断。()9.已知AL、BX为带符号数,计 算AL*BX的乘积,使用下列程序段。CBW
29、IMUL BX()10.在8位补码表示法中,对-128求补会产生溢出。()四程序分析(10分)1,试分析下列程序段。ADD AX,BXJNO LIJNC L2SUB AX,BXJNC L3JNO L4JMP SHORT L5如果AX和BX的内容给出如下:AX BX(1)14C680DC(2)B56854B7(3)42C8608D(4)D0239FD0(5)9FD0D023问该程序分别在上面5种情况下执行后,程序转向哪里?请直接标注在题后。五宏定义如下,试展开下面的宏调用。(每 题5分,共10分)1.DfmesslMACRO LAB,NUM,NAMELAB84NUM DB Hello MR.&N
30、AME,ODH,OAH,0ENDM;宏调用语句:Dfmessl Mess,1,Assembly;宏展开为:2.Dfmess2 MACRO MESSDB&MESS,ODH,OAH,0ENDS;宏调用语句:Dfmess2 90 Dfmess2%(10+5-2)宏展开为:六写出实现下列功能的程序片段。(5 分)若要测试AL寄存器中第2 位是否为1(但不能改变AL的 值),如 为 1 则转移到EXIT去执行,否则将其第5、3 位变反。七程序设计(要求写出完整的汇编语言源程序,包括段的定义,寄存器保护等,并给出适当的注释,15分)已知两个无符号字数据X、Y 分别存放在ADRX和 ADRY单 元,编制程序
31、,若 X 是丫的倍数,则在显示器上显示0,否则显示1.Data SegmentArray_end DW 105NDW 55Data Ends=汇编语言程序设计模拟试卷03参考答案=一 填 空 题(每 空1分,共20分)1.硬件系统,软件系统2.计算机,程序员,机器语言,汇编语言,高级语言3.11100.101B,34.5Q,1C.AH4.16,准 16,325.MOD XOR GE6.字 节,字,偶7.-43二 选 择 题(每 题2分,共20分)B C A A B C D C D D B三 判 断 题,若错误,请说明原因或改正(20分,)1.(X)表 示-1282.(X)被置为13.(X)只
32、有CS可以4.(X)AX不能为地址计数器5.(X)两操作数不能同时为存储单元6.(V)7.(X)OUT中不能用BX,可以用DX8.(X)CX不能为目的操作数9.(V)10.(V)四程序分析(10分)1.(1)L1(2)L1(3)L2(4)L5(5)L5五宏定义如下,试展开下面的宏调用。(每 题 5 分,共 10分)1.1 Messi DB Hello MR.Assembly1,ODH,OAH,02.1 DB This is my score90,ODH,OAH,01 DB 13 ,ODH,OAH,0六写出下面的程序片段。(5 分)MOV DL,ALNOT DLTEST DL,00000100B
33、正 EXITXOR AL,00101000BEXIT:七程序设计(15分)已知两个无符号字数据X、Y 分别存放在ADRX和 ADRY单 元,编制程序,若 X 是丫的倍数,则在显示器上显示0,否则显示1.DATA SEGMENTADRX DW 144ADRY DW 12DATA ENDSCODE SEGMENTASSUME CS;CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AX,ADRXMOV DX,0DIV ADRYCMP DX,0JZ EXTMOV DL,1JMP EXITNEXT:MOV DL,O EXIT:MOV AH,02HINT 21HMOV
34、AH,4CHINT 21HCODE ENDSEND START=汇编语言程序设计模拟试卷04=一 填 空(每 空1分,共30分)1.冯诺依曼型计算机将计算机的硬件部分分为五大功能部件,分别2.119D=B=H3.已知 X=-1011011,求凶反=,凶 补=。4.十进制数4 5 的组合BCD码为 BCD。5.执行部件EU的主要功能是:6.8086CPU在取指令时,会选取寄存器 的值作为段基值,再加上由_提供的偏移地址形成20位的物理地址。7.地 址 2000H:0480H,其物理地址是,段地址是,偏移量是。8 .将汇编语言源程序翻译成目标程序的过程叫.9 .执行下列两条指令:MOV BX,78
35、96HADD BH,BL执行完上述指令后,各标志位分别为:C F=_ ,Z F=_ ,S F=_ ,O F=_ ,AF=一10.指出下列各指令中源操作数的寻址方式,并计算指令执行后AX的内容。其 中:(DS)=3000H,(ES)=4000H,(SS)=5000H,(AX)=1200H,(BX)=1300H,(BP)=1400H,(S I)=1500H,(42000H)=1999H,(51400H)=2000H,(33800H)=2001H.MOV AX,1250H;寻 址 放,(AX)=MOV AX,ES:2000H;寻址方式,(AX)=o MOV AX,BP;_ 寻址方式,(AX)=XCH
36、G AX,BX+SI+1000H;寻址方式,(AX)=。二 选 择 题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干的括号内。每 题 2 分,共 30分)1.目的变址寄存器是()。A)SIB)DIC)SPD)BX2 .下列常用寻址方式中,()属于变址寻址,()属于立即寻址,()属于直接寻址。)属于寄存器间接寻址,A)MOV AX,ES:2000HB)MOV BX,AXC)MOV AX,2000HD)MOV AX,BX+3AHE)MOV DI+12H,AXF)MOV AX,BX3.设 SP=111OH,执行 PUSHAX后,SP中的内容为().A)SP=1112HB)SP=1
37、1OEHC)SP=1111HD)SP=11OFH4.下列指令中错误的指令为()和().A)MOVAX,CSB)MOVDS,1500HC)MOVSI,BXD)MOV2000H,BLE)MOVDI+32H,1845HF)MOV AX,BX5.语 句 DA1().DB 2 DUP(3,5),7 汇编后,与该语句功能等同的语句是A)D A I DB 3,5,7B)DAI DB 2,3,5,7C)DAI DB 3,5,3,5,7D)DAI DB 3,5,7 ,3,5,76.下面四个寄存器中,用来作为I/O 端口间接寻址的寄存器是().A)BXB)DXC)BPD)DI7.完成将BX清 零,并使标志寄存器C
38、F清 零,下面指令错误的是(A)SUB BX,BXB)XOR BX,BXC)MOV BX,0D)AND BX,0000H8.下面数据传送指令中,正确的是()。A)MOV BUF1,BUF2B)MOV CS,AXC)MOV CL,1000D)MOV DX,WORD PTRBP+DI9.完成将有符号数BX的内容乘以2 的正确指令是()oA)SHR BX,1B)SAR BX,1C)SAL BX,1 D)RCR BX,110.指 令 LOOPNZ的循环执行条件是().A)CX0HZF=0 B)CX0BZF=0C)CXHO且 ZF=1 D)CXHO或 ZF=111,下列寄存器中不能作为间址寄存器的是()
39、OA)SI B)DI C)CX D)BX三 改 错 题(16分)下列程序执行后,应 将 UST数组中的最大值存入MAX单 元,数组元素为无符号字数据,数据个数在CNT单元中。现已知程序有错,请改下,使之完成预定功能。1.DSEGSEGMENT2.LIST DW 1,200,3 0,4 0 0,0,7,4 0 0 03.CNT DB 74.MAX DW?5.DSEGENDS6.CSEGSEGMENT7.ASSUME DS:DSEG,DS:CODE8.FMAX:MOV DX,DSEG9.MOV DS,AX10.LEA SI,LIST11.MOV CX,CNT12.CLD13.LODSW14.DEC
40、 CX15.CMP AL,SI16.儿E SMALL17.LODSW18.SMALL:INC SI19.INC SI20.DEC CX21.LOOP AGAIN22.MOV MAX,SI23.MOV AH,4CH24.INT21H25.CSEG ENDS26.END START四程 序分析(9 分)1.执行完程序后,回答指定的问题。MOV AX,0MOV BX,2MOV CX,50LP:ADD AX,BXADD BX,2LOOP LP问:Q)该程序的功能是:(2)程序执行完成后,(AX)=()。2 .执行完程序后,回答指定的问题。MOV AX,200HMOV BX,500HMOV BX+10H
41、,30HADD AX,BX+10HLEA SI,BX+1OHMOV BX,AX问:程序段执行后:SI=()BX=()五 程序设计题。(要求写出完整的汇编语言源程序,可以上机调试运行,并给出适当的注释,15分)已知在数据段有一带符号单字节数X,判断其正负,若为负数,求其绝对值并放到丫单元。(8 分)=汇编语言程序设计模拟试卷04参考答案=一 填 空(每 空 1 分,共 30分)1.运算器,控制器,存储器,输入设备,输出设备2.1110111B,77H3.10100100B,10100101B4.010001015 .执行指令6.CS,IP7.200480H,2000H,0480H8.汇编9.1,
42、0,0,0,010.立即数,2450H直接寻址,1999H寄存器间接寻址,2000H基址加变址寻址,2001H二 选 择 题(每 题 2 分,共 30分)B C B E A B B E E C B C D C C C三 改 错 题(16分)第 3 行 改 为 CNT DW 7第 8 行改为 FMAX:MOV AX,DSEG第 15 行改为 AGAIN:CMP AX,SI第 16行改为第 17行改为第 20行去掉第 22行改为第 26行改为JAE SMALLMOV AX,SIMOV MAX,AXEND FMAX四程序分析(9 分)1.Q)该程序的功能是计算0100之间偶数之和(2)程序执行完成后
43、,(AX)=(2550)。2.执行完程序后,回答指定的问题。SI=(510),BX=(230)。五程序设计Q 5分)DATA SEGMENTX DB-16Y DB?DATA ENDSCODE SEGMENTASSUME DS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,XTEST AL,80HJZ EXITNEG ALEXIT:MOV Y,ALMOV A H,4CHINT 21HCODE ENDSEND START=汇编语言程序设计模拟试卷05=一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干的括号内。每小题2 分,
44、共 20分)1、设 DS=8225H,DI=3942H,指 令 NEG BYTE PTRDI操作数的物理地址是()A、85B92H B、86192H C、BB690H D、12169H2、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是()A、AX,BX,CX,DX B、BX,BP,SI,DIC、SP,IP,BP,DX D、CS,DS,ES,SS3、循环指令LOOPNZ终止循环的条件是()。A、C X=0,且 ZF=O B、C X=0,或 ZF=1C、C X rO,且 ZF=O D、CXHO,或 ZF=14、对寄存器AX的内容乘以4 的正确指令序列是()。A、SHRAX,1 SHR AX
45、,1 Bs SHL AX,1 SHL,AX,1C、ROL AX,1 ROL AX,1 D、RCR AX,1 RCR AX,15、执行INC指令除对SF、ZF有影响外,还要影响的标志位是().A、OF,AF,PF B、OF,AF,CFC、OF,PF,CF D、AF,PF,CF6、设 DH=10H,执 行 NEG DH指令后,正确的结果是()。A、DH=10H CF=1 B、DH=0F0H CF=0C、DH=10H CF=0 D、DH=0F0H CF=17、下列传送指令中有语法错误的是()。A、MOV CS,AX B、MOV DS,AXC、MOV SS,AX D、MOV ES,AX8、下面指令执行
46、后,改变AL寄存器内容的指令是()。A、TEST AL,02H B、OR AL,ALC、CMP AL,BL D、AND AL,BL9、执行除法指令后,影响的标志位是()。A、CF,OF B、SF,ZFC、CF,OF,SF D、AF,CF,OF,PF,SF,ZF 都不确定10、执行下面指令序列后,结果是()。MOV AL,82HCBWA、AX=0FF82H B、AX=8082HC、AX=0082H D、AX=0F82H二、填空题(每 空 1 分,共 20分)1.计算机系统由和组成。2 .计算机语言是三 类:3.28.625D=4.8086CPU 是与B=位微机,8088是之间交流信息的工具OQ=
47、位微机,80386计算机语言可分为Ho位微机。5 .在下列空白处,填上一个属于同类的运算符号:+、-、*、/、SHL、SHR AND、OR、NOT EQ、NE、LT、LE、GT、6.在 8086/8088中,存储器以 为单位存储信息;在机器里,访问存储器都是以 为 单 位 进 行 的,也就是说,机 器 是 以(奇或偶)地址访问存储器的。7.已知凶补=11010101,贝!J X=D。三、判断下列指令是否正确,若错误,请说明原因。(20分)其 中:VARI,VAR2为字节变量1.MOV BX,OFFSET VARI;()2.MOV AL,BX+5;()3.MOV AX,VARI;()4.MOV
48、AX,WORD PTR VAR1+1;()5.MOV AX,VAR1BXSI;()6.MOV AX,OFFSET VAR1BXSI;()7.INC AX;()8.LEA DI,VAR1BXSI;()9.MOV 2134H,AX;()10.ADD CS,AX;()四、计算题(每题2 分,共 20分)现有(AX)=2000H,(BX)=1200H,(SI)=0002H,(DI)=0003H,(DS)=3000H,(SS)=3000H,(SP)=OOOOOH,(31200H)=50H,(31201H)=02H,(31202H)=0F7H,(31203H)=90H请写出下列各条指令独立执行完后有关寄存
49、器及存储单元地内容,若该指令影响调解码请给出条件码SF,ZF,OF,CF的之值。1.ADD AX,12002.SUB AX,BX3.MOV BX,AX4 .PUSH AX5.DEC BYTE PTR 1200H6.NEG WORD PTR 1200H7.SAR BYTE PTR 1200SI,18.ROL BYTE PTR BX+SI+1,19.MUL WORD PTR BXSI10.DIV BYTE PTR 1200DI五、程序分析题(5分)设寄存器AL,BL,CL中内容均为76H,XOR AL,OFHAND BL,OFHOR CL,OFH执行上述指令序列后:AL=_BL=_CL=六、编制程
50、序题(要求写出完整的汇编语言源程序,可以上机调试运行,并给出适当的注释,15分)试编写程序,对 BUF字节存储区的3 个数进行比较,并按比较结果显示如下信息:1.如 果 3 个数都不相等则显示02.如 果 3 个数中有两个相等则显示13.如 果 3 个数都相等则显示2(提 示:自己可以在数据段中随意定义3 个数据,然后比较,若第一数和第二数相等,接着比较第三数,相等则显示2,否 则 显 示 1;若第一数和第二数不相等,接着比较第三数,相等则显示1,否则显示0).DATA SEGMENTBUF DB 50,50,50DATA ENDS=汇编语言程序设计模拟试卷05参考答案=一、单项选择题(每小题