您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 微型计算机原理与接口技术课后答案资料
15.已知:在内存BUF开始的单元中,存在一串数据:58,75,36,42,89。编程找出其中的最小值存入MIN单元中,并将这个数显示在屏幕上。解:STACKSEGMENTSTACKDB100DUP(?)STACKENDSDATASEGMENTBUFDB58H,75H,36H,42H,89HMINDB0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:PUSHDSMOVAX,DATAMOVDS,AXMOVCX,4MOVBX,OFFSETBUFMOVAL,[BX]ST1:INCBXCMPAL,[BX]JBENEXTMOVAL,[BX]NEXT:LOOPST1MOVMIN,ALANDAL,0F0HMOVCL,4RORAL,CLADDAL,30HMOVDL,ALMOVAH,02HINT21HMOVAL,MINANDAL,0FHADDAL,30HMOVDL,ALMOVAH,02HINT21HPOPDSMOVAH,4CHINT21HHLTCODEENDSENDSTART18.某班有20个同学的微机原理成绩存放在LIST开始的单元中,要求编程先从高到低的次序排列好,再求出总分和平均值,分别存放在SUM和AVER开始的单元中。解:STACKENDSDATASEGMENTLISTDB65H,76H,78H,54H,90H,85H,68H,66H,77H,88HDB99H,89H,79H,69H,75H,85H,63H,73H,83H,93HSUMDW0AVERDB0BUFDB100DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:PUSHDSMOVAX,DATAMOVDS,AXMOVDI,OFFSETLISTMOVBX,19LP0:MOVSI,DIMOVCX,BXLP1:MOVAL,[SI]INCSICMPAL,[SI]JNCLP2MOVDL,[SI]MOV[SI-1],DLMOV[SI],ALLP2:LOOPLP1DECBXJNZLP0LP3:MOVCX,20MOVBX,OFFSETLISTMOVSUM,0XORAX,AXLP4:ADDAL,[BX]DAAADCAH,0INCBXLOOPLP4MOVSUM,AXMOVBL,20HDIVBLADDAL,0DAAMOVAVERALPOPDSHLTCODEENDSENDSTART20.编程将存放在AL中的无符号二进制数,转化成十六进制数,再转换成ASII码并显示在屏幕上。解:程序如下:STACKSEGMENTSTACKDB100DUP(?)STACKENDSDATASEGMENTDB100DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:PUSHDSMOVAX,DATAMOVDS,AXMOVDH,ALMOVCH,02HST1:MOVCL,4RORDH,CLMOVAL,DHANDAL,0FHADDAL,30HCMPAL,39HJBEDISPADDAL,07HDISP:MOVDL,ALMOVAH,02HINT21HDECCHJNZST1POPDSMOVAH,4CHINT21HHLTCODEENDSENDSTART21.编写程序,使用三种以上的方法,将存储器中2000H开始的地址单元中的100字节数据复制到3000H开始的存储器地址单元中。解:(1)利用通用传送指令MOVMOVSI,2000H注意这里如果是标号地址,则必须用OFFSETMOVDI,3000HMOVCX,100LP1:MOVAL,[SI]MOV[DI],ALINCSIINCDILOOPLP1HLTMOVCX,100MOVBX,0LP0:MOVAL,2000[BX]MOV3000[BX],ALINCBXLOOPLP0HLT(2)利用交换指令XCHGMOVSI,2000HMOVDI,3000HMOVCX,100LP2:MOVAL,[SI]XCHG[DI],ALINCSIINCDILOOPLP2HLT(3)利用换码指令XLATMOVBX,2000HMOVDI,3000HMOVCX,100LP3:XORAL,ALXLATMOV[DI],ALINCBXINCDILOOPLP3HLT(4)利用堆栈实现数据传送MOVSI,2000HMOVDI,3000HMOVCX,50LP4:PUSH[SI]POP[DI]INCSIINCSIINCDIINCDILOOPLP4HLT(5)利用串操作指令REPMOVSBMOVSI,2000HMOVDI,3000HMOVCX,100CLD;DF=0,SI、DI自动+1REPMOVSBHLT5.对于下面的数据定义,各条MOV指令执行后,有关寄存器的内容是什么?DA1DB?DA2DW10DUP(?)DA3DB‘ABCD’MOVAX,TYPEDA1MOVBX,SIZEDA2MOVCX,LENGTHDA3解:各条MOV指令执行后,有关寄存器的内容如下:MOVAX,TYPEDA1;(AX)=1MOVBX,SIZEDA2;(BX)=20MOVCX,LENGTHDA3;(CX)=1下段程序完成后,AH等于什么?INAL,5FHTESTAL,80HJZL1MOVAH,0JMPSTOPL1:MOVAH,0FFHSTOP:HLT如果地址为5FH的外设输入到AL中的数据的最高位=1,则(AH)=0,否则,(AH)=0FFH。设置8259的中断向量MOVAX,SEGIRQ2MOVDS,AXMOVDX,OFFSETIRQ2MOVAL,42HMOVAH,25HINT21H;8259初始化MOVAL,13H;ICW1边沿触发,单片8259,有ICW4OUT20H,ALMOVAL,40H;ICW2中断类型号基值为40HOUT21H,ALMOVAL,01H;ICW48088系统,普通EOI,;完全嵌套式OUT21H,ALMOVAL,0FDHOUT21H,AL;OCW1,设置IMR,中断屏蔽微处理器CPU:控制微处理器与存储器或I/O设备间的数据交换;进行算术和逻辑运算等操作;判定和控制程序流向。微处理器主要完成:(1)指令控制:从存储器中取指令,指令译码;(2)数据加工:简单的算术逻辑运算;(3)操作控制:在微处理器和存储器或者I/O之间传送数据;(4)时间控制:程序流向控制。存储器:用来存放数据和指令。I/O接口:主机和外设间的桥梁,提供数据缓冲驱动、信号电平转换、信息转换、地址译码、定时控制等各种功能。I/O设备:输入原始数据和程序,转换成计算机能识别的信息,送入存储器去等待处理。输出运算结果。总线:连接计算机系统中各功能部件的信息通道。13.设CS=1200H,IP=0100H,SS=5000H,SP=0400H,DS=2000H,SI=3000H,BX=0300H,(20300H)=4800H,(20302H)=00FFH,TABLE=0500H,PROG_N标号的地址为1200:0278H,PROG_F标号的地址为3400:0ABCH。说明下列每条指令执行完后,程序分别转移到何处执行?JMP指令(1)JMPPROG_N段内直接近转移,目的地址为1200H:0278H(或12278H)(2)JMPBX段内寄存器间接转移,目的地址为1200H:0300H(或12300H)(3)JMP[BX]物理地址=DS×10H+BX=2000H×10H+0300H=20300H(20300H)=4800H→IP段内存储器间接转移,目的地址为1200H:4800H(或16800H)(4)JMPFARPROG_F段间直接转移,目的地址为3400H:0ABCH(或34ABCH)(5)JMPDWORDPTR[BX]物理地址=DS×10H+BX=2000H×10H+0300H=20300H(20300H)=4800H→IP,(20302H)=00FFH→CS段间存储器间接转移,目的地址为00FFH:4800H(或057F0H)JMP改为CALL后,目的地址与JMP相同。(1)CALLPROG_N段内直接调用,3字节指令,目的地址为1200H:0278H(或12278H),0103H入栈,SP=03FEH(2)CALLBX段内寄存器间接调用,2字节指令,目的地址为1200H:0300H(或12300H),0102H入栈,SP=03FEH(3)CALL[BX]段内存储器间接调用,2字节指令,目的地址为1200H:4800H(或16800H),0102H入栈,SP=03FEH(4)CALLFARPROG_F段间直接调用,5字节指令,目的地址为3400H:0ABCH(或34ABCH),1200H和0105H分别入栈,SP=03FCH(5)CALLDWORDPTR[BX]段间间接调用,2字节指令,目的地址为00FFH:4800H(或057F0H),1200H和0102H分别入栈,SP=03FCH12.编程实现,从键盘输入一个十进制数0~9,查表求键入数字的七段代码(共阳极LED显示器的段码),存入DL中,并在键入数字之前,显示提示信息“Pleaseinputanumber(0~9):”。STACKSEGMENTSTACKDB100DUP(?)STACKENDSDATASEGMENTTABLEDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HBUFDB'Pleaseinputonenumber(0~9):',0DH,0AH,'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATASTART:PUSHDSMOVAX,DATAMOVDS,AXMOVDX,OFFSETBUFMOVAH,09HINT21HMOVAH,1INT21HANDAL,0FHMOVBX,OFFSETTABLEXLATMOVDL,ALPOPDSHLTCODEENDSENDSTART数字5的共阳极LED七段码为92H。22.在DATA开始的4个单元中存放着一个32位数,求出其中的“1”的个数,并存入COUNT单元中。解:DATASEGMENTDATA1DB0FEH,86H,7CH,35HCOUNTDB00HDATAENDSSTACKSEGMENTDB100DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:PUSHDSMOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVSI,OFFSETDATA1MOVBX,[SI]MOVDX,[SI+2]MOVCX,32XORAL,ALLP1:RCRDX,1RCRBX,1JNCLP2INCALLP2:LOOPLP1MOVCOUNT,ALPOPDSMOVAH,4CHINT21HHLTCODEENDSENDSTART10.编制两个通用过程,完成两位十六进制数转换成ASCII码,并将ASCII码字符显示。(1)两位十六进制数转换成ASCII码设两位十六进制数存放在DL中,输出的ASCII码存放在BX中。CONPROCPUSHAXPUSHCXMOVCL,4MOVAL,DLANDAL,0FHCMPAL,0AHJNCLP1ADDAL,30HJMPLP2LP1:ADDAL,37HLP2:MOVBL,ALMOVAL,DLSHRAL,CLANDAL,0FHCMPAL,0AHJNCLP3ADDAL,30HJMPLP4LP3:ADDAL,37HLP4:MOVBH,ALPOPCXPOPAXRETCONENDP四位十六进制数转换成ASCII码,设四位十六进制数存放在存储器BUF1单元中,输出的ASCII码存放在存储器BUF2开始的单元中。CONPROCPUSHAXPUSHCXPUSHDXMOVDI,OFFSETBUF2MOVSI,OFFSETBUF1MOVCL,4MOVDH,4MOVDX,[SI
本文标题:微型计算机原理与接口技术课后答案资料
链接地址:https://www.777doc.com/doc-2469890 .html