微机原理期末考试复习课案_第1页
微机原理期末考试复习课案_第2页
微机原理期末考试复习课案_第3页
微机原理期末考试复习课案_第4页
微机原理期末考试复习课案_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、统计出某数组中相邻两数之间符号变化的次数DATA SEGMENT ARRAY DB 20 DUP (?) NUM DB 0DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTARTUP:LEA SI , ARRAY; MOV AL ,SI MOV BL,0 MOV CX,19 AGAIN: INC SI XOR AL ,SI J NS NEXT INC BL NEXT: MOV AL ,SI LOOP AGAIN MOV NUM,BL MOV AH ,4CH INT 21HCODE ENDS END STARTUP2、乘法指令实现32位二进制数与16位二进制数相乘MODEL SMALL .8086 .DATA N1 DW 1234H N2 DW 5678H N3 DW 4444H M1 DW 0 M2 DW 0 M3 DW 0CODE . STARTUP MOV AX ,N2 MUL N3 MOV M3,AX MOV M2,DX MOV AX,N3 MUL N1 ADD M2,AX ADC M1,DX .EXITEND3、设有3个自变量的变量名及其内容如下:VAR1 3C46H , VAR2 F678H , VAR3 0059H设计一个数据段定义这三个变量及其地址表变量DDRTABLDATA SEGMENT VAR1 DW 3C46H VAR2 DW F678H VAR3 DW 0059H ADDRTABL DD VAR1 DD VAR2 DD VAR3 DATA ENDS 4、设有一个符号数组,共M个,求其中最大的数,如需要求绝对值最大应如何修改,如为无符号数,程序如何修改。DATA SEGMENT M EQU 10 DAT DW M DUP(?) MAX DW ? DATA ENDS CODE SEGMENTASSUME CS:CODE ,DS:DATASTARUP : MOV AX ,DAT MOV MAX ,AX CLD LEA SI ,DAT MOV CX ,M L1: LODSW CMP AX ,MAX JNG LAB MOV MAX ,AX LAB : LOOP L1 MOV AH ,4CH INT 21HCODE ENDSEND STARTUP绝对值修改:需要在LODSW插入AND AX ,AXJNS LAB1NEG AXLAB1: CMP AX ,MAX程序初始化时MAX应送入0无符号数程序修改:判别条件CMP AX ,MAX JNG LAB修改为CMP AX,MAX JBE LAB5、编制一个程序将20个字节的数组分为正数和负数组,并计算两个数组中数据的个数DATA SEGMENTDAT DB 20 DUP (?)PDAT DB 20 DUP(?)PDAT DB ?PLEN DB ?NDAT DB 20 DUP (?)NLEN DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE ,DS:DATA STARTUP:XOR BX ,BXLEA SI ,DATXOR DI,DICLDMOV CX,20LOOP0 : LODSBCMP AL,0JGE LOOP1MOV NDATBX ,ALINC BXJMP LABLOOP1: MOV PDATDI ,ALINC DILAB: DEC CXJNZ LOOP0MOV PLEN ,DIMOV NLEN,BXMOV AH,4CHINT 21HCODE ENDSEND STARTUP6、把从A开始的8个字节单元内容依次和从B开始的8个相应的字节单元内容互换。DATA SEGMENT A DB ABCDEFGH B DB DATA ENDSCODE SEGMENT ASSUME CS:CODE ,DS:DATASTART: MOV AX ,DATA MOV DS,AX LEA SI ,A LEA DI ,B MOV CX,8 LP:MOV AL ,SI XCHG AL ,DI MOV SI, AL INC SI INC DI LOOP LP MOV AH ,4CH INT 21HCODE ENDS END START7、计算BUF开始的数组中的100个元素中非零元素的个数,并将其存入COUNT单元,补全指令BUF DB 100 DUP (?)COUNT DB 0 .STARTUP: MOV AX,DATAMOV DS,AXLEA SI, (1)_MOV CX ,(2)_CON:MOV AL,SI CMP AL ,(3)_.JZ NEXTINC (4)_NEXT: INC SILOOP (5)_HLT答案:BUF 100 0 COUNT CON8、程序执行后寄存器的值:MOV AX,01HMOV BX ,02HPUSH BXPUSH AXPOP BX 执行后BX=(1)_POP AX 执行后AX=(1)_MOV AX ,3F5FH 执行后AL=(3)_MOV CX ,4ROR AL,CL 执行后AL=(4)_AND AL ,0FH 执行后AL=(5)_答案:01H 02H 5FH 0F5H 05H9、分支程序设计实验(1)显示AL中两位十六进制数程序:CODESEGMENTASSUME CS:CODESTART:MOV AL,3EHMOV BL,ALMOV DL,ALMOV CL,4SHR DL,CLCMP DL,9JBE NEXT1ADD DL,7NEXT1:ADD DL,30HMOV AH,2INT 21HMOV DL,BLAND DL,0FHCMP DL,9JBE NEXT2ADD DL,7NEXT2:ADD DL,30HMOV AH,2INT 21HMOV AH,4CHINT 21HCODEENDSEND START(2)显示键入字符CODESEGMENTASSUME CS:CODESTART:MOV AH,1INT 21HCMP AL,0DHJZ DONECMP al,0JB nextCMP AL,9JA CHRUPMOV DL,ALMOV AH,2INT 21HJMP STARTCHRUP:CMP AL,41HJB NEXTCMP AL,5AHJA CHRDNDISPC:MOV DL,CMOV AH,2INT 21HNEXT:JMP STARTCHRDN:CMP AL,61HJB NEXTCMP AL,7AHJA NEXTJMP DISPCDONE:MOV AH,4CHINT 21HCODEENDSEND START 10、实验四:偶校验程序DSEGSEGMENTSTRNDBABCDEfghijkLMNOPQuvw,$NDB?DSEGENDSCSEGSEGMENTASSUME CS:CSEG,DS:DSEGSTART:MOV AX,DSEGMOV DS,AXLEA SI,STRNMOV DL,0AGAIN:MOV AL,SICMP AL,$JE DONETEST AL,0FFHJPE NEXTOR AL,80HMOV SI,ALINC DLNEXT:INC SIJMP AGAINDONE:MOV N,DLMOV AH,4CHINT 21HCSEGENDSEND START(2)加法程序CODESEGMENTASSUME CS:CODE,DS:CODESTART:MOV AX,CSMOV DS,AXLEA SI,DAT1LEA DI,DAT2LEA BX,DAT3MOV CX,10XOR AL,ALAGAIN:MOV AL,SIADC AL,DIMOV BX,ALINC SIINC DIINC BXLOOP AGAINMOV AH,4CHINT 21HDAT1DB 70H,80H,90H,0A0H,0A1H,0A2H,0A3HDB 74H,65H,56HDAT2DB 45H,67H,89H,1AH,2BH,3CHDB 4DH,5EH,6FH,04HDAT3DB 10 DUP(?)CODE ENDSEND START12、设有两个等字长,字节型字符串,试编写一程序,比较他们是否完全相同,如相同则讲字符Y送入AL中,否则将字符N送入AL中DATA SEGMENTSTRING1 DB ASdASSTRING2 DB ASASdDATA ENSCODE SEGMENTASSUME CS:CODE,DS:DATASTARTUP:MOV AX,DATAMOV DS,AXMOV ES,AXLEA SI , STRING1LEA DI ,STRING2 MOV CX,5 REPZ CMPSB STRING1 ,STRING2 JNZ LABNE MOV AL ,Y MP EXITLABNE :MOV AL ,NEXIT : MOV AH ,4CH INT 21H CODE ENDS END STARTUP11、填空题: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、8259A A0与地址总线A1相连13、取指令时,段地址由CS寄存器提供,偏移地址由IP寄存器提供14、16位有符号二进制补码范围为-327683276715、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=,单片,边缘触发,必须设置ICW4;ICW2=48H,终端类型码基值为48H;无ICW3,单片8259A系统,无需设置ICW3;ICW4=,正常全嵌套方式,非缓冲连接,非自动中断结束,8086 CPU,初始化程序如下:MOV AL ,13HOUT 20H, ALMOV AL ,48HOUT 21H,ALMOV AL,01HOUT 21H,AL(3)请编写程序片段,设置该中断源的中断矢量MOV AX ,0MOV ES ,AXMOV DI ,4AH*4MOV AX ,OFFSET SUBROUTINECLDSTOSWMOV AX,SEG SUBROUTINESTOSW13可屏蔽中断响应和处理过程:(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) 当中断请求输入线IR0IR7中有一条或多条变高时,则中断请求寄存器IRR的相应位置“1”。(2) 若中断请求线中至少有一条是中断允许的,则8259A由INT引脚向CPU发出中断请求信号。(3) 如CPU是处于开中断状态,则在当前指令执行完后,用信号作为响应。(4) 8259A在接收到CPU的信号后,使最高优先级的ISR位置“1”,而相应的IRR位清“0”。但在该中断响应周期中,8259A并不向系统总线送任何信息。(5) CPU(8086/80

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论