您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 微机原理Emu8086仿真软件实验讲义
实验一显示程序实验1.emu8086介绍Emu8086-AssemblerandMicroprocessorEmulator是一个可在Windows环境下运行的8086CPU汇编仿真软件,Emu8086集源代码编辑器,汇编/反汇编工具以及可以运行debug的模拟器(虚拟机器)于一身,它优于一般编译器的地方在于提供了一个虚拟的80x86环境,拥有自己一套独立的“硬件”,可以完成一些纯软件编译器无法完成的功能例如Led显示,交通灯,步进电机等等,而且动态调试(DEBUG)时非常方便一.软件启动启动界面如图1所示,用户可以选择新建文本、程序实例、启动指南、近期文档。注册的用户名随意,密码112,即可成功。二.新建文件单击图1中的“New”选项,软件会弹出如图2所示的选择界面。●COM模板——适用于简单且不需分段的程序,所有内容均放在代码段中,程序代码默认从ORG0100H开始;●EXE模板——适用于需分段的复杂程序,内容按代码段、数据段、堆栈段划分。需要注意的是采用该模板时,用户不可将代码段人为地设置为ORG0100H,而应由编译器自动完成空间分配;●BIN模板——二进制文件,适用于所有用户定义结构类型;●BOOT模板——适用于在软盘中创建文件。此外,若用户希望打开一个完全空的文档,则可选择emptyworkspace的选项。三.编译和加载程序用户可根据上述选择的模板中编写程序,如图3所示。该编辑界面集文档编辑、指令编译、程序加载、系统工具、在线帮助为一体,其菜单功能如表1所示。编写完程序后,用户只需单击工具栏上的“compile”按钮,即可完成程序的编译工作,并弹出如图4所示的编译状态界面。若有错误则会在窗口中提示,若无错误则还会弹出保存界面,让用户将编译好的文件保存相应的文件夹中。默认文件夹为…\emu8086\MyBuild\,但您可以通过菜单中assembler/setoutputdirectory对默认文件夹进行修改。用户保存的文件类型与第一阶段所选择的模板有关。完成编译和保存文件后,用户可按下图4中的“close”按钮先关闭该窗体,再利用工具栏上的“emulate”按钮打开真器界面和原程序界面进行真调试,也可以按下图4中的Run按钮运行直接程序。表1编译器菜单功能一级菜单名称二级菜单名称三级菜单名称功能file文件new新建comtemplatecom模板exetemplateexe模板bintemplatebin模板boottemplateboot模板example实例open打开文件save保存文件saveas另存为prints打印文件exporttoHTML转换为超文本文件exit退出edit编辑undo取消redo重复cut剪切cope复制paste粘贴selectall选择全部find查找findnext查找下一个replace代替indent缩进outdent凸出commentblock将被选块变为注释uncommentblock将被注释变为指令advancededitormacros高级宏汇编advanced高级设置Showlinenumbers显示行编号tabitfyselection空格转换为定位字元untabitfyselection定位字元转换为空格lowercaseselection用小写字母表示uppercaseselection用大写字母表示displaywhitespace显示出空格出空间bookmark书签togglebookmark在光标处放置标签previousbookmark跳到上一个标签处nextbookmark跳到下一个标签处jumptofirst跳到第一个标签处jumptolast跳到最后一个标签处clearallbookmark清除所有标签assembler汇编compile编译compileandloadintheemulation编译并加载到真器中fasmFasm汇编setoutputdirectory设置输出文件夹emulator真器showemulator显示真窗口assembleandloadintheemulator编译并加载到真器中math数学计算multibasecalculator多进制基本计算器baseconverter基本转换器asciicodeASCII码表help帮助documentationandtutorials文档及指南checkforanupdate软件更新检查about关于软件四.仿真调试当用户完成程序编译后,利用工具栏中的“emulate”按钮可将编译好的文件加载到仿真器进行真调试。除使用“emulate”按钮外,用户也可以用菜单栏中的assembler/compileandloadintheemulation或emulator/assembleandloadintheemulator打开仿真器。仿真器界面如图5所示。当用户将程序加载到仿真器后,会同时打开仿真器界面和源程序界面,用户在仿真器界面中也可以同时看到源代码和编译后的机器码。点击的任意一条源程序指令,则对应的机器代码显示为被选显示状态,与此同时,上面的代码指针也会相应变化。用户也可以通过这种操作了解,数据段和堆栈段中各变量或数据在存储器中的情况。用户可以利用工具栏中的“singlestep”按钮进行单步跟踪调试,以便仔细观察各寄存器、存储器、变量、标记位等情况,这对于程序初始调试时十分有用;当程序调试完毕,或需要连续运行观察时,则可以使用“run”按钮;当希望返回上一步操作时,则可以使用“stepback”按钮;若单击“reload”按钮,则真器会重新加载程序,并将指令指针指向程序的第一条指令;您也可以利用“load”按钮,从您保存的文件夹中加载其它程序。用户除使用上述工具栏中的按钮进行仿真调试外,还可以利用其菜单中的其它功能进行更高级的调试和设置。菜单的详细功能见表2所示。表2真器菜单功能一级菜单名称二级菜单名称功能file文件loadexecutable…加载要执行的程序reload重新加载程序examples打开实例resetemulatorandram复位真器和RAMsetcommandlineparameter设置命令行参数settheemulator’sstate保存真器设置loadformpreviousstate载入原先保存的设置math数学计算multibasecalculator多进制基本计算器baseconverter基本转换器debugsinglestep单步跟踪singleover单步stepback单步返回stoponcondition设置停止运行的条件rununtil运行到光标处run连续运行setbreakpoint在光标处设置断点clearbreakpoint清除所有断点showcurrentbreakpoint显示当前断点指令showcurrentinstruction(atCS:IP)显示当前指令setCS:IPtoselectedposition将被选指令设定为当前指令view观察loganddebug.exeemulation打开debug.调试窗口extendvalueviewer打开扩展数值观察器stack打开堆栈窗口variables打开变量窗口symboltable打开标记表listing显示源程序及目标文件内容originalsourcecode打开源程序代码窗口option软件高级设置,可对字体、颜色、文本格式、键盘输入等进行设置arithmetic&logicalunit选择打开存储器、寄存器等单元,与AUX按钮功能相同flag打开标记位窗口lexicalflaganalyser打开文本说明格式的标记位窗口asciicode打开ASCII码表emulatorscreen打开模拟屏幕窗口external外部真器startdebug.exe启动windows的debug真调试器commandprompt打开DOS命令窗口run在DOS环境下运行程序virtualdevices虚拟设备LED-Disply.exeLED显示器printer.exe打印机robit.exe机器人simple.exe读写端口simplest.exe在屏幕上读写端口stepper_motor.exe步进马达thermometer.exe温度控制tranffic_lights交通灯控制VGA_STATE.exe显示屏控制Virtualdrive虚拟驱动盘bootformvirtualfloppy(floppy_0)从虚拟的软盘中导入程序write512byteat0000:7C00tobootsector(floppy_0)(将存储器中07C00单元开始的512个字节写到软盘中write“.bin”filetofloppy将bin文件写到软盘中createnewfloppydrive创建一个新的软盘2.实验目的(1)熟悉emu8086集成环境和调试器的使用。(2)掌握部分DOS功能调用使用方法。3.实验内容本实验要求显示一串字符。注释:INT10H是由BIOS对屏幕及显示器所提供的服务程序,这些服务程序也加挂在INT10H内。使用INT10H中断服务程序时,先指定AH寄存器为下表编号其中之一,该编号表示欲调用的功用,而其他寄存器的详细说明,参考表后文字,当一切设定好之后再调用INT10H。AH:00H—设置显示器模式AL:03H—80×2516色文本AH:10H—设置颜色中断。AL:03H—触发闪烁/亮显位4.参考程序:namehi-world;thisexampleprintsouthelloworld!;bywritingdirectlytovideomemory.;invgamemory:firstbyteisasciicharacter,bytethatfollowsischaracterattribute.;ifyouchangethesecondbyte,youcanchangethecolorof;thecharacterevenafteritisprinted.;characterattributeis8bitvalue,;high4bitssetbackgroundcolorandlow4bitssetforegroundcolor.;hexbincolor;;00000black;10001blue;20010green;30011cyan;40100red;50101magenta;60110brown;70111lightgray;81000darkgray;91001lightblue;a1010lightgreen;b1011lightcyan;c1100lightred;d1101lightmagenta;e1110yellow;f1111whiteorg100h;setvideomodemovax,3;textmode80x25,16colors,8pages(ah=0,al=3)int10h;doit!;cancelblinkingandenableall16colors:movax,1003hmovbx,0int10h;setsegmentregister:movax,0b800hmovds,ax;printhelloworld;firstbyteisasciicode,secondbyteiscolorcode.mov[02h],'H'mov[04h],'e'mov[06h],'l'mov[08h],'l'mov[0ah],'o'mov[0ch],','mov[0eh],'W'mov[10h],'o'mov[12h],'r'mov[14h],'l'mov[16h],'d'mov[18h],'!';colorallcharacters:movcx,12;numberofcharacters.movdi,03h;startfrombyteafter'h'c:mov[di],11101100b;lightr
本文标题:微机原理Emu8086仿真软件实验讲义
链接地址:https://www.777doc.com/doc-4820105 .html