微机原理实验指导书新版教学文稿.doc
Good is good, but better carries it.精益求精,善益求善。微机原理实验指导书新版-微机原理与接口技术实验指导书主编:王青岳陈超波张晓倩许韫韬西安工业大学电信学院软件实验部分11汇编基本原理21.1程序,可直接运行的程序,汇编源程序,汇编21.2CPU取指令、执行指令的过程32汇编工具MASM5.0使用方法32.1汇编源程序文件的建立方法32.2编译阶段52.3链接阶段62.4程序调试阶段73软件实验项目9软件实验一清零实验9软件实验二码制转换实验11软件实验三数据区移动实验13软件实验四冒泡法排序实验16软件实验五存储器校验实验18软件实验六实时时钟显示实验19硬件实验部分211微机实验系统简介222实验系统上位机软件使用方法232.1软件启动232.2如何使用星研集成环境软件233硬件实验项目32硬件实验一8255PA口控制PB口实验32硬件实验二8255控制交通灯实验34硬件实验三74HC138译码器实验37硬件实验四8253方波实验39硬件实验五8259A中断控制器实验41硬件实验六8250可编程通信实验(与微机)44硬件实验七简易电子琴实验49硬件实验八LED8*8点阵实验58-软件实验部分1汇编基本原理1.1程序,可直接运行的程序,汇编源程序,汇编程序程序以文件的形式存在,它是由若干条“指令”顺序排列存储构成的。指令是对符合CPU指令集的所有信息的统称,“指令”在程序中以两种形式存在,一种是以“指令代码”的形式(在可直接运行的程序文件中),另一种是以“助记符”的形式(在汇编源程序文件中)。无论“可直接运行的程序”还是“汇编源程序”,其中的指令都是以顺序排列的方式存储的,只是指令存在的方式不同。可直接运行的程序当程序中的指令是以可执行的“指令代码”的形式存在时,该程序即为可直接运行的程序,该程序所在的文件即为“可执行程序文件”。“直接运行”是指该程序中的指令代码可以被CPU直接执行。汇编源程序当程序中的指令是以“助记符”的形式存在时,该程序即为汇编源程序。该程序所在的文件即为“汇编源程序文件”。汇编每一条指令助记符都一一对应着一条指令代码。将以助记符形式存储的汇编源程序文件翻译成以指令代码形式存储的可执行程序文件的过程叫汇编。其逆过程叫反汇编。换言之,以图1所示为例,经过汇编过程后,汇编源程序文件(*.asm)中以顺序排列方式存储着的所有指令助记符1到指令助记符n,都一一对应的转换成了可执行程序文件(*.exe)中的指令代码1到指令代码n。图11.2CPU取指令、执行指令的过程如图1所示,CPU取指、执行指令的的过程如下1) CPU中程序计数器PC所指向的地址即为将要取出的指令代码所在的地址;2) PC指向地址后,经读信号有效,该地址中存放的指令代码通过数据总线传送到CPU内部指令寄存器IR中,此时CPU只是取出该指令的二进制代码,尚不知道该二进制代码的具体含义;3) CPU内部的指令译码器ID对IR寄存器中的二进制代码进行译码,经比对其内部的指令集后,CPU即可知道IR中二进制代码的具体指令代码含义;4) 知道指令代码的具体含义后,IR中的指令将被执行。2汇编工具MASM5.0使用方法MASM5.0宏汇编程序用于DOS环境下。这里我们主要使用它的MASM.exe编译工具和LINK.exe链接工具。如前所述,汇编是将助记符书写的源程序文件翻译为二进制指令代码的可执行文件的过程。在MASM5.0工具,实际的汇编过程分为两个阶段,编译阶段和链接阶段。图22.1汇编源程序文件的建立方法可以使用任何一个文本编辑软件来建立汇编源程序文件。如在windows环境下可以使用其“记事本”工具,在DOS环境下可以使用工具等。需要注意的是,建立的汇编源程序文件必须以.asm为扩展名,由于DOS不支持中文和长文件名系统,因此*.asm的文件名部分不可以采用中文输入法输入文件名,常见的可以采用英文、数字或下划线等,并且字符的长度不可以超过8个(最多可以是8个)。例如“12345678.asm”和“abc_1.asm”都是合法的,而“123456789.asm”及“汇编.asm”都是非法文件名,不能被masm5.0的编译工具识别。此外,存盘路径也不可以出现中文或长字符。实例:在windows操作系统点“开始”菜单“运行”栏,在其中输入cmd,回车,进入模拟DOS环境。如图3所示。MASM5.0工具通常安装在实验室电脑的D:或者E:根目录下。在模拟DOS环境中敲入D:或者E:,进入相应盘的根目录。然后敲edit回车,进入文本编辑环境。如图4所示。图3图4在edit编译器中,输入源程序,点击“file”菜单的“saveas”“另存为”选项,选择存盘路径为D:或者E:(根据masm5.0所在的路径选择),在FileName栏中输入汇编源程序文件名abc.asm,点击“ok”即建立汇编源程序文件成功。如图5所示。图52.2编译阶段如图2所示,建立好汇编源程序后,需要使用masm.exe工具进行编译,编译的目的是为了得到*.obj的目标代码文件,该文件是纯二进制代码文件,不能直接显示在屏幕上。经链接后才能得到可执行文件*.exe。在编译阶段中,masm.exe工具将对源程序的语法进行检验,如果发现错误将给予提示。错误提示分为严重错误和警告错误两种。严重错误指示某些指令存在语法错误,不能形成对应的二进制机器指令。而警告错误指示某些指令含义不够明确,需要提醒程序员注意。程序员可以根据提示对源程序进行修改,直到得到正确的结果为止。在汇编过程中还会产生列表文件和交叉引用文件。列表文件的后缀为.LST,主要用于给出源程序和机器代码程序的清单,其中包含了源程序中各语句及其对应的目标代码,各语句的偏移量等相关信息,对调试程序有帮助,以供检查程序使用。交叉索引文件的后缀为.CRF,它是一个为源程序所引用的各种符号进行前后对照的文件,主要用于给出不同程序段中互相引用的全部符号列表。初学者可以不用建立。举例:在以上步骤建立abc.asm源程序文件后,对源文件进行编译。键入“masmabc.asm”回车,如没有语法错误,则生成目标文件,如图6所示。图6若有错误,则提示错误所在的行号及错误类型,回到源程序中重新改正相应错误处存盘,重复编译过程,直到没有错误才可以得到.obj的目标文件。如图7所示图72.3链接阶段在汇编过程中形成了目标文件(.OBJ),但是在该文件中,只是将源程序的操作码部分变成了机器码,而地址操作数还是可浮动的相对地址,不是实际地址,浮动地址需要再定位。只有经过链接过程才能形成最后的可执行文件。链接程序的功能就是把一个或多个目标文件合并成一个可执行文件,其后缀为.EXE。其实在链接过程中一共形成两个文件:第一个是可执行文件(.EXE)。默认的可执行文件名字与源程序文件相同,也可以根据用户要求修改可执行文件的名字;链接过程中形成的第二个文件是内存映像文件(.MAP),它给出了每个段的地址分配情况和长度。如果不需要该文件则可以在链接命令执行时直接输入Enter键。在链接过程中还与一个库文件(.LIB文件)相关。一般的汇编程序不需要库文件。但是当汇编语言与高级语言(如C语言)接口时需要用到库文件。此时输入相应的库文件名字即可。如图8所示,输入linkabc.obj,对目标文件进行链接,得到可执行文件abc.exe。图82.4程序调试阶段只有得到*.exe可执行文件后才可以进行调试,调试使用windows自带的debug.exe调试工具。使用方法是,在图8所示状态下,输入“debugabc.exe”回车。进入debug调试环境提示符“-”,用“-U”命令可以显示反汇编信息。如图9所示,在-u命令后的第一行处,显示的“0b5e:0000”即第一条指令代码存放的地址,其中0b5e是指令段段地址,0000是偏移地址。该地址存放的指令代码是b44c,占两个字节(0000和0001两个便宜地址),因此第二行指令偏移地址从0002开始存放。该行右边的“movah,4ch”即“b44c”这条指令代码对应的助记符。回顾汇编过程,源程序*.asm中存放的即为图9右边所示的助记符;经过masm.exe工具编译后得到目标文件*.obj,即得到了图9中间部分的指令代码(该指令代码可以直接被CPU识别),但是此时并没有得到物理地址,只有相对的浮动地址;再经过link.exe工具链接后得到可执行文件*.exe,即得到了图9左边所示的指令代码所在的具体物理地址。所以只有可执行文件.exe才可以直接运行,因为其中既包含了指令代码,又包含了指令代码所在的具体物理地址。图9在debug调试环境中,“-q”命令是退出调试状态。“-d”,“-g”,“-t”也经常使用,如图10所示。图10单步执行-t后状态字信息的含义如表1所示溢出标志OF方向标志DF中断标志IF符号标志SF零标志ZF辅助标志AF奇偶标志PF进位标志CFOV(1)DN(1)EI(1)NG(1)ZR(1)AC(1)PE(1)CY(1)NV(0)UP(0)DI(0)PL(0)NZ(0)NA(0)PO(0)NC(0)表1debug中状态字信息的含义3软件实验项目软件实验一清零实验一、实验目的熟悉MASM编译环境,了解程序的汇编方法,熟悉常用汇编指令。二、实验内容编写程序,将程序数据段内256个字节内容清零(或写为55h)三、实验步骤1)按照本章第2节所述,建立源程序文件*.asm(*为自己输入的文件名)2)用masm.exe工具队源程序进行编译,得到目标文件*.obj;3)用link.exe工具对目标文件进行链接,得到可执行文件*.exe;4)用debug调试环境的-U命令,查看数据段段地址,用-D命令查看运行前存储器内容,用-g运行程序后再用-d查看清0(清55H)后的内容图11调试时先用-U命令查看数据段段地址图12运行程序前先用-d命令查看数据段,看到0000-00ffh地址中有256个AAH图13g连续运行程序,提示程序正常执行图14再次用d命令看数据段,看到00-00ffH共256个单元清成了55h五、参考程序datasegmentbufdb256dup(0aah)dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovcx,256leasi,bufmoval,55hL1:movsi,alincsiloopL1movah,4chint21hcodeendsendstart六、思考题1)画出该程序流程图2)start:标号处开始的两条指令起什么作用?能不能省略?3)程序是如何返回dos的?不加返回DOS指令会有怎样的后果?4)总结Loop指令的用法及功能?其最大循环次数是CX中写多少?循环多少次?软件实验二码制转换实验一、实验目的了解16进制码转ascii码的方法,学习汇编指令。二、实验内容编写程序,将程序数据段内0,1,2,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh的16个16进制数转换为相应的ascii码,并存储在原码所在的相应地址中。三、编程原理取出一个数后,首先判断该数是否大于等于10(或小于10),如果大于10则加37H转换,小于10则加30H。四、实验步骤1)按照本章第2节所述,建立源程序文件*.asm(*为自己输入的文件名)2)用masm.exe工具队源程序进行编译,得到目标文件*.obj;3)用link.exe工具对目标文件进行链接,得到可执行文件*.exe;4)用debug调试环境的-U命令,查看数据段段地址,用-D命令查看运行前存储器内容,用-g运行程序后再用-d查看转码后的内容图15U命令查看数据段段地址图16程序运行前先用-d命令查看数据段内容图17程序运行后再用-d命令查看数据段内容四、参考程序datasegmentbufdb0,1,2,3,4,5,6,7,8,9,0Ah,0bH,0CH,0Dh,0Eh,0Fhdataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovcx,16leasi,bufL2:moval,sicmpal,10jbL1addal,7hL1:addal,30hmovsi,alincsiloopL2movah,4chint21hcodeendsendstart五、思考题1)画出程序流程图2)总结无符号条件转移指令的功能,要求更改程序,用JA指令实现相同功能。3)总结CMP指令和test指令的用法和区别4)总结有符号数转移指令JG,JL功能,叙述该指令是如何使用标志位判断有符号数的大小的?软件实验三数据区移动实验一、实验目的了解交叉区域的数据移动方法,学习汇编指令。二、实验内容编写程序,将程序数据段内00-000fH的16个数据传送到从0008偏移地址开始的16个字节的区域中。三、编程原理在没有数据区重叠的情况下,可以用递增或递减的方式随意传送。在有数据区重叠的情况只能使用其中一种。因此作为通用的情况,可以先将源区域的首地址和目的区域的首地址进行比较,如果源区域首地址比目的区域首地址小,无论有没有重叠区域,一律采用递减方式传送(即先传送末地址,然后地址指针递减);否则如果源区域首地址比目的区域首地址大,无论有没有数据区重叠,一律用递增方式传送。图18数据重叠情况数据传送原理示意图四、实验步骤1)按照本章第2节所述,建立源程序文件*.asm(*为自己输入的文件名)2)用masm.exe工具队源程序进行编译,得到目标文件*.obj;3)用link.exe工具对目标文件进行链接,得到可执行文件*.exe;4)用debug调试环境的-U命令,查看数据段段地址,用-D命令查看运行前存储器内容,用-g运行程序后再用-d查看数据传送后的内容图19运行前后数据区的变化五、参考程序datasegmentbuf1db0,1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh;buf1为源区域首地址org08Hbuf2db8;buf2为目的区域首地址org10H;由于偏移地址10H-1Fh区域可能被使用,所以建立足够的数据段缓冲区db?;当10H被db伪指令占用后,10h-1fH都会分配给数据段使用dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovcx,16leasi,buf1;如需改变源区域和目的区域位置关系,只要将这里的buf1leadi,buf2;和这里的buf2倒一下次序即可cmpsi,dijaL1addsi,cxdecsi;源区域首地址+16-1即为源区域末地址adddi,cx;decdi;目的区域首地址+16-1即为目的区域末地址stdL3:moval,siL3:repmovsbmovdi,al;递减方式jmpL2decsidecdiloopL3jmpL2;初学者往往在这里容易遗漏L1:moval,siL1:cldmovdi,alrepmovsbincsi;递增方式L2:movah,4chincdiint21hloopL1L2:movah,4chint21hcodeendsendstart六、思考题1)为什么要在数据段定义足够的缓冲深度?2)用串传送指令实现该程序功能。软件实验四冒泡法排序实验一、实验目的了解冒泡法原理,学习多重循环的编程方法。二、实验内容编写程序,用冒泡法实现将数据段内5,3,3,2,1按照由小到大的顺序重新排列。三、编程原理冒泡即将数据两两比较,确保大的数放到右边。N个数经历N-1次冒泡后可以找到最大的气泡。其中“两两比较”可以用内循环的结构实现。经历第一次冒泡后剩下的N-1个数依然是无序的,可以重新重复冒泡过程,第二次只需经历n-2次两两比较即可以找到次大的气泡。依次类推,第N-1次冒泡后恰好可以排好所有的数。重复执行的N-1次的冒泡过程可以用外循环结构实现。由图21可知,内循环次数只要每次和外循环次数相等即可图20冒泡法原理示意图1图21冒泡法原理示意图2四、实验步骤1)按照本章第2节所述,建立源程序文件*.asm(*为自己输入的文件名)2)用masm.exe工具队源程序进行编译,得到目标文件*.obj;3)用link.exe工具对目标文件进行链接,得到可执行文件*.exe;4)用debug调试环境的-U命令,查看数据段段地址,用-D命令查看运行前存储器内容,用-g运行程序后再用-d查看转码后的内容5)可以用-T命令单步执行,观察每条指令运行后的寄存器及存储器变化情况,观察冒泡法的原理图22程序运行前后的冒泡法排序情况五、参考程序datasegmentbuf1db5,4,3,2,1dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovdx,4;dx中存放外循环次数L3:movcx,dx;cx中存放内循环次数,内循环次数等于外循环次数leasi,buf1L2:moval,si;取出第一个数cmpal,si+1;两个数比较jbL1;如果第一个数比第二个数大,则两两交换xchgal,si+1movsi,alL1:incsiloopL2decdx;外循环次数减1,没减到0则跳转至L3处,重新置jnzL3;入内循环的计数初值movah,4chint21hcodeendsendstart六、思考题1)n个数冒泡法排序共需要多少次循环?2)循环嵌套时总循环次数和内外循环次数是哪种数学关系?编写内外循环嵌套的双重循环程序,实现100次内循环,300次外循环。软件实验五存储器校验实验一、实验目的了解存储器校验原理,学习汇编指令。二、实验内容编写程序,将数据段1000H开始的256个字节校验。三、编程原理为了测试存储器每个位是否正常,可以对存储单元的每一位分别写入0和1,再立刻读出来,如果读出依然是0和1,说明写0和写1都正常,否则,说明存储器相应单元已损坏。对每一位写入时,通常采用分别写入55H和0AAH的方式。四、实验步骤1)按照本章第2节所述,建立源程序文件*.asm(*为自己输入的文件名)2)用masm.exe工具队源程序进行编译,得到目标文件*.obj;3)用link.exe工具对目标文件进行链接,得到可执行文件*.exe;4)用debug调试环境的-U命令,查看数据段段地址,用-g运行程序后再用-d查看数据段的内容五、思考题若存储器段地址为1600H,首偏移地址为0000H,要求以8088为CPU,用全译码方式扩展一片6264存储器,画出扩展电路图软件实验六实时时钟显示实验一、实验目的了解显示相关的中断调用方式,了解软件延时原理。学习子程序的编程方法。二、实验内容编写程序,在显示器上显示00:00格式走动的电子时钟,其中冒号前为模拟分针位,冒号后为模拟秒针位(不严格要求每一秒秒针位走动一次)三、编程原理在显示器上显示可以采用21H中断的2号子功能或者9号子功能,以2号子功能为例,DL中必须先存放要显示字符的ascii码,AH中写入2,再执行int21h即显示一位的信息。注意秒针位和分针位的边界处理,秒针走到59后,秒针位需要清零,分针位加1,分针位走到59后分针位和秒针位都清0。软件延时即循环执行N次构成循环体的若干指令,每次循环的时间为T,则延时NT。四、实验步骤1)按照本章第2节所述,建立源程序文件*.asm(*为自己输入的文件名)2)用masm.exe工具队源程序进行编译,得到目标文件*.obj;3)用link.exe工具对目标文件进行链接,得到可执行文件*.exe;4)直接运行*.exe文件,观察屏幕上显示的电子时钟的走动状态是否正常。五、参考程序stacksegmentdb128dup(?)topdw?stackendscodesegmentassumecs:code,ss:stackstart:movax,stackmovss,axleasp,topmovbh,0;BH中存放分针位movbl,0;BL中存放秒针位L1:moval,bh;将分针位送入码制转换子程序callxchg_code;将分针位的高四位和低四位转换为ascii码movdl,al;显示分针的高4位movah,2int21hmovdl,dh;显示分针的低4位movah,2int21hmovdl,':'显示分号movah,2int21hmoval,bl;将秒针位送入码制转换子程序callxchg_code;将秒针位的高四位和低四位转换为asciimovdl,al;显示秒针的高四位movah,2int21hmovdl,dh;显示秒针的低四位movah,2int21hmovdl,0dh;显示换行字符,(并未回车)movah,2int21hcalldelay;延时秒针跳动一步所需的时间incbl;秒针位加一cmpbl,60;比较是否秒针到60秒jbL2movbl,0incbhL2:cmpbh,60;比较是否分针到60分jbL3movbl,0movbh,0L3:jmpL1xchg_code:movah,0movcl,10divcladdal,30haddah,30hmovdh,ahretdelay:movsi,5000L5:movcx,0loop$decsijnzL5retcodeendsendstart硬件实验部分1微机实验系统简介图1微机实验系统构成示意图图2微机实验箱各模块区域示意图2实验系统上位机软件使用方法2.1软件启动方法一:启动Windows操作系统,单击操作系统“桌面”的“星研集成环境软件”快捷方式图标即可进入集成开发环境。方法二:鼠标单击操作系统的“开始”菜单,在“程序”栏中打开“星研集成环境软件”菜单栏,选择“星研(SUPER、STAR系列仿真器)”,启动星研集成环境软件。注意:当您使用低配置机器时,从星研集成环境软件退出后必须等待足够的时间,让系统完全退出(硬盘停止工作)后,方可再次启动星研集成环境软件。2.2如何使用星研集成环境软件首先运行星研集成软件。启动画面如图:1)选择仿真器或仿真模块执行主菜单»辅助»仿真器,出现一个对话框:请选择实验仪:STARES598PCIS;仿真器:EMU598+仿真模块;选择“确认”。如果选择“模拟调试器”,实验仪电源不用开启,使用微机CPU模拟执行程序,可以调用附件中的软中断,但无法对I/O接口操作。学生在做实验前,可以选择“模拟调试器”,在星研集成环境中编写程序,对它编译、连接,解决语法错误,使用模拟调试功能,初步调试;可以大幅度减少在实验室中做实验的时间。2)设置缺省项目执行主菜单»辅助»缺省项目,出现一个对话框:(使用EMU598+仿真模块,选择“8086(EMU598+)”)点击进入下一步:“选择语言”您可以根据自己的需要以及程序的类型作相应的选择,本实例选择Borland公司的TurboC(3.0)、TASM(5.0)(请确定在选择语言之前已经安装好相应的编译软件)。然后再点击进入下一步:“编译、连接控制项”实验仪提供64Kmemory空间,memorymodel请选择tiny,缩写为mt;如果需要源程序级别调试,必须使用-vy控制项,为了支持多文件编译、连接,必须使用-c控制项。一般不必改变TurboC的编译控制项。如果需要源程序级别调试,必须使用/zi/l控制项。一般不必改变Tasm的编译控制项。如果需要源程序级别调试,必须使用/m/l/v控制项。一般不必改变TLINK的连接控制项。然后再点击进入下一步:“存贮器出借方式”仿真模块EMU598提供64K仿真RAM,作程序段(CS)、数据段(DS)、附加段(ES)、堆栈段(SS)使用。3)建立源文件执行主菜单»文件»新建,(或者点击图标)打开窗口如下:首先选择存放源文件的目录,输入文件名,注意:一定要输入文件名后缀。对源文件编译、连接、生成代码文件时,系统会根据不同的扩展名启动相应的编译软件。比如:*.asm文件,使用TASM来对它编译。本实例文件名为8255test.asm。窗口如下:按“确定”即可。然后出现文件编辑窗口:输入源程序,如下图:保存源程序文件,点图标,这样一个源文件就建立好了。4)编译、链接文件首先选择一个源文件,然后可以编译、链接文件了。对文件编译,如果没有错误,再与库文件链接,生成代码文件(DOB、EXE文件)。编译、链接文件的方法有如下二种:(1)使用主菜单»项目»编译、连接或主菜单»项目»重新编译、链接”。(2)点击图标或来“编译、链接”或“重新编译链接”。“编译链接”与“重新编译、链接”区别:“重新编译、链接”不管源文件是否修改、编译软件是否变化、编译控制项有无修改,对源文件编译,如果没有错误,再与库文件链接,生成代码文件(DOB、EXE文件)。编译、连接过程中产生的信息显示在信息窗的“建立”视中。编译没有错误的信息如下:若有错误则出现如下信息框:有错误、警告信息,用鼠标左键双击错误、警告信息或将光标移到错误、警告信息上,回车,系统自动打开对应的出错文件,并定位于出错行上。这时用户可以作相应的修改,直到编译、连接文件通过。5)调试在进入调试状态以前,请正确设置通信口:执行主菜单»辅助»通信,对话框如下:仿真器、实验仪配套的通信线可以与微机USB口相连,即为USB通信线,请选择USB。对于最下面一行的校验,通常不必选中它,可以提高传送DOB、HEX、BIN文件时的速度。在进入调试状态以前,还必须确定实验仪与微机的正确连接,电源接通,开关打开。如果编译、连接正确后,可以开始调试程序。进入调试状态方法有:a) 执行主菜单»运行»进入调试状态b) 点击工具条的c) 执行主菜单»运行»装载DOB、HEX、BIN文件进入后的窗口如下:在整个图片中我们可以看到相对应的窗口信息。在“工作区窗”的“CommonRegister”中我们可以了解通用寄存器的信息。中间的窗口为源程序窗口,用户可在此设置断点,设置光标的运行处,编辑程序等。寄存器窗我们可以看到一些常用的寄存器的数值。存贮窗1、存贮窗2显示相应的程序段(CS)、数据段(DS)、IO设备区的数据,还有变量窗,自动收集变量显示其中。反汇编窗显示对程序反汇编的信息代码、机器码、对应的源文件。在信息窗的“装载”视中,显示装载的代码文件,装载的字节数,装载完毕后,显示启始地址,结束地址。这种船坞化的窗口比通常的窗口显示的内容更多,移动非常方便。用鼠标左键点住窗口左边或上方的标题条,移动鼠标,将窗口移到您认为合适的位置;将鼠标移到窗口的边上,鼠标的图标变成可变化窗口时的形状,用鼠标左键点住,移动鼠标,变化一个或一组窗口的大小。在调试过程中,可以根据您的需要,在主菜单»查看中打开:寄存器窗、存贮器窗1、2、3、观察窗、变量窗、反汇编窗。您也可以通过主菜单»辅助»设置»格式,设置每一种窗口使用的字体、大小、颜色。移动窗口到您喜欢的位置、大小。首先在“种类”中选择一个窗口,然后选择“字体”、“大小”,在“颜色”中选择某一类,在“前景”、“背景”中选择您喜欢的颜色。对于高级语言,在您的程序前有一段库文件提供的初始化代码,(当前可执行标志)不会出现在您的文件行上,如果您使用C语言,可将光标移到main函数上,按F4功能键,让CPU全速运行到main行上后停下;如果您使用PL/M语言,按F7功能键,让CPU“单步进入”,运行到您的任何一个可执行行后停下。您可以使用以下命令调试您的程序:设置或清除断点(功能键为F2)在当前光标行上设置或清除一个断点单步进入(功能键F7)单步执行当前行或当前指令,可进入函数或子程序。连续单步进入(功能键Ctrl+F7)连续执行“单步进入”,用鼠标点击或按任意键后,停止运行。单步(功能键F8)单步执行当前行或当前指令,将函数或子程序作为一条指令来执行。如果当前行中含有函数、子程序或发生中断,CPU将执行完整个函数、子程序或中断,停止于当前行或当前指令的下一有代码的行上。连续单步(功能键Ctrl+F8)连续执行“单步”,用鼠标点击或按任意键后,停止运行。运行到光标行(功能键F4)从当前地址开始全速运行用户程序,碰到光标行、断点或用鼠标点击,停止运行。全速断点(功能键F9)从当前地址开始全速运行用户程序,碰到断点或用鼠标点击,停止运行。全速运行(功能键Ctrl+F10)从当前地址开始全速运行用户程序,此时,按用户系统的复位键,CPU从头开始执行用户程序,用鼠标点击,停止运行。全速运行时,屏蔽了所有断点,即不会响应任何断点。停止运行终止微机与仿真器之间通信(功能键ESC)。注意:欲终止微机与仿真器之间通信,功能键ESC是一个很方便的键,它的效果比点击相应的图标的效果要好。建议用户多用ESC键。在系统运行“连续单步”或者“连续单步进入”时ESC键被禁止,这时用户可以按键盘的其他任意键停止其运行。3硬件实验项目硬件实验一8255PA口控制PB口实验一、实验目的与要求了解8255的内部资源与结构;了解8255工作方式0的原理;熟悉8255的初始化以及各接口输入输出程序的编程方法。二、实验设备STAR系列实验仪一套、PC机一台三、实验内容编写程序:从8255的PA口将F5区的8位开关读入,读入到CPU的内部寄存器AL,再读出后,写入PB口,显示于F5区的LED指示灯上。(s21-s28开关拨动到上方为低电平)四、实验原理图五、实验步骤1、关闭实验箱电源,按下表进行连线,检查无误后打开实验箱电源。B4区:CS(8255),A0,A1A3区:CS1,A0,A1B4区:JP56(PA口)F5区:JP83B4区:JP53(PB口)F5区:JP652、打开上位机软件,建立*.asm文件,编写8255程序。3、点击图标,编译链接源程序4、点击图标,进入调试界面,在调试界面下点击|“全速运行”图标,运行源程序。5、拨动F5区的开关,测试实验结果:F5区的开关状态反应在F5区的LED指示灯上。(步骤2,3,4细节请参阅指导书“硬件实验部分”第二节“实验系统上位机软件使用方法”)六、注意事项:1、连接线路时请关闭实验箱电源2、运行程序后,如需更改源程序必须先将源程序停止,点击图标停止运行。3、在调试界面下若需要更改源程序,必须先退出调试界面。再次点击图标即可退出调试界面。或者点击上位机软件的“运行”菜单栏,再点击“退出调试状态”选项退出。退出调试界面后更改源程序需要重新编译链接,然后再次进入调试界面进行调试。4、实验箱A3区CS1的地址范围是f000h-ffffh。5、使用该型实验箱时,要求程序必须按照以下参考程序方式定义堆栈段。七、思考题:1、若控制要求改为:PA0控制PB1,PA1控制PB2,PA6控制PB7,PA7控制PB1,且要求当开关拨动到下方时(高电平)发光二极管点亮,程序该如何实现?2、用PC口的按位输出功能,编写程序实现用PC3控制某一个发光二极管实现连续闪烁。八、实验参考程序stack1segmentstack'stack'db128dup(?)topdw?stack1endscodesegmentassumecs:code,ss:stack1start:leasp,topmoval,10010000bmovdx,0f003houtdx,alL1:movdx,0f000hinal,dxincdxoutdx,aljmpL1codeendsendstart硬件实验二8255控制交通灯实验一、实验目的与要求1、了解8255芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。学会使用8255并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。2、熟悉8255内部结构和与8088的接口逻辑,熟悉8255芯片的3种工作方式以及控制字格式。3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。二、实验设备STAR系列实验仪一套、PC机一台三、实验内容1、编写程序:使用8255的PA0.2、PA4.6控制LED指示灯,实现交通灯功能。2、连接线路验证8255的功能,熟悉它的使用方法。四、实验原理图五、实验步骤1、连线说明:B4区:CS(8255)、A0、A1A3区:CS1、A0、A1B4区:JP56(PA口)F5区:JP652、观察实验结果,是否能看到模拟的交通灯控制过程。六、演示程序(该程序仅提供演示和参考,并非标准的*.asm汇编格式).MODELTINYCOM_ADDEQU0F003HPA_ADDEQU0F000HPB_ADDEQU0F001HPC_ADDEQU0F002H.STACK100.DATALED_DataDB01111101B;东西绿灯,南北红灯DB111111