Emu8086-AssemblerandMicroprocessorEmulator是一个可在Windows环境下运行的8086CPU汇编仿真软件。它集成了文本编辑器、编译器、反编译器、真调试、虚拟设备和驱动器为一体,并具有在线使用指南,这对刚开始学习汇编语言的人是一个很有用的工具。您可以在真器中单步或连续执行程序,其可视化的工作环境让使用者操作更容易。您可以在程序执行中动态观察各寄存器、标记位以及存储器中的变化情况。仿真器会在模拟的PC中执行程序,以避免程序运行时到实际的硬盘或内存中存取数据。此外,该软件完全兼容Intel新一代处理器,包括了PentiumⅢ、Pentium4的指令。一.软件启动启动界面如图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创建一个新的软盘