熟悉emu8086汇编语言调试环境实验报告
- 格式:docx
- 大小:93.00 KB
- 文档页数:4
1.汇编语言程序设计实验篇1.1.汇编系统软件简介Emu8086-Microprocessor Emulator是集源代码编辑器、汇编/反汇编工具以及debug 的模拟器。
它能模拟一台"虚拟"的电脑运行程序,拥有独立的“硬件”,避免访问真实硬件。
该软件兼容Intel的下一代处理器,包括PentiumII、Pentium4。
利用该软件提供的调试工具,能够单步跟踪程序,观察程序执行过程中寄存器、标志位、堆栈和内存单元的内容。
1.1.1创建程序 TEMPLATE程序本章与指令相关的实验都是用COM TEMPLATE类型的程序完成的。
打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。
在“choose code template”对话框中,选择“COM template-simple and tiny executable , pure machine code.”后,单击按钮。
在如所示的编辑界面中,在“;add your code here”部分输入相应的指令,第一条指令默认的偏移地址为100h。
输入全部指令后,单击按钮,保存相应的程序段。
2.EXE TEMPLATE程序本章与DOS功能调用和汇编源程序相关的实验都是用EXE TEMPLATE程序完成的。
打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。
在“choose code template”对话框中,选择“EXE template-advanced executable : relocation, checksum.”后,单击按钮。
在如图所示的编辑界面中,已经可以给出了源程序的框架,包含数据段、堆栈段和代码段的定义以及必要的功能调用等,在“add your data here”和“;add your code here”部分可以分别输入相应的变量定义和指令。
输入全部指令后,单击按钮,保存相应的程序。
实验一显示程序实验1.emu8086介绍Emu8086-Assembler and Microprocessor Emulator是一个可在 Windows 环境下运行的 8086CPU 汇编仿真软件,Emu8086集源代码编辑器,汇编/反汇编工具以及可以运行 debug 的模拟器(虚拟机器)于一身,它优于一般编译器的地方在于提供了一个虚拟的80x86 环境,拥有自己一套独立的“硬件”,可以完成一些纯软件编译器无法完成的功能例如 Led 显示,交通灯,步进电机等等,而且动态调试(DEBUG)时非常方便一.软件启动启动界面如图 1 所示,用户可以选择新建文本、程序实例、启动指南、近期文档。
注册的用户名随意,密码112,即可成功。
二.新建文件单击图 1 中的“ New”选项,软件会弹出如图 2 所示的选择界面。
●COM 模板——适用于简单且不需分段的程序,所有内容均放在代码段中,程序代码默认从 ORG 0100H 开始;●EXE 模板——适用于需分段的复杂程序,内容按代码段、数据段、堆栈段划分。
需要注意的是采用该模板时,用户不可将代码段人为地设置为 ORG0100H,而应由编译器自动完成空间分配;●BIN 模板——二进制文件,适用于所有用户定义结构类型;●BOOT 模板——适用于在软盘中创建文件。
此外,若用户希望打开一个完全空的文档,则可选择empty workspace的选项。
三.编译和加载程序用户可根据上述选择的模板中编写程序,如图3 所示。
该编辑界面集文档编辑、指令编译、程序加载、系统工具、在线帮助为一体,其菜单功能如表 1 所示。
编写完程序后,用户只需单击工具栏上的“ compile”按钮,即可完成程序的编译工作,并弹出如图 4 所示的编译状态界面。
若有错误则会在窗口中提示,若无错误则还会弹出保存界面,让用户将编译好的文件保存相应的文件夹中。
默认文件夹为,但您可以通过菜单中 assembler/ set output directory 对默认文件夹进行修改。
Emu8086软件的使用一、实验目的:(1)熟悉汇编语言开发环境。
(2)掌握Emu8086软件使用方法。
(3)了解汇编语言的程序结构、调试一个简单的程序。
(4)理解寻址方式的意义。
二、实验内容及要求:1、Emu8086的使用(1)打开桌面上的Emu8086的图标,出现如图所示的对话框,选择【继续……】首次打开软件,界面中默认已有一段小程序。
该程序实现在屏幕上显示三段字符串的功能。
若用户需要自己重新编程,可点击工具栏的【新建】图标,出现如图所示的对话框,选择编程所采用的模板。
选择不同的模板,在程序源代码中会出现如下标记:#MAKE_COM# 选择COM模板#MAKE_BIN# 选择BIN模板#MAKE_EXE# 选择EXE模板#MAKE_BOOT# 选择BOOT模板#MAKE_COM#最古老的一个最简单的可执行文件格式。
采用此格式,源代码应该在100H后加载(即:源代码之前应有ORG 100H)。
从文件的第一个字节开始执行。
支持DOS和Windows命令提示符。
#MAKE_EXE#一种更先进的可执行文件格式。
源程序代码的规模不限,源代码的分段也不限,但程序中必须包含堆栈段的定义。
您可以选择从新建菜单中的EXE模板创建一个简单的EXE程序,有明确的数据段,堆栈段和代码段的定义。
程序员在源代码中定义程序的入口点(即开始执行的位置),该格式支持DOS和Windows命令提示符。
这两种模板是最常用的模板(2)选择COM模板,点击【确定】,软件出现源代码编辑器的界面,如图所示:在源代码编辑器的空白区域,编写如下一段小程序:MOV AX, 5MOV BX, 10ADD AX, BXSUB AX, 1HLT代码编写结束,点击菜单【文件】【另存为……】,将源代码换名保存。
本例将源代码保存为001.asm。
点击工具栏的【模拟】按钮,如果程序有错误不能编译,出现如图所示的界面:点击错误提示,即可选择源代码中相应的错误的行,在此处更改源代码。
实验一emu8086软件的使用一. 实验目的1.熟悉汇编语言开发环境。
2.掌握Emu8086软件使用方法。
3.了解汇编语言的程序结构、调试一个简单的程序。
4.理解寻址方式的意义。
二. 实验环境硬件环境:奔3以上处理器,512MB以上内存空间软件环境:windowsXP以上操作系统,emu8086编译环境。
三.实验内容与完成情况1.实验程序例3.1程序:data segmentdata1 db 0f8h,60h,0ach,74h,3bhdata2 db 0c1h,36h,9eh,0d5h,20hpkey db "press any key...$"data endscode segmentassume cs:code,ds:datastart:mov ax, datamov ds, axmov es, axmov cx,5clclooper:mov al,data2[si]adc data1[si],alinc sidec cxjnz loopermov ax, 4c00hint 21hcode endsend start2.实验步骤首先打开Emu8086的软件,选择COM模板,将程序录入8086程序运行软件,点击保存扩展名为.asm,再单击模拟,再选择程序的单步执行模式,得到以下的操作图。
(1)开始执行(2)单步执行(3)结束四.出现的问题1.建立编码模板时出错;2.不知道如何执行程序。
五.对问题的解决方法1.在老师的提示下,知道.exe文件是需要用到的模板;2.与C++6.0的界面对比后,知道点击emulate可以打开运行界面,点击single step进行单步执行,点击run可以完全执行程序。
80X86汇编语言程序设计实验报告专业:班级:日期:成绩:第二次试验指导老师:学生姓名:学号:一、实验目的(1) 加深对一些常用的汇编指令的理解;(2) 加深对常用DOS功能调用指令的理解;(3) 进一步熟悉TD的使用。
二、实验内容1、《80X86汇编语言程序设计》教材中 P45的 2.3题。
要求:(1) 分别记录执行到“MOV CX,10”和“INT 21H”之前的(BX), (BP),(SI),(DI)各是多少。
(2) 分别记录程序执行初期与退出之前数据段开始40个字节的内容,指出运行结果是否与设想的一致。
2、《80X86汇编语言程序设计》教材中 P45的 2.4题。
要求:(1) 实现的功能不变。
(2) 内存单元中数据的访问采用变址寻址方式。
(3) 记录程序执行到退出之前数据段开始40个字节的内容,检查程序运行结果是否与设想的一致。
3、编写程序利用DOS 10号功能调用输入一个字符串,统计字符串中字符0、1、…、9出现的次数并显示出来(假设每个字符最多出现9次,若大于9次则显示为x)。
三、实验步骤及结果1、输入源程序,如下:.386STACK SEGMENT USE16 STACKDB 200 DUP(0)STACK ENDSDA TA SEGMENT USE16BUF1 DB 0,1,2,3,4,5,6,7,8,9BUF2 DB 10 DUP(0)BUF3 DB 10 DUP(0)BUF4 DB 10 DUP(0)DA TA ENDSCODE SEGMENT USE16ASSUME CS:CODE,DS:DA TA,SS:STACKSTART: MOV AX,DA TAMOV DS,AXMOV SI,OFFSET BUF1MOV DI,OFFSET BUF2MOV BX,OFFSET BUF3MOV BP,OFFSET BUF4MOV CX,10LOPA: MOV AL,[SI]MOV [DI],ALINC ALMOV [BX],ALADD AL,3MOV DS:[BP],ALINC SIINC DIINC BPINC BXDEC CXJNZ LOPAMOV AH,4CHINT 21HCODE ENDSEND START(1)进行单步调试。
一、实验目的(1)掌握常用DEBUG 命令: G,D,R,T,U,Q 。
(2)掌握工具软件EMU8086。
(3)掌握完整程序设计方法的格式,能正确书写数据段,代码段等。
(4)掌握简单的数值转换算法二.实验原理2.1 汇编语言程序的上机过程2.1.1、在计算机上运行汇编语言程序的过程如下图所示编辑程序 连接程序 汇编程序文件EXMP.ASMLINKASM MASM TASMEDLINE WPS WORD EDIT文件 EXMP.OBJ (EXMP.LST ) (EXMP.CRF )文件EXMP.EXE (EXMP.MAP ) (EXMP.LIB ) DEBUG出错 出错 出错 出错操作得到的文件操作使用的工具 说明:图1 汇编语言程序的建立及汇编过程2.1.2、汇编语言程序上机过程1)、用编辑程序(如EDIT.EXE )建立ASM 源文件;2)、用汇编程序(如MASM.EXE )把ASM 文件转汇编成OBJ 文件; 3)、用连接程序(如LINK.EXE )把OBJ 文件转连接成EXE 文件; 4)、用调试程序(如 )来调试和执行 5)、 生成EXE 或COM 文件2.2 、汇编语言程序格式存储器的物理地址由段基址和偏移地址组合而成,任何一个逻辑段,无论是代码段,数据段,堆栈段,附加段都必须进行段定义,以便连接程序把不同段和模块连接成一个可执行程序。
此外,还必须明确段和段寄存器之间的关系,这可使用段分配语句来完成。
2.2.1、段定义语句四个逻辑段不一定全部要定义,通常代码段和数据段是必须的,附加段可以省略。
但当代码段中使用了串指令,必须设置附加段作目标串基址用,附加段也可用来存放数据,增大数据段容量。
(1)代码段:存放程序执行的指令 (2)数据段:存放程序所需的数据 (3)堆栈段:存放程序执行的临时信息数据段定义格式:DATA SEGMENT ; 数据段 RESULT_1 DB 1 RESULT_2 DB 1 RESULT_3 DB 1 DATA ENDS 附加段的定义: EXTRA SEGMENTDEST_BUFFER DB 50 DUP (‘?’) EXTRA ENDS 堆栈段的定义:STACK SEGMENT STACK ; 堆栈段STA DB 64 DUP(0)STACK_TOP DB 0STACK ENDS2.2.2、段分配语句在8086/8088系统中存储器采用分段结构,各段容量≦64K字节,用户可以设置多个逻辑段,但只允许4个逻辑段同时有效,段分配语句用来完成将逻辑段分别定义成代码段、数据段、堆栈段和附加段。
微机原理与单片机实验报告Prepared on 22 November 2020北京联合大学信息学院实验报告课程名称:微型计算机原理学号:姓名:2012 年 6 月 9 日目录实验1 EMU8086模拟器的使用一实验要求利用EMU8086模拟器环境,完成创建源程序文件,运行调试,实验结果的查看二实验目的:熟悉EMU8086实验环境三 EMU8086环境:1 模拟器编辑窗口2 模拟器调试窗口四实验内容实验内容1:新建文件。
运行 emu80861. 新建文件:单击“新建”按钮,选择COM模板,在模拟器编辑窗口中输入如下程序代码:MOV AX, 1020HMOV BX, 2030HMOV AX, BXADD AX, BXMOV [BX], AXMOV [2032H], AXHLT2. 编译:单击“编译”按钮,对程序段进行编译;3. 保存:编译通过,单击“完成”按钮,将其以文件名“EXP1”保存在本地磁盘上。
4. 仿真:单击“仿真”按钮,打开模拟器调试窗口和源文件窗口。
5.在模拟器调试窗口中的寄存器组区,查看数据寄存器AX,BX,CX,DX;段寄存器CS,ES,SS,DS;指令指针寄存器IP;指针寄存器SP,BP;变址寄存器SI,DI;标志寄存器的值。
6.单击“单步前”按钮,单步执行程序,并观察每次单步执行后,相关寄存器值的变化。
7.单击“重载”按钮,将程序重载,并调整指令运行步进时延为 400毫秒,单击“全速”按钮,运行程序,8.程序运行之后,在程序调试窗口中,选择[view]/[memory],查看模拟器环境中,内存单元0700:0100开始的连续10个单元的内容9.将“存储器”中的地址改为0700:2030,查看开始的四个字节的内容,并思考其内容与程序的关联。
10.将“存储器”中地址改为1000:0100,并将从其开始的连续10个单元的内容改为55H。
实验内容2:运行范例在模拟器编辑窗口中1.点击典型范例2.选择:hellow,word程序,编译,运行,观察结果。
班级:信1101-1班姓名:付亚飞学号:20112860实验一:熟悉汇编语言调试环境一、实验目的熟悉汇编语言调试环境,初步掌握如何编写和调试一个简单的汇编语言程序。
二、实验内容编写一个汇编程序,该程序完成在屏幕上输出字符的功能。
调试该程序,并输出显示结果。
本实验是考查学生对汇编的开发环境的熟练应用程度。
学生要会编写汇编的源程序,在DOS 环境下汇编源程序,链接源程序和执行程序。
三、实验分析这个程序最基本的要求是在屏幕上输出字符的功能,我想实现的是输入一个字符串然后在屏幕上输出,输入和输出要实现换行。
strrn db 0ah, 0dh, ‘$’实现了换行的功能。
四、实验代码DATAS SEGMENTstring db 10h,50 dup('?')strrn db 0ah, 0dh, '$'DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXlea dx,stringmov ah,0ahint 21Hlea dx,strrnmov ah,09Hint 21Hmov bl,string+1mov bh,0mov byte ptr [string + 2 + bx], '$'mov ah,09hlea dx, string + 2int 21hmov ah,4chint 21hCODES ENDSEND START程序截图:五、实验总结本次实验不是很难,我参考了书本上的例题,然后自己有加入一些其他的功能,实现了输入和输出的功能。
自己这个学期刚接触汇编语言,所以我会认真的学习这门课程,通过实践编程来提高自己的能力。
熟悉emu8086汇编语言调试环境实验报告
=======================
1. 实验目的
-------
本次实验的主要目的是熟悉并掌握emu8086汇编语言调试环境的使用,了解汇编语言的基本原理和编程方法,提升对计算机硬件和程序运行的理解。
2. 实验原理
-------
emu8086是一款用于学习和实验的8086微处理器模拟器。
它提供了一个集成开发环境(IDE),可以在此环境中编写、编译、调试和运行8086汇编语言程序。
3. 实验步骤
-------
以下是我们进行实验的具体步骤:
步骤一:安装emu8086模拟器。
从官方网站下载并安装emu8086模拟器,确保正确安装并能够正常运行。
步骤二:打开模拟器并创建一个新项目。
在模拟器的IDE中,选择“文件”->“新建”->“项目”,然后为项目命名并选择存储位置。
步骤三:编写汇编语言程序。
在项目中创建一个新的汇编文件,使用8086汇编语言编写一个简单的程序。
例如,可以编写一个程序来输出“Hello, World!”到屏幕上。
步骤四:编译程序。
在模拟器的IDE中,选择“编译”->“编译全部”,将汇编文件编译成机器码。
步骤五:运行程序。
在模拟器的IDE中,选择“运行”->“运行”,或者直接按下F9键,来运行程序。
步骤六:调试程序。
如果程序运行出现问题,可以使用emu8086的调试功能来查找和修复错误。
在模拟器的IDE中,选择“调试”->“开始调试”,然后使用调试工具来检查程序的状态、寄存器和内存。
4. 实验结果
-------
通过本次实验,我们成功地编写、编译、运行并调试了一个简单的8086汇编语言程序。
我们实现了在屏幕上输出“Hello, World!”的目标,并且深入了解了emu8086模拟器的使用方法和8086汇编语言的编程技巧。
5. 实验分析
-------
通过本次实验,我们深入了解了8086汇编语言的编程方法和计算机硬件的基本原理。
我们学习了如何使用emu8086模拟器来编写、编译、运行和调试程序。
同时,我们也发现了自己在编程和硬件方面的不足之处,需要在以后的学习中加以改进和提高。
6. 实验总结
-------
本次实验让我们更加深入地了解了8086汇编语言和计算机硬件的基本原理,提高了我们的编程能力和问题解决能力。
同时,我们也发现了自己的不足之处,需要在以后的学习中加以改进和提高。
我们建议在未来的学习和实践中,要更加注重理论和实践的结合,提高自己的综合素质和能力。
7. 参考文献
--------
[1]emu8086官方网站. emu8086是一款学习和实验用的8086微处理器模拟器.。