西电微机原理实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

.;..微机系统实验报告班级:031214学号:03121370姓名:孔玲玲地点:E-II-312时间:第二批.;..实验一汇编语言编程实验一、实验目的(1)掌握汇编语言的编程方法(2)掌握DOS功能调用的使用方法(3)掌握汇编语言程序的调试运行过程二、实验设备PC机一台。三、实验内容(1)将指定数据区的字符串数据以ASCII码形式显示在屏幕上,并通过DOS功能调用完成必要提示信息的显示。(2)在屏幕上显示自己的学号姓名信息。(3)循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的ASCII码,直到输入“Q”或“q”时结束。(4)自主设计输入显示信息,完成编程与调试,演示实验结果。考核方式:完成实验内容(1)(2)(3)通过,完成实验内容(4)优秀。实验中使用的DOS功能调用:INT21H表3-1-1显示实验中可使用DOS功能调用AH值功能调用参数结果1键盘输入并回显AL=输出字符2显示单个字符(带Ctrl+Break检查)DL=输出字符光标在字符后面6显示单个字符(无Ctrl+Break检查)DL=输出字符光标在字符后面8从键盘上读一个字符AL=字符的ASCII码9显示字符串DS:DX=串地址,‘$’为结束字符光标跟在串后面4CH返回DOS系统AL=返回码.;..四、实验步骤(1)运行QTHPCI软件,根据实验内容编写程序,参考程序流程如图3-1-1所示。(2)使用“项目”菜单中的“编译”或“编译连接”命令对实验程序进行编译、连接。(3)“调试”菜单中的“进行调试”命令进入Debug调试,观察调试过程中数据传输指令执行后各寄存器及数据区的内容。按F9连续运行。(4)更改数据区的数据,考察程序的正确性。五、实验程序DATASEGMENTBUFFERDB'03121370konglingling:',0AH,0DH,'$'BUFFER2DB'aAbBcC','$'BUFFER3DB0AH,0DH,'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXmovah,09hmovDX,OFFSETBUFFERint21h.;..MOVSI,OFFSETBUFFER2lab1:cmpBYTEPTR[SI],'$'jelab2MOVAL,DS:[SI]ANDAL,0F0H;取高4位MOVCL,4SHRAL,CLCMPAL,0AH;是否是A以上的数JBC2ADDAL,07HC2:ADDAL,30HMOVDL,AL;showcharacterMOVAH,02HINT21HMOVAL,DS:[SI]ANDAL,0FH;取低4位CMPAL,0AHJBC3ADDAL,07HC3:ADDAL,30HMOVDL,AL;showcharacterMOVAH,02HINT21HaddSI,1jmplab1lab2:movah,09hmovDX,OFFSETBUFFER3int21hmovah,01hint21hcmpal,'q'jelab3movBL,ALANDAL,0F0H;取高4位MOVCL,4SHRAL,CLCMPAL,0AH;是否是A以上的数JBC4ADDAL,07HC4:ADDAL,30H.;..MOVDL,AL;showcharacterMOVAH,02HINT21HMOVAL,BLANDAL,0FH;取低4位CMPAL,0AHJBC5ADDAL,07HC5:ADDAL,30HMOVDL,AL;showcharacterMOVAH,02HINT21Hjmplab2lab3:movah,4chint21hCODEENDSendSTART六、实验结果.;..实验二数码转换实验一、实验目的(1)掌握不同进制数及编码相互转换的程序设计方法。(2)掌握运算类指令编程及调试方法。(3)掌握循环程序的设计方法。二、实验设备PC机一台。三、实验内容及说明(1)重复从键盘输入不超过5位的十进制数,按回车键结束输入;(2)将该十进制数转换成二进制数;结果以2进制数的形式显示在屏幕上;(3)如果输入非数字字符,则报告出错信息,重新输入;(4)直到输入“Q”或‘q’时程序运行结束。(5)键盘输入一字符串,以空格结束,统计其中数字字符的个数,并在屏幕显示。考核方式:完成实验内容(1)(2)(3)(4)通过,完成实验内容(5)优秀。转换过程参考流程如图3-2-2所示。十进制数可以表示为:Dn*10n+Dn-1*10n-1+…+D0*100=Di*10i其中Di代表十进制数1、2、3、…、9、0。上式可以转换为:Di*10i=(((Dn*10+Dn-1)*10+Dn-2)*10+…+D1)*10+D0由上式可归纳出十进制数转换为二进制数的方法:从二进制数的最高位Dn开始做乘10.;..加次位的操作。依此类推,则可求出二进制数结果。表3-3-1数码转换对应关系十六进制BCD码二进制机器码ASCII码七段码共阳共阴00000000030H40H3FH10001000131H79H06H20010001032H24H5BH30011001133H30H4FH40100010034H19H66H50101010135H12H6DH60110011036H02H7DH70111011137H78H07H81000100038H00H7FH91001100139H18H67HA10141H08H77HB101142H03H7CHC110043H46H39HD110144H21H5EHE111045H06H79HF111146H0EH71H.;..四、实验程序;PAGE60,132;本实验将输入的ASCII码转换为二进制,要求输入位数小于5DATASEGMENTMESDB0AH,0DH,'TheAsciicodeofDecimalcodeare:$'MSG1DB0AH,0DH,0AH,0DH,0AH,0DH,'PleaseInput(Exit:q/Q):$'MSG2DB0AH,0DH,'Input:$'MSG3DB0AH,0DH,'InputError,Pleaseinputagain!',0AH,0DH,'$'.;..;BINDB2DUP(0)BUFDB30H,30H,30H,31H,35HDB10HDUP(0)NDW0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVDI,OFFSETBUFCLCMOVDX,OFFSETMSG1MOVAH,09H;显示字符串INT21HMOVDX,OFFSETMSG2MOVAH,09HINT21HA1:MOVAH,01H;接收键盘输入INT21HCMPAL,'Q'JZEXITCMPAL,'q'JZEXITCMPAL,39HJAERRORINCNSTOSB;将输入数据存放在BUF缓冲区中CMPAL,13JNEA1MOVCX,NDECCXMOVBX,000AHMOVSI,OFFSETBUF.;..MOVAH,0MOVDX,0LODSBCMPCX,1JEA3SUBAL,30H;将BUF中数据转换为二——十进制数DECCXA2:IMULBXMOVDX,AXLODSBMOVAH,0A3:SUBAL,30HADDAX,DXLOOPA2MOV[SI],AXMOVDX,OFFSETMESMOVAH,09HINT21HINCSI;显示高字节CALLSHOWDECSI;显示低字节CALLSHOWMOVN,0LOOPSTARTSHOWPROCNEARMOVAL,DS:[SI]ANDAL,0F0H;取高4位MOVCL,4SHRAL,CLCMPAL,0AH;是否是A以上的数JBC2ADDAL,07HC2:ADDAL,30HMOVDL,AL;showcharacterMOVAH,06HINT21HMOVAL,DS:[SI]ANDAL,0FH;取低4位CMPAL,0AHJBC3.;..ADDAL,07HC3:ADDAL,30HMOVDL,AL;showcharacterMOVAH,06HINT21HRETSHOWENDPEXIT:MOVAX,4C00HINT21HERROR:MOVDX,OFFSETMSG3MOVAH,09HINT21HJMPSTARTCODEENDSENDSTART五、实验结果.;..实验三基本IO口扩展实验一、实验目的了解TTL芯片扩展简单I/O口的方法,掌握数据输入输出程序编制的方法。二、实验内容说明74LS244是一种三态输出的8总线缓冲驱动器,无锁存功能,当G为低电平时,Ai信号传送到Yi,当为高电平时,Yi处于禁止高阻状态。其引脚图如下:.;..74LS273是一种带清除功能的8D触发器,1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。其引脚图如下:本实验要求用74LS244作为输入口,读取开关状态,并将此状态通过74LS273连接到发光二极管显示。具体实验内容如下:(1)当开关Yi为低电平时对应的发光二极管点亮,Yi为高电平时对应的发光二极管灭。(2)当开关Yi全为高电平时,发光二极管Qi从左至右轮流点亮。(3)当开关Yi全为低电平时,发光二极管Qi从右至左轮流点亮。(4)自主设计控制及显示模式,完成编程调试,演示实验结果。编程方法见IO(样例程序).txt.(在编译环境下程序名后缀为.asm且不能含有汉字)考核方式:完成实验内容(1)(2)(3)通过。.;..完成实验内容(4)优秀三、实验原理图图3-2-174LS244与74LS273扩展I/O口原理图实验连线图:图3-2-2扩展I/O口连线图四、实验步骤(1)实验连线:.;..244的CS——ISA总线接口模块的0000H,Y7—Y0——开关K1—K8。273的CS——ISA总线接口模块的0020H,Q7—Q0——发光二极管L1—L8。该模块的WR、RD分别连到ISA总线接口模块的IOWR、IORD。该模块的数据(AD0~AD7)连到ISA总线接口模块的数据(LD0~LD7)。(2)编写实验程序,编译链接,运行程序(3)拨动开关,观察发光二极管的变化。五、实验程序1、笨方法实现(主要代码):START:MOVAX,MY_DATAMOVDS,AXMOVAX,MY_STACKMOVSS,AXLOP:MOVDX,0DF00HINAL,DXCMPAL,00HJEC0CMPAL,0FFHJEC3;JEEXITMOVDX,0DF20HOUTDX,ALJMPLOPC0:MOVAL,0FEHJMPC1C3:MOVAL,07FHJMPC2C1:;ROLAL,1;MOVDX,0DF20H;OUTDX,AL;CALLDELAY;CALLBREAK;JEC1;CMPAL,0FEH;JEEXIT;JMPC1;MOVAL,0FCHMOVDX,0DF20HOUTDX,AL.;..CALLDELAYCALLBREAKMOVAL,0FDHMOVDX,0DF20HOUTDX,ALCALLDELAYCALLBREAKMOVAL,0FBHMOVDX,0DF20HOUTDX,ALCALLDELAYCALLBREAKMOVAL,0F7HMOVDX,0DF20HOUTDX,ALCALLDELAYCALLBREAKMOVAL,0EFHMOVDX,0DF20HOUTDX,ALCALLDELAYCALLBREAKMOVAL,0DFHMOVDX,0DF20HOUTDX,ALCALLDELAYCALLBREAKMOVAL,0BFHMOVDX,0DF20HOUTDX,ALCALLDELAYCALLBREAKMOVAL,07FHMOVDX,0DF20HOUTDX,ALCALLDELAYCALLBREAK.;..MOVAL,0FFHMOVDX,0DF20HOUTDX,ALCALLDELAYCALLBREAKCALLDELAYCALLBREAKJMPLOP;CALLDELAY;CALLBREAKINAL

1 / 29
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功