微机原理与应用实验指导书

上传人:可可****22 文档编号:58961694 上传时间:2022-03-01 格式:DOCX 页数:51 大小:480.39KB
返回 下载 相关 举报
微机原理与应用实验指导书_第1页
第1页 / 共51页
微机原理与应用实验指导书_第2页
第2页 / 共51页
微机原理与应用实验指导书_第3页
第3页 / 共51页
点击查看更多>>
资源描述
第一篇汇编语言程序设计实验一汇编语言上机操作比较字符串1-1实验二循环程序设计建立学生名次表1-5实验三显示器界面设计光标轨迹程序1-8实验四键盘界面设计键盘输入程序1-10实验五算术程序设计判断闰年程序1-22第二篇微机硬件实验系统实验一简单I/O口扩展实验2-1实验二8255并行口实验2-实验三8253定时器/计数器接口实验2-实验四8250串口实验2-实验五存储器扩展实验2-实验六8259中断控制器实验2-实验七基于定时中断的实时控制综合实验2-附录1ASCII码表3-1附录2常用BIOS中断调用3-2附录3INT21HDOS系统功能调用3-5附录4PCIBIOS中断调用INT1AH3-11附录5汉字字符集表3-13附录6DEBUG主要命令3-21第一篇汇编语言实验一汇编语言上机操作比较字符串实验项目名称:比较字符串实验项目性质:普通所属课程名称:微机原理与应用实验计划学时:2一、实验目的1 、学习程序设计的基本方法和技能;2、熟练掌握汇编语言设计、编写、调试和运行;二、实验内容和要求2 、汇编语言上机操作方法编写程序,比较两个字符串STRING侪口STRING新含字符是否相同,若相同则在屏幕上显示MATCH,否则显示NOTMATCH。3 、系统操作练习三、实验主要仪器设备和材料计算机四、实验方法、步骤及结构测试1、建立ASMfc件1)在Windows系统环境下,调用写字板编辑程序,建立汇编语言ASM文件。2)在Dos系统环境下,调用EDIT编辑器建立汇编语言ASM源文件。;ProgramTitleGoesHereComparestring;Datasegment;definedatasegmentString1dbMovethecursorbackward.String2dbMovethecursorbackward.Mess1dbMatch.,13,10,$Mess1dbMatch.,13,10,$Dataends*Programsegment;definecodesegmentMainprocfarAssumecs:program,ds:data,es:dataStart:;startingexecutionaddressPushds;setupstackforreturnSubax,axPushaxMovax,data;datasegmentaddressMovds,axMOVes,ax;mainpartofprogramgoeshereLeasi,string1Leasi,string2CldMovcx,25RepzcmpsbJzMATCHLeadx,mess2JmpshortdispMatch:Leadx,mess1Disp:Movah,09;reture to DOS;end of main part of program;end of code segmentInt21hRetMainendpProgramendsEndstart;endassembly写完后保存文件名为:*.asm2、用汇编程序MASMt源文件“*asm”汇编产生目标文件*.obj。1)在Windows环境,点击mas似:件,输入*asm的文件名。2)在Dos环境,输入命令:C:masmmasm*.asm/TheIBMPersonalComputerMACROAssemblerVersion1.00(C)CopyrightIBMCorp1981WarningSevereErrorError00如汇编过程出错则在屏幕上显示出错信息。3、用连接程序Link产生可执行文件”*.exe”.1)在Windows环境,点击Link文件,输入*obj文件名。2)在Dos环境,输入命令:C:masmlink*obj/IBM5550MultistationLinker2.00(C)CopyrightIBMCorp1983Warning:NoSTACKsegmengtTherewas1arrordetected4、执行程序1)在Windows环境,点击*.exe文件运行程序。2)在Dos环境,输入命令:C:masm*exe/此时在屏幕上可显示程序的运行结果。屏幕显示:Match(或NOTMATCH)5、用DEBU阖试程序输入命令:C:masmdebug*exe/幕上显示提示符:-G/(运行命令)MATCH.PROGRAMTERMINATEDNORMALLY-U(反汇编命令),屏幕上显示程序如示U/19F3:00001E19F3:00012BC019F3:00035019F3:0004B8EE1919F3:00078ED819F3:00098EC019F3:000B8D360000 LEA8D3E1900 LEA19F3:000F19F3:0013FC19F3:0014B9190019F3:0017F319F3:0018A619F3:0019740619F3:001B19F3:001F-U19F3:002119F3:00258D163B00 LEAEB04JMP8D163200 LEAB409MOVCD21INT19F3:002719F3:0029CB19F3:002AFF7501PUSH DS SUB AX,AX PUSH AX MOV AX,19EE MOV DS,AX MOV ES,AXSI,0000 DI,1900CLDMOV CX,0019 REPZCMPSBJZ 0021DX,003B 0025DX,0032 AH,09 21RETF将断点设置在程序的主要部分运行以前,运行输入的程序为:-G0B/AX=19EEBX=0000CX=007ADX=0000SP=FFFCBP=0000SI=0000DI=0000DS=19EEES=19EESS=19EECS=19F3IP=000BNVUPDIPLZRNAPENC19F3:000B8D360000LEASI,0000DS:0000=6F4D根据其中指示的DS寄存器内容查看数据段的情况如下:-D0/19EE:00004D6F766520746865-20637572736F7220Movethecursor19EE:00106261636B77617264-2E4d6f7665207468backward.Moveth19EE:00206520637572736F72-206261636b776172ecursorbackwar19EE:0030642E4D617463682E-0d0a244E6F206D61d.Match$Noma19EE:0040746368210D0A2400-0000000000000000tch!.$19EE:00501E2BC050B8EE198E-D88EC08D3600008D.+P8N.X.619EE:00603E1900FCB91900F3-A674068D163B00EB.19.S&T;.K19EE:0070048D163200B409CD-21CBFF7501405A222.4.M!K.u.Z可用E命令修改数据区的字符串,操作如下:-E29/19EE:002962.6661.6F63.726B.7777.6161.7272.6419EE:003064.2E2E.20再次用D命令查看修改结果:-D0/19EE:00004D6F766520746865-20637572736F7220Movethecursor19EE:00106261636B77617264-2E4d6f7665207468backward.Moveth19EE:00206520637572736F72-20666F7277617264ecursorforkward19EE:00302e204D617463682E-0d0a244E6F206D61.Match$Noma19EE:0040746368210D0A2400-0000000000000000tch!.$19EE:00501E2BC050B8EE198E-D88EC08D3600008D.+P8N.X.619EE:00603E1900FCB91900F3-A674068D163B00EB.19.S&T;.K19EE:0070048D163200B409CD-21CBFF7501405A222.4.M!K.u.Z用G命令运行程序,结果为:-G/Nomatch!Programterminatednormally用Q命令退出程序:-Q/至此,程序调试完毕。(DEBU函令详见附录2)五、实验报告要求分析程序功能,汇编语言的集成环境,调试程序过程中遇到的问题。六、思考题1、汇编语言的集成环境有几个主要环节?2、将程序中的指令JZMATCHY为JNZMATCH程序结果如何?为什么?3、将内存DATA俾元开始的0-15共16个数传送到DATA2单元开始的数据区中。实验项目名称: 实验项目性质:普通 所属课程名称:微机原理与应用 实验计划学时:实验二建立学生名次表RANK建立学生名次表RANK普通微机原理与应用2一、实验目的1、学习循环程序的设计方法;2、熟练掌握程序的调试方法;二、实验内容和要求本程序采用两重循环来实现,内层对应学生的名次计算,外层解决所有学生的名次;以GRADE为首地址的10个字保存学生的成绩,RANK为地址的10个字填入学生的名次。本程序对应的寄存器分配情况说明如下:AX:存放当前被测学生的成绩;BX:存放当前被测学生的相对地址指针;CX:内循环计数值;DX:当前被测学生的名次计数值;SI:内循环测试时的地址指针;DI:外循环计数值;三、实验主要仪器设备和材料计算机一台四、实验方法、步骤及结构测试1、实验参考程序如下:;programtitlegoeshere-rank;Datasegment;definedatasegmentGratedw88,75,95,63,98,78,87,73,90,60Rankdw10dup(?)Dataends;Programsegment;definecodesegmentMainprocfarAssumecs:program,ds:dataStart:Pushds;setupstackforretureSubax,axPushaxMovax,dataMovds,axMovdi,10Movbx,0Loop1:Movax,gradebxMovdx,0Movcx,10Leasi,gradeNext:Cmpax,siJgno_countIncdxNo_count:Addsi,2LoopnextMovrankbx,dxAddbx,2DecdiJneloop1RetMainendpProgramendsEndstart2、程序框图开始3、程序执行C:debug*exe/-U19F3:0000 19F3:000119F3:0003 19F3:0004 19F3:0007 19F3:0009 19F3:000C 19F3:000F19F3:0013 19F3:0016 19F3:0019 19F3:001D 19F3:001F1E 2BC0 50 B8EE19 8ED8BF0A00 BB0000PUSH SUBPUSH MOVMOV MOVMOV8B870000 MOVBA0000 MOVB90A00 MOV 8D360000 LEA3B047F01CMPJGDSAX,AXAXAX,19F0DS,AXDI,000ABX,0000AX,BX+0000DX,0000CX,000A SI,0000 AX,SI 0022-U19F3:002142INCDX19F3:002283C602ADDSI,+0219F3:0025E2F6LOOP001D19F3:002789971400MOVBX+0014,DX19F3:002B83C302ADDBX,+0219F3:002E4FDECDI19F3:002F75DEJNZ000F19F3:0031CBRETF19F3:00325APOPDX19F3:003322C2ANDAL,DL19F3:003550PUSHAX-G09AX=19F0BX=0000CX=0062DX=0000SP=FFFCBP=0000SI=0000DI=0000DS=19F0ES=19E0SS=19F0CS=19F3IP=000BNVUPDIPLZRNAPENC19F3:0009BF0A00MOVDI,000A-D0/19F0:000058004B005F003F00-62004E0057004900X.K._.?.b.N.V.I19EE:00105A003C0000000000-0000000000000000Z.19EE:0020000000000000000000000000000000.+P8p.X?19EE:0030642E4D617463682E-0d0a244E6F206D61d.Match$Noma19EE:0040746368210D0A2400-0000000000000000tch!.$19EE:00501E2BC050B8EE198E-D88EC08D3600008D.+P8N.X.6-G31AX=003CBX=0014CX=0000DX=000ASP=FFFCBP=0000SI=0014DI=0000DS=19F0ES=19E0SS=19F0CS=19F3IP=0031NVUPDIPLZRNAPENC19F3:0031CBRETF-D019F0:000058004B005F003F00-62004E0057004900X.K._?b.N.V.I19EE:00105A003c0004000700-0200090001000600Z.ifleapPleaseinoutayear:2003Thisisnotaleapyear!C:MASM图63程序运行结果五、实验报告要求1、分析程序是如何实现判断是否为润年?2、小结汇编语言实现算术运算的方法。六、思考题1、写出实验中的判断闰年的表达公式。运算类程序设计(二)第二篇硬件部分实验一简单I/O口扩展实验项目名称:简单I/O口扩展实验项目性质:普通所属课程名称:微机原理与应用实验计划学时:21、 实验目的1、熟悉74LS273,74LS244的应用接口方法。2、掌握用锁存器、三态门扩展简单并行输入、输出口的方法。2、 实验内容和要求1、用逻辑电平开关作为74LS244的输入,用发光二极管作为74LS273的输出编写程序,使得逻辑电平开关的输入状态从发光二极管显示出来。2、实验原理图:实验主要仪器设备和材料1、EL实验箱2、计算机3、导线若干4、 实验方法、步骤及结果测试1、将74LS244的输入SI0SI7分别与逻辑电平开关电路的K1K8相连,从I/O地址片选信号CS0与U10的片选信号相连。2、将74LS273的输出SO0SO7分别与发光二极管电路的L1L8相连,从I/O地址片选信号CS1与U8片选信号相连。3、编程并运行。4、拨动开关,其变化反应到发光二极管上,当开关的状态对应发光二极管的点亮或熄灭。5、程序框图6、参考程序;Assumecs:codeCodesegmentpublicOrg100hStart:movdx,04a0hInal,dxmovdx,04b0houtdx,aljmpstartcodeendsednstart5、 实验报告要求1、画出实验原理图2、掌握输入输出接口的编程原理和方法。6、 思考题1、本程序是采用什么控制方法2、若采用查询方式编程,应如何修改程序实验二8255并行口实验实验项目名称:8255并行口实验实验项目性质:普通所属课程名称:微机原理与应用实验计划学时:21、 实验目的1 、掌握8255的编程原理;2 、掌握8255并行接口方法;2、 实验内容和要求1、8255的A口作输入口,与逻辑电平开关K1K8相连;8255的B口作为输出口,与发光二极管L1L8相连;编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。2、实验原理图三、实验主要仪器设备和材料1、EL实验箱2、计算机3、导线若干四、实验方法、步骤及结果测试1、8255的PA0PA7分别与逻辑电平开关的K1K8相连;PB0PB7分别与发光二极管电路的L1L8相连;从CS0与8255的片选端相连。2、编程并运行。3、拨动开关,观察发光二极管的变化,当开关某位合上时,对应的发光二极管点亮,断开时熄灭。4、程序框图5、参考程序Assumecs:codeCodesegmentpublicOrg100hStart:movdx,04a6hMovax,90hOutdx,axStart1:movdx,04a0hInax,dxMovdx,04a2hOutdx,axJmpstart1CodeendsEndstart五、实验报告要求1 、比较用简单I/O口与8255接口的方法有什么区别?2 、分析8255采用选通工作方式是如何实现的?六、思考题1、本实验是实现什么数据传送方式?若改用查询方式传送数据,应该如何修改程序?实验三8253定时器/计数器实验项目名称:8253定时器/计数器实验项目性质:普通所属课程名称:微机原理与应用实验计划学时:2一、实验目的1 、掌握8253定时器/计数器的编程原理;2 、掌握8253计数器的接口方法;二、实验内容和要求1、将8253计数器的0,1,2通道设置为模式3(方波方式),用示波器观察其输出波形。2、实验原理图如下:3 、8253的时钟端口CLK0、CLK1为6/16M,CLK2的时钟可以自行定义。三、实验主要仪器设备和材料1、EL实验箱2、计算机3、导线若干4、示波器四、实验方法、步骤及结果测试1、将CS0与8253的CS8253相连;2、将8253的OUT0、OUT1接示波器的信号端;3、示波器的地接实验箱的GND;4、实验源程序如下:Assumecs:codeCodesegmentpublicOgr100hStart:movdx,04a6h;8253控制端口地址Movax,36h;设置计数器0工作方式3Outdx,axMovdx,04a0h;计数器0地址Movax,24h;设初值为0F424HOutdx,axMovax,0f4hOutdx,axmovdx,04a6h;8253控制端口地址Movax,76h;设置计数器1工作方式3Outdx,axMovdx,04a2hMovax,0ahOutdx,axMovax,0hOutdx,ax1地址0AHmovMovOutdx,04a6hax,0b6hdx,ax;8253控制端口地址;设置计数器2工作方式3Movdx,04a4h;计数器2地址Movax,04h;设初值为04HOutdx,axMovax,0hOutdx,axCodeendsEndstart5、程序框图如下:五、实验报告要求1、掌握8253的内部结构,主要功能;2、分析8253计数器的计数方式?3、分析8253计数器的定时时间常数的计算方法?六、思考题1、若改用工作方式2(分频方式),计数初值为10,计数器0的输出波形怎样?2、要求定时时间为2分钟,定时系数是多少?(假设频率为6/16M)实验四8250串口实验实验项目名称:8250串口实验实验项目性质:普通所属课程名称:微机原理与应用实验计划学时:21、 实验目的1 、熟悉串行通信的原理和8250的工作原理;2、了解RS-232串行接口标准及连接方法;3、掌握8250芯片的编程方法;2、 实验内容和要求1、在PC机之间实现串行通信,上位机每下传一个字符,下位机返回一个字符。2、上下位机波特率选用9600BIT。3、上下位机均用查询方式;4 、8250的端口地址为0480H起始的偶地址单元,时钟频率为1.8432MHz;5 、上位机的端口用COM1(或COM2的端口地址2F8H)端口地址3F8H;6、实验原理图三、实验主要仪器设备和材料1、EL实验箱2、计算机四、实验方法、步骤及结果测试1、用通信电缆连接EL实验箱和PC机;2、分别编写上下位机的程序;3 、在PC机上运行T6UP.EXE程序,选择串行口(COM1/COM2);4 、在PC机上输入字符,看是否有返回,退出按回车键;5、下位机源程序:CodesegmentAssumecs:codeOrg100hStart:movbx,0480hMovdx,bxAdddx,6Movax,80hOutdx,axMovdx,bxMovax,0ch;设置波特率9600BITOutdx,ax;Adddx,2Movax,0hOutdx,ax;设置中断方式Adddx,4Movax,07Outdx,ax;设置线路控制寄存器Movdx,bxCrd:CallrecvCallsendJmpcrdRecv:Adddx,0ahRecv3:Inax,dxTestax,01hJnzrecv1Jmprecv3Recv1:Movdx,bxInax,dxRetSend:PushaxAdddx,0ahSend1:Inax,dxTestax,20hJnzrecv2Jmpsend1接收器数据是否就绪 , 就绪则转移;发送器是否空,空则转移Recv2:PopaxMovdx,bxOutdx,ax;发送数据RetCodeendsEndstart6、上位机源程序DatasegmentTt1dw0Ttt1dw0Comdw0Messag1dbpleasekeyincom(1,2):,$Messag2dbsend:,$Rcvstrdb255dup(?)Messag3dbreceive:,$DataendsCodesegmentAssumecs:code,ds:dataMainprocfarStart:PushdsSubax,axPushaxMovax,dataMovds,axMain0:Movah,0Moval,3Int10hMovah,5Moval,15Leadx,messag1Calldisp1Key1:Movah,1Int21hCmpal,31hJecom1Cmpal,32hJecom2JmpwkeyCom1:Movsi,offsetcomMovwordptrsi,03f8hJmpintcomCom2:Movsi,offsetcomMovwordptrsi,02f8hIntcom:Movsi,offsetcomMovbx,siMovdx,bxAdd,dx,3Moval,80hOutdx,axMovdx,bxMoval,0chOutdx,alIncdxMoval,0hOutdx,alAdddx,2Moval,07Outdx,alMovdx,bxIncdxMoval,0Outdx,alAdddx,4Inal,dxMovdx,bxInal,dxMovax,0a15hLeadx,messag3Calldisp1Movbh,0Movah,3Int10hMovsi,offsetttt1Movwordptrsi,dxMovax,815hLeadx,messag2Crd:Calldisp1Movah,1Int21hCmpal,0dhJeexitPushaxMovbh,0Movah,3Int10hMovsi,offsettt1Movwordptrsi,dxPopCallCallPushMovMovMovMovIntPopMovMovIntMovMovIntMovMovMovMovMovMovIntJmpExit:MovIntMainSendSrss:PushMovMovMovAddInTestJnzax sendrecvaxsi,offset ttt1 dx,si bh,0ah,2 10haxah,2 dl,al 21h bh,0 ah,3 10hsi,offset ttt1 word ptr si,dx si,offset tt1 dx,si bh,0 ah,2 10h crdah,4ch21h endp proc nearaxsi,offset com bx,si dx,bx dx,5 al,dx al,20h recv2 bxah,1 16hPushMovIntPopJzPopJmpRecv2:MovPopOutRetSret1:PopRetSendRecvMovRss:MovMovMovAddInTestJnzDecCmpJneMovJmpRecv1:bxsret1axsrssdx,bxaxdx,alaxendpprocnearcx,1000hsi,offsetcombx,sidx,bxdx,5al,dxal,01hrecv1cxcx,0rssal,0ret1Movdx,bxInal,dxRet1:RetRecvendpDisp1procnearPushdxMovdb,ahMovdl,alMovah,2Movbh,0Int10hPopdxMovah,9Int21hRetDisp1endpCodeendsEndstart6、下位机程序框图7、上位机程序框图五、实验报告要求1、串行通信信息交换的基本方法、特点、适用范围?2、分析8250申行通信的10个寄存器的功能,端口地址的分配3、画出实验原理图。六、思考题1、上下位机是如何定义通信方式?2、若要传送字符块,应如何修改程序?实验五存储器RAMK验实验项目名称:存储器RA棋验实验项目性质:普通所属课程名称:微机原理与应用实验计划学时:21、 实验目的1、掌握PC机外存扩展的方法;2、熟悉6264芯片的接口方法2、 实验内容和要求1、用两片6264实现16位数据位扩展;2、向02000至02100单元的偶地址单元送数据AAH,奇地址送数据55H;3、6264芯片的管脚线已全部接好
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 市场营销


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!