微型计算机与接口技术习题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

一、选择题1.8086/8088的存储器组织是将存储器分段,可作为段起始地址的是:A.185A2HB.00020HC.01004HD.0A568H2.堆栈段中当前出栈的存储单元地址是:A.SS*10H+SPB.SS*10H+BPC.SS*10+SPD.SS*10+BP3.设DL=55H,执行指令后能使DL中的数据为0AAH的指令是:A.TESTDL,0AAHB.ORDL,0AAHC.NEGDLD.XORDL,0FFH4.当SS=9876H,SP=4328H,执行POPF指令后,堆栈顶部的物理地址是:A.9CA8AHB.9CA90HC.9CA86HD.0DB00H5.DW10HDUP(2DUP(3),300H)上述定义的数据单元中,能构成0303字存储单元的个数是:A.10HB.20HC.1EHD.0FH6.用一条指令实现将寄存器BX和SI的内容相加,结果并送入AX中,这条指令是:A.ADDAX,[BX][SI]B.MOVAX,[BX][SI]C.ANDAX,[BX][SI]D.LEAAX,[BX][SI]7.设AX中有一带符号数8520H,执行SARAX,1指令后,AX中的值是:A.4290HB.0A40HC.0C290HD.0C260H8.下列指令执行后,能影响标志位的是:A.PUSHFB.POPFC.JNLEOPRD.LOOPZLOP9.循环控制指令LOOPNZ/LOOPNE继续执行循环的条件是:A.CX0且ZF=1B.CX0且ZF=0C.CX0或ZF=1D.CX0或ZF=010.下面两条传送指令中源操作数的寻址方式是:VAR1DW32HVAR2EQU32H...MOVAX,VAR1MOVBX,VAR2A.都是立即寻址方式B.前一条是立即寻址,后一条是直接寻址C.前一条是直接寻址,后一条是立即寻址D.都是直接寻址11.设AX=0CCBBH,CF=1ANDAX,7FFEHRCRAX,1上述两条指令执行后,AX和CF中的内容分别是什么?A.AX=265DHCF=0B.AX=265DHCF=1C.AX=A65DHCF=0D.AX=A65DHCF=112.为在一连续的存储单元中依次存放41H,42H,...,48H,下面的数据定义语句中有语法错误的是:A.DB41H,42H,43H,44H,45H,46H,47H,48HB.DW4142H,4344H,4546H,4748HC.DB'ABCDEFGH'D.DW'BA','DC','FE','HG'二、简答题1.设BX=0FFFFH,DI=20H,DS=2000H,CL=8,(20020H)=4567H,下列各条指令分别执行后BX中的内容是什么?A.ROLBX,CLBX=()B.MOVBX,[DI]BX=()2.DATA1DB1,2,3,4DATA2DW3412H,4567H....MOVAX,DATA1+1;将DAT1+1的字单元的内容送入AXMOVBL,DATA2+1;将DAT2+1的字节单元的内容送入BL上述两条MOV指令有语法错误,请按要求改正。0FFFFH4567HMOVAX,WORDPTRDATA1+1MOVBL,BYTEPTRDATA1+1三、程序分析题1.DAT1DW1F28HDAT2DB?...XORBL,BLMOVAX,DAT1LOP:ANDAX,AXJZKKSHLAX,1JNCLOPADDBL,1JMPLOPKK:MOVDAT2,BL执行完后,DAT2中的内容是什么?在程序功能不变的情况下,可否用SHR指令代替SHL指令?统计“1”的个数,(DAT1)=7,可以用SHR代替。2.DAT1DB87HDAT2DB?...MOVAH,0MOVAL,DAT1MOVCL,4SHRAL,CLMOVDL,10MULDLMOVBL,DAT1ANDBL,0FHADDAL,BLMOVDAT2,AL执行完后,DAT2中的内容是什么?在程序功能不变的情况下,可否用SAR指令代替SHR指令?(87/16)*10的低8位+(87)的低4位=不可以用SAR代替。3.MOVAL,BLNOTALXORAL,BLORBL,AL程序执行完后,AL=(),BL=()AL=(11111111B)BL=(11111111B)4.STCMOVCX,0403HMOVAX,0A433HSHRAX,CLXCHGCH,CLSHLAX,CL程序执行完后,AX=(),CF=()AX=(0433H/3)*16=4860HCF=15.BYTE1DBXX;任意数BYTE2EQU0FEH...MOVDL,BYTE1ORDL,BYTE2程序执行完后,DL=()或()DL=FF或FE6.DA_BDB0CH,9,8,0FH,0EH,0AH,2,3,7,4...XORAX,AXXORCL,CLXORBX,BXLOP:TESTDA_B[BX],01HJENEXTADDAL,DA_B[BX]INCAHNEXT:INCBXINCCLCMPCL,10JNELOP程序执行完后,AH=(),AL=(),如果把JENEXT改为JNENEXT那么AH=(),AL=()。AH=4(奇数个数)AL=9+0FH+3+7(奇数和)7.VAR_BDB10DUP(3,5,7,9)...LEABX,VAR_BMOVCX,10XORAX,AXLOP:ADDAL,[BX]CMPAL,10JBNEXTINCAHSUBAL,10NEXT:INCBXLOOPLOP程序执行完后,AH=(),AL=()求前10个数中十位数和个位数。AH=5(十位数)AL=6(个位数)四、程序填空题1.某程序段欲用单个字符显示的2号DOS功能调用去显示一字符串STRING'。试在下面空白处添上适当的指令。STR1DB'STRING','$'...MOVBX,OFFSETSTR1LOP:MOVDL,[BX]MOVAH,2INT21H①②JNELOPINCBXCMPDL,’$’2.该程序段的功能是依次产生0—9的10个ASCⅡ码,并存入BUF1数据区,请在空白处添上指令。BUF1DB10DUP(?)...LEABX,BUF1MOVCX,10XORAL,ALLOP:MOVAH,ALADDAL,30H①INCBX②INCALLOOPLOPMOV[BX],ALSUBAL,30H五、编制程序1.把两个非压缩BCD码组合为一个压缩BCD码,并存入DA3中。DA1DBXX;高位非压缩BCD码DA2DBXX;低位非压缩BCD码DA3DB?2.已知DAT1字节单元有一个数据,编制一程序将该数据的低4位变为1010B,最高位(第7位)置1,其余3位不变,结果送DAT2单元。3.在N1和N2两数据区中,分别有10H个带符号数,试编制一源程序,找出对应项中较小的数据,并将这些数据存入N3数据区中(要求:对应项比较时必须用CMPS指令)。DATASEGMENTN1DBXX,XX,XX,......N2DBXX,XX,XX,......N3DB10DUP(0)DATAENDS例1:下面的程序执行后,(AX)=?(DX)=?CS:2000HMOVAX,2012H2003HMOVCX,200CH2006HPUSHCX2007HCALL4000H200AHADDAX,BX200CHADDAX,DX200EHHLT…………CS:4000HMOVBX,200AHPOPDXRETAX=401CDX=200ASS:0000SP200C200ACXIP例1:下面的程序执行后,(AX)=?(DX)=?CS:2000HMOVAX,2012H2003HMOVCX,200CH2006HPUSHCX2007HCALL4000H200AHADDAX,BX200CHADDAX,DX200EHHLT…………CS:4000HMOVBX,200AHPOPDXRETAX=401CDX=200A例2.下列指令中哪正确的,哪些是错误的?不能对代码段寄存器CS进行写操作xchgcs,axmovax,csmovcs,axmov[bx],[1000]pushcspopcspushipmovbyteptr[bx],1000mov[bx],5movcs,[1000]movdx,1000movax,[dx]moval,bxaddes,axmovss,csinc[bx]不能对代码段寄存器CS进行写操作mov等指令的两个操作数不能同时为存储器操作数不能对代码段寄存器CS进行写操作不能对指令指针寄存器Ip进行任何操作字不能往字节单元里送未区分往[bx]中送的数是字还是字节不能对代码段寄存器CS进行写操作DX不能做地址寄存器寄存器不匹配算术运算指令中段寄存器不能做操作数不能在两个段寄存器之间传送数据没有定义操作数的大小MOVAX,[BX][BP]MOVAX,[DI][SI]没有这种寻址方式没有这种寻址方式例3:请求出AL中“1”的个数,存在AH中。①MOVAH,0Again:SHLAL,1ADCAH,0CMPAL,0JNZAgainHLT②MOVAH,0MOVCL,8Again:SHLAL,1JNCNextINCAHNext:DECCLJNZAgainHLT例4:若自Block开始的内存中有100个带符号数,找出最大值存入Max单元。Block65F3020024E00500MOVBX,OffsetBlockMOVAX,[BX]INCBXINCBXMOVCX,100Again:CMPAX,[BX]JGNEXTMOVAX,[BX]Next:INCBXINCBXDECCXJNZAgainMOVMAX,AXHLTMax例5:数组ARRAY为N字数组,要求将其中正数、负数、0的个数统计出来,分别存入寄存器DI、AX、SI中。XORBX,BXXORSI,SIXORDI,DIMOVCX,Nagain:CMPARRAY[BX],0JLEless_or_eqPUSHFINCDIPOPFLess_or_eq:JLNEXTINCSInext:ADDBX,2DECCXJNZAGAINMOVAX,NSUBAX,SISUBAX,DIHLTOSZAPC00101100105A2001085239002arraycmp例6:若在0500H单元有一个数x,将其高4位变为1,低4位维持不变。moval,[0500]andal,f0hmov[0500],al例7:将AL的高4位与低4位互换。MOVCL,4ROLAL,CL例8:将1A00H内存单元中的双字循环左移1位。CLCRCLWORDPTR[1A02H],1RCLWORDPTR[1A00H],1COPRDCOPRD1A021A00movah,4chint21hMainendpCodeendsendbeginBX1010110001011001000011111100010110011010①②∧00001010Codesegmentassumecs:codeBegin:movch,4movcl,4Rotate:rolbx,clmoval,blandal,0fhaddal,30hcmpal,3ahjlprintfaddal,7hPrintf:movah,2movdl,alint21hDecchJnzrotate例9:将BX寄存器中的二进制数以十六进制的形式在显示器上显示出来。例10:将二进制数串转换成ASC码,并在屏幕上显示。DatasegmentNumdw4f78h;0100111101111000Stringdb16dup(?)DataendsCodesegmentassumecs:code,ds:dataBegin:movax,datamovds,axleadi,stringmovbx,nummovcx,16again:rolbx,1jncnextmovbyteptr[di],31hnext:movbyteptr[di],30hincdiloopagainmovah,4chint21hstartendpcodeendsendbeginDatasegmentNumdb7dup(?)DataendsCodesegmen

1 / 33
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功