您好,欢迎访问三七文档
当前位置:首页 > 幼儿/小学教育 > 小学教育 > 微机原理期末考试复习
1、统计出某数组中相邻两数之间符号变化的次数DATASEGMENTARRAYDB20DUP(?)NUMDB0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTARTUP:LEASI,ARRAY;MOVAL,[SI]MOVBL,0MOVCX,19AGAIN:INCSIXORAL,[SI]JNSNEXTINCBLNEXT:MOVAL,[SI]LOOPAGAINMOVNUM,BLMOVAH,4CHINT21HCODEENDSENDSTARTUP2、乘法指令实现32位二进制数与16位二进制数相乘MODELSMALL.8086.DATAN1DW1234HN2DW5678HN3DW4444HM1DW0M2DW0M3DW0CODE.STARTUPMOVAX,N2MULN3MOVM3,AXMOVM2,DXMOVAX,N3MULN1ADDM2,AXADCM1,DX.EXITEND3、设有3个自变量的变量名及其内容如下:VAR13C46H,VAR2F678H,VAR30059H设计一个数据段定义这三个变量及其地址表变量DDRTABLDATASEGMENTVAR1DW3C46HVAR2DWF678HVAR3DW0059HADDRTABLDDVAR1DDVAR2DDVAR3DATAENDS4、设有一个符号数组,共M个,求其中最大的数,如需要求绝对值最大应如何修改,如为无符号数,程序如何修改。DATASEGMENTMEQU10DATDWMDUP(?)MAXDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTARUP:MOVAX,DATMOVMAX,AXCLDLEASI,DATMOVCX,ML1:LODSWCMPAX,MAXJNGLABMOVMAX,AXLAB:LOOPL1MOVAH,4CHINT21HCODEENDSENDSTARTUP绝对值修改:需要在LODSW插入ANDAX,AXJNSLAB1NEGAXLAB1:CMPAX,MAX程序初始化时MAX应送入0无符号数程序修改:判别条件CMPAX,MAXJNGLAB修改为CMPAX,MAXJBELAB5、编制一个程序将20个字节的数组分为正数和负数组,并计算两个数组中数据的个数DATASEGMENTDATDB20DUP(?)PDATDB20DUP(?)PDATDB?PLENDB?NDATDB20DUP(?)NLENDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTARTUP:XORBX,BXLEASI,DATXORDI,DICLDMOVCX,20LOOP0:LODSBCMPAL,0JGELOOP1MOVNDAT[BX],ALINCBXJMPLABLOOP1:MOVPDAT[DI],ALINCDILAB:DECCXJNZLOOP0MOVPLEN,DIMOVNLEN,BXMOVAH,4CHINT21HCODEENDSENDSTARTUP6、把从A开始的8个字节单元内容依次和从B开始的8个相应的字节单元内容互换。DATASEGMENTADB'ABCDEFGH'BDB'12345678'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEASI,ALEADI,BMOVCX,8LP:MOVAL,[SI]XCHGAL,[DI]MOV[SI],ALINCSIINCDILOOPLPMOVAH,4CHINT21HCODEENDSENDSTART7、计算BUF开始的数组中的100个元素中非零元素的个数,并将其存入COUNT单元,补全指令BUFDB100DUP(?)COUNTDB0..............STARTUP:MOVAX,DATAMOVDS,AXLEASI,(1)________MOVCX,(2)______CON:MOVAL,[SI]CMPAL,(3)_______.JZNEXTINC(4)_____NEXT:INCSILOOP(5)______HLT答案:BUF1000COUNTCON8、程序执行后寄存器的值:MOVAX,01HMOVBX,02HPUSHBXPUSHAXPOPBX执行后BX=(1)___POPAX执行后AX=(1)____MOVAX,3F5FH执行后AL=(3)______MOVCX,4RORAL,CL执行后AL=(4)____ANDAL,0FH执行后AL=(5)_______答案:01H02H5FH0F5H05H9、分支程序设计实验(1)显示AL中两位十六进制数程序:CODESEGMENTASSUMECS:CODESTART:MOVAL,3EHMOVBL,ALMOVDL,ALMOVCL,4SHRDL,CLCMPDL,9JBENEXT1ADDDL,7NEXT1:ADDDL,30HMOVAH,2INT21HMOVDL,BLANDDL,0FHCMPDL,9JBENEXT2ADDDL,7NEXT2:ADDDL,30HMOVAH,2INT21HMOVAH,4CHINT21HCODEENDSENDSTART(2)显示键入字符CODESEGMENTASSUMECS:CODESTART:MOVAH,1INT21HCMPAL,0DHJZDONECMPal,'0'JBnextCMPAL,'9'JACHRUPMOVDL,ALMOVAH,2INT21HJMPSTARTCHRUP:CMPAL,41HJBNEXTCMPAL,5AHJACHRDNDISPC:MOVDL,'C'MOVAH,2INT21HNEXT:JMPSTARTCHRDN:CMPAL,61HJBNEXTCMPAL,7AHJANEXTJMPDISPCDONE:MOVAH,4CHINT21HCODEENDSENDSTART10、实验四:偶校验程序DSEGSEGMENTSTRNDB'ABCDEfghijkLMNOPQuvw','$'NDB?DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOVDS,AXLEASI,STRNMOVDL,0AGAIN:MOVAL,[SI]CMPAL,'$'JEDONETESTAL,0FFHJPENEXTORAL,80HMOV[SI],ALINCDLNEXT:INCSIJMPAGAINDONE:MOVN,DLMOVAH,4CHINT21HCSEGENDSENDSTART(2)加法程序CODESEGMENTASSUMECS:CODE,DS:CODESTART:MOVAX,CSMOVDS,AXLEASI,DAT1LEADI,DAT2LEABX,DAT3MOVCX,10XORAL,ALAGAIN:MOVAL,[SI]ADCAL,[DI]MOV[BX],ALINCSIINCDIINCBXLOOPAGAINMOVAH,4CHINT21HDAT1DB70H,80H,90H,0A0H,0A1H,0A2H,0A3HDB74H,65H,56HDAT2DB45H,67H,89H,1AH,2BH,3CHDB4DH,5EH,6FH,04HDAT3DB10DUP(?)CODEENDSENDSTART12、设有两个等字长,字节型字符串,试编写一程序,比较他们是否完全相同,如相同则讲字符Y送入AL中,否则将字符N送入AL中DATASEGMENTSTRING1DB'ASdAS'STRING2DB'ASASd'DATAENSCODESEGMENTASSUMECS:CODE,DS:DATASTARTUP:MOVAX,DATAMOVDS,AXMOVES,AXLEASI,STRING1LEADI,STRING2MOVCX,5REPZCMPSBSTRING1,STRING2JNZLABNEMOVAL,'Y'MPEXITLABNE:MOVAL,'N'EXIT:MOVAH,4CHINT21HCODEENDSENDSTARTUP11、填空题:1、输入输出指令间接寻址必须通过DX寄存器2、20根地址线最大内存容量是2203、标志寄存器有9位标志位,其中3位控制标志位,6位状态标志位4、BIU和EU两个单元并行工作在CPU中5、SP和BP是指针寄存器,SP指示堆栈段段顶的偏移地址6、零标志位ZF=1时,结果全为07、对于5片8259A形成的级联共有36级中断8、debug跟踪执行命令是t命令9、中断矢量表存放在存储器最低位10、存储器是分段的,每段最大长度是64KB11、段内偏移地址从0000到FFFFH12、8259AA0与地址总线A1相连13、取指令时,段地址由CS寄存器提供,偏移地址由IP寄存器提供14、16位有符号二进制补码范围为-32768~3276715、8086可访问偶数存储体的选择信号是A016、中断矢量表可以容纳256个中断向量,每个中断向量有4个字节17、DOS功能调用功能号在AH寄存器里面18、条件转移指令多路分支,输入5路分支需要3条件转移指令8、大题:若8086系统中采用单片8259A作为外部可屏蔽中断的优先级管理,正常全嵌套方式,边缘触发,非缓冲连接,非自动终端结束,端口地址为20H和21H,其中,某中断源的中断类型码为4AH,其中断服务子程序名为SUBROUTINE,且已知其地址为2000.3A40H(1)请问本题中的中断源应与8259A的哪个IR输入端相连?其中断矢量地址是多少,矢量区对应的4个单元内容是什么?答:与IR2相连,地址为0000.0128H,矢量对应的4个单元内容依次为40H,3AH,00H,20H(2)请为8259A设置正确的初始化命令,并编写程序:ICW1=00010011,单片,边缘触发,必须设置ICW4;ICW2=48H,终端类型码基值为48H;无ICW3,单片8259A系统,无需设置ICW3;ICW4=00000001,正常全嵌套方式,非缓冲连接,非自动中断结束,8086CPU,初始化程序如下:MOVAL,13HOUT20H,ALMOVAL,48HOUT21H,ALMOVAL,01HOUT21H,AL(3)请编写程序片段,设置该中断源的中断矢量MOVAX,0MOVES,AXMOVDI,4AH*4MOVAX,OFFSETSUBROUTINECLDSTOSWMOVAX,SEGSUBROUTINESTOSW13可屏蔽中断响应和处理过程:(1)中断允许标志IF置1,没有异常,没有非屏蔽中断NMI=0,没有总线请求,CPU响应可屏蔽中断请求;(2)外部设备向8259A发出中断请求信号,经过8259A处理后得到相应的中断矢量号,并同时向CPU申请中断INT=1(3)如果指令不是HLT或者WAIT,则CPU执行完当前指令后便向8259A发出中断信号INTA=0,表明CPU响应该可屏蔽中断请求若指令是HLT,则中断请求信号INTR的产生使处理器退出暂停状态,响应中断,进入中断处理程序若指令是WAIT。且TSET引脚加入低电平信号,则中断请求信号INTR产生后,使处理器脱离等待状态,进入中断处理程序处理过程包括四部分:保护现场、中断服务程序、恢复现场、中断返回。14,8259A的中断处理过程:(1)当中断请求输入线IR0~IR7中有一条或多条变高时,则中断请求寄存器IRR的相应位置“1”。(2)若中断请求线中至少有一条是中断允许的,则8259A由INT引脚向CPU发出中断请求信号。(3)如CPU是处于开中断状态,则在当前指令执行完后,用信号作为响应。(4)8259A在接收到CPU的信号后,使最高优先级的ISR位置“1”,而相应的IRR位清“0”。但在该中断响应周期中,8259A并不向系统总线送任何信息。(5)CPU(8086/8088和80X86)输出第二个信号,启动第二个中断响应周期。在此周期中,8259A向数据总线输送一个8位的中断类型号(也叫指针或向量号);CPU读取此类型号后将它乘以4(左移2位),即可从中断服务程序向量表(即入口地址表)中取出中断服务程序的入口地址,包
本文标题:微机原理期末考试复习
链接地址:https://www.777doc.com/doc-2435681 .html