




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机实验答案实验三 统计学生成绩设有20个学生成绩分别56、78、67、40、87、99、63、51、74、100,90,80,68、88、55、66、84、96、45、73分。编写程序实现统计低于60分、60-69分、70-79分、80-89分、90-99分及100分的人数,并分别存放在s5、s6、s7、s8、s9、s10单元中。实验代码如下:datasegmentscore db 56,78,67,40,87,99,63,51,74,100,90,80,68,88,55,66,84,96,45,73s5 db 0s6 db 0s7 db 0s8 db 0s9 db 0s10 db 0data endscode segmentassume cs: code, ds: data start:mov ax,data mov ds,ax mov si,0 mov cx,20 lop1: cmp scoresi,60 jb step1 cmp scoresi,70 jb step2 cmp scoresi,80 jb step3 cmp scoresi,90 jb step4 cmp scoresi,100 jb step5 inc s10 jmp exit step1:inc s5 jmp exit step2:inc s6 jmp exit step3:inc s7 jmp exit step4:inc s8 jmp exit step5:inc s9 exit:inc si loop lop1 mov al,s6 ; 显示s6,可用s5,s7,s8等替换(实验要求之思考题三) add al,48 mov dl,almov ah,02int 21hmov ah,4chint 21h实验四 查找字符实验内容试编写一个有主程序和子程序结构的程序模块。主程序:要求从键盘接收一串字符并存于字节数组TABLE中,显示字符CHAR出现的次数。子程序:在以TABLE为首地址的字节数组中查找CHAR,统计出现的次数。实验代码如下:data segmenttable db 100 dup($)str1 db please enter a string which is less than 100 and end with enter button:$str2 db times that char appear is:$n dw ?data endsstack segment stack stack db 100 dup($)stack endscode segmentassume cs: code, ds: data start:mov ax,datamov ds,ax lea dx,str1 mov ah,9 int 21h ;输出 str1call func1 ;回车,换行 mov si,0 mov cx,100lop1: mov ah,1 int 21hcmp al,0dhjz exit mov tablesi,al inc si loop lop1 ;从键盘输入 exit: mov n,si call func2 ;计算 char 出现的次数call func1 ;回车,换行 lea dx,str2 mov ah,9 int 21h ;输出 str2call func1 ;回车,换行 mov al,bl add al,30h mov dl,al mov ah,2 int 21h ;输出 bxmov ah,4chint 21h func1 proc nearpush dxpush axmov dl,0ahmov ah,2int 21hmov dl,0dhmov ah,2 int 21h pop axpop dxret func1 endp ;输出回车,换行 func2 proc near push si push cxpush axmov cx,simov ax,sisub ax,3 ;此处为何减3,下面会有解释 lea si,table mov bx,0 lop2: cmp byte ptr si,c jnz exit1 ;判断完c后加1再循环,而h,a,r则不然 inc si cmp byte ptr si,h jnz exit2 inc si cmp byte ptr si,a jnz exit2 inc si cmp byte ptr si,r jnz exit2 inc bx exit1:inc si exit2:cmp si,ax loopnz lop2pop ax pop cx pop si ret func2 endp code endsend start实验六 定时计数器实验实验代码如下:.model small.386code segmentassume cs: code start:mov ax,datamov ds,ax mov dx,203h mov al,00110110b out dx,al mov dx,200h mov ax,0h ; 0h 减1后得到FFH,从而满足题目要求 out dx,al mov al,ah out dx,al ; mov dx,203h mov al,01110110b out dx,al mov dx,201h mov ax,fh out dx,al mov al,ah out dx,almov ah,4chint 21h code endsend start实验七 中断控制器实验实验相关知识简介:实验内容1、单中断,使用单脉冲电路产生脉冲信号作为8259中断请求输入,每按一次单脉冲按键,触发一次中断,使LED灯向左移一位,显示到最左端后再从最右端开始开始,循环显示。2、单中断:使用单脉冲电路产生的脉冲信号作为386EX模块8259中断请求输入,每按一次单脉冲按键,触发一次中断,使7段数码管显示的“5”字左移一位,显示到最左端后再从最右端开始显示,如此重复。实验1代码:.Model Small.386CODE SEGMENT ASSUME CS:CODESTART:IN AL,21HAND AL,0DFH ; 开通IR5中断通道 OUT 21H,AL CLI MOV AX,00H MOV DS,AX MOV SI,4*35H MOV AX,OFFSET INTP MOV SI,AX ; 设置中断向量,将intp的偏移地址赋给si ADD SI,2 MOV AX,SEG INTP MOV SI,AX ; si+2后将段地址赋给si MOV DX,203H MOV AL,10000011B ; 设置方式字 OUT DX,AL MOV BL,1 ;设置bl的值,用于以后循环亮灯STEP:STI HLT ; 等待中断信号,接到中断信号后重复该步骤 JMP STEPINTP PROC NEAR CLIPUSH AXPUSH DX MOV AL,BL MOV DX,200H ; 输出LED亮灯信号 OUT DX,AL ROL BL,1 ; 循环左移,控制亮灯信号 MOV AL,20H OUT 20H,AL ; 中断结束命令POP DXPOP AX STI IRET INTP ENDPCODE ENDS END START实验2代码:.Model Small.386CODE SEGMENT ASSUME CS:CODESTART:IN AL,21HAND AL,0DFH ; 开通IR5中断通道 OUT 21H,AL CLI MOV AX,00H MOV DS,AX MOV SI,4*35H MOV AX,OFFSET INTP ; 设置中断向量,将INTP的偏移地址赋给SI MOV SI,AX ; SI+2后,将INTP的段地址赋给SI ADD SI,2 MOV AX,SEG INTP MOV SI,AX MOV DX,203H MOV AL,10000011B ; 设置方式字 OUT DX,AL MOV BL,1 ; 给bl赋值,用以控制各数码管的亮暗STEP:STI HLT ; 等待中断信号,接到中断信号后重复该步骤 JMP STEPINTPPROC NEAR PUSH AX PUSH DX CLI MOV DX,200H MOV AL,6DH ; 使数码管显示数字“5” OUT DX,AL MOV DX,201H MOV AL,BL ; 使对应bl的数码管亮,其余暗 OUT DX,AL ROL AL,1 ; 循环左移一位 CMP AL,01000000B JNZ STEP1 ; 若循环到第七位,则赋值1,重新从最右端开始 MOV AL,1 ; 显示,并将al值赋给bl,避免丢失STEP1:MOV BL,AL MOV AL,20H OUT 20H,AL ; 中断结束命令 POP DX POP AX STI IRET INTP ENDPCODE ENDS END START【参考实验流程图】三、实验代码1、完成指导手册要求实验十二8位A/D转换实验(中断方式)实验内容从ADC0809通道0输入+5V可变电压,使用中断方式采集数据,并将转换数据在7段数码管上以16进制数显示。实验代码如下:.Model small.386DATA SEGMENTLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H,77H,7CH,39H,5EH,79H,71H DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DX,AX CLI MOV AX,00H MOV ES,AX MOV DI,4*35H MOV AX,OFFSET INTP MOV DI,AX MOV AX,SEG INTP MOV DI+2,AX STI IN AL,21H AND AL,11011111B ;开放MIR5通道 OUT 21H,ALSTEP:MOV DX,200H MOV AL,0 ;启动转化 OUT DX,ALMOV CX,0;用于选择显示高位还是低位 STI HLT;等待中断 JMP STEP MOV AH,4CH INT 21HINTP PROC FAR PUSH AX PUSH DX CLI MOV DX,201H ;读数据 IN AL,DX MOV BL,AL ;将AL数值储存在BL里 AND CX,1 ;取cx的最低位,若为0则显示低四位,为1则显示高四位 JNZ STEP2 AND AL,00001111B MOV AH,0 ;屏蔽AL高4位,并将AX(数值上等于偏移量)赋给DI MOV DI,AX MOV DX,210H MOV AL,LEDDI ;设置低位要显示的数字 OUT DX,AL MOV DX,211H MOV AL,04H ;设置显示位置 OUT DX,AL DEC CX; 将CX减1,使CX最低位改变为1,故可使下次终端显示高4位 JMP EXIT STEP2: MOV AL,BLPUSH CXMOV CL,4 ;将AL高4位移到低4位 ROL AL,CL POP CX AND AL,00001111H ;屏蔽AL高4位 MOV AH,0 MOV DI,AX MOV DX,210H ;设置低位要显示的数字 MOV AL,LEDDI OUT DX,AL MOV DX,211H MOV AL,08H ;设置显示位置 OUT DX,AL DEC CX ; 将CX减1,使CX最低位改变为0,故可使下次终端显示低4位EXIT:MOV AL,65H ;IR5中断结束 OUT 20H,AL POP DX POP AX STI IRET INTP ENDPCODE ENDS END START 实验十五DMA读操作实验利用8237DMA的0通道实验MEMI/O的传送。将2000H:0000H2000H:0007H共8个数据01H,02H,04H,08H,10H,20H,40H,80H通过DMA方式一次传送,并在8个led中显示对应状态。DMA请求使用单脉冲长生,led与8255的PA口连接,DMA传送时,通过8255的传输端口控制led的亮与灭。说明:8255的DMA_EN的作用是为了在DMA响应期间,使能8255,并禁止A1A0译码,使其A1A0=00,因此,DMA传送期间传送的数据会固定送往PA端口,此时的8255PA口当做8为锁存器使用。实验代码如下:.Model small.386DATA SEGMENT LED DB 01H,02H,04H,08H,10H,20H,40H,80H DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART : MOV AX,DATAMOV DS,AXMOV CX,8H ;设置往内存单元赋值次数MOV AX,2000H MOV ES,AX ;设置要存入数值的内存起始地址为2000H:0000HMOV DI,0LEA SI,LED ; 将变量起始地址赋给siSTEP:MOV AL,SIMOV ES:DI,ALINC DI ;传送8个数据到2000:0000H单元INC SILOOP STEP MOV AL,10000000BMOV DX,213H ;设置8255 A端口1方式输出OUT DX,AL MOV AL,00000100BMOV DX,208H ;禁止82C37A工作OUT DX,AL MOV DX,20CH OUT DX,AL ;清先/后触发器MOV AX,0 ;写入基地址MOV DX,200HOUT DX,AL ;写低位地址到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年制造业生产经理面试模拟题详解及技巧
- 2025年中级注册安全工程师之历年真题及答案解析
- 2025年高级平面设计师面试题与解析
- 2025年医疗卫生行业管理标准实施能力测试模拟题及答案详解
- 2025年计算机软件技术中级考试预测题库及答案详解
- 2025年软件测试工程师培训手册模拟题与答案详解
- 2025年产品研发经理高级面试题答案及经验
- 2025年高中物理竞赛培训技巧与模拟题详解
- 2025年汽车制造行业质量工程师招聘面试模拟题集及解析
- 2025年初级软件开发工程师面试指南及题库
- 2025年职业技能鉴定考试(脱硫值班员·中级/四级)历年参考题库含答案详解(5套)
- 公钥可搜索加密协议:设计原理、安全分析与前沿探索
- 2025年体彩代销者考试题库
- 2025至2030聚乙烯醇缩丁醛(PVB)树脂行业发展趋势分析与未来投资战略咨询研究报告
- 2025年小学语文教师考试题库含答案
- 2025中国医药集团有限公司二级子公司及重点三级子公司高管岗位选聘笔试历年参考题库附带答案详解
- 船舶安全教育培训内容
- 人工动静脉瘘闭塞查房
- 2025年贵州省中考数学试卷及答案
- 学堂在线 积极心理学(上)厚德载物篇 章节测试答案
- 胖东来运营经理培训课件
评论
0/150
提交评论