8086汇编语言上机调试步骤.

合集下载

实验一、汇编语言程序的上机过程及调试

实验一、汇编语言程序的上机过程及调试

实验一、汇编语言程序的上机过程及调试<i>汇编程序调试过程</i>实验一、汇编语言程序的上机过程及调试<i>汇编程序调试过程</i>一、实验目的熟练掌握汇编语言上机汇编、连接和装入运行。

学会使用调试程序DEBUG或TD来进行程序调试。

<i>汇编程序调试过程</i>二、实验内容(一)汇编程序建立过程a.建立汇编源程序─通过b.编译为目标文件d.连接为可执行文件c.不通过,重新修改(语句错误)f.不正确,用调试工具调试,重新修改(逻辑错误)e运行正确g.完成<i>汇编程序调试过程</i>汇编语言的源程序需要编译和连接后才能在计算机上执行。

汇编语言源程序扩展名规定为.ASM。

用MASM编译源程序后,将产生源程序的目标程序文件,其扩展名为.OBJ。

再经过连接程序(LINK)把目标程序文件与库文件或其他目标文件连接在一起形成可执行文件(扩展名为.EXE)。

这时就可以运行该程序了。

DOS下可直接键入可执行程序的文件名从而运行该程序。

<i>汇编程序调试过程</i>(二)过程详细说明步骤a: 建立汇编源程序如果现在的根目录不是E盘,写入E :然后回车,再打入cd *** (***是你新建的文件夹名),例如电气031班的同学,现在你的DOS界面根目录为:E\dq031 。

打入edit然后回车,EDIT的操作画面便会出现在屏幕上,alt键可以控制工具栏操作,←↑→↓箭头控制阴影选择的上下移动。

我们现在按alt键,选中flie, 按↓选中open,回车,找到刚刚拷贝的asm 文件,回车。

选择存盘并给你输入的文件起一个文件名,形式:*** . asm ;然后回到dos环境。

<i>汇编程序调试过程</i>步骤b: 编译目标文件在DOS提示符下键入MASM *** .asm回车,(其中***为你刚才在*****RE a 中建立的文件名)这时汇编程序的输出文件可以有三个(分别:.obj .lst .crf),便会出现三次提问,在这可以一路回车即可。

80868088汇编语言上机调试与实验指导

80868088汇编语言上机调试与实验指导

2、DEBUG的常用命令
1)显示、修改寄存器命令 R
格式:R[寄存器名]
功能:若给出寄存器名,则显示该寄存器的内容并可进行修改。缺省寄存器名,则按以下格式显示所有寄存器的内容及当前值(不能修改)。
AX=0000 BX=0004 CX=0020 DX=0000 SP=0080 BP=0000 SI=0000
8)指定文件命令 N
格式:N<文件名或扩展名>
功能:指定即将调入内存或从内存写入磁盘的文件名。该命令应该用在L命令和W命令之前。
9)装入命令 L
格式1:L[起始地址][盘符号][扇区号][扇区数]
1、编辑软件
行编辑软件:
全屏编辑软件:WPS、、、WORD、PE等。
当输入、建立和修改源程序时,可任选一种编辑软件,不要用格式控制符,要求编辑完成的文件扩展名一定是.ASM。
2、汇编程序
有汇编ASM.EXE、宏汇编MASM.EXE及TASM等,一般使用宏汇编MASM.EXE,因它比ASM.EXE功能强。TASM适用于8086/8088~Pentium系列指令系统所编写的汇编语言程序,是比较先进的汇编工具。
Microsoft(R) Macro assemble Version 5.00
Copyright(C) Microsoft Corp 1981-1985,1987 ALL rights reserved
Run file [<file>.EXE]:
List File [nul.map]:
4)汇编命令 A
格式:A[起始地址]
功能:将输入源程序的指令汇编成目标代码并从指定地址单元开始存放。若缺省起始地址,则从当前CS:100地址开始存放。A命令按行汇编,主要是用于小段程序的汇编或对目标程序的修改。

汇编语言上机实验一DEBUG常用命令及8086指令使用

汇编语言上机实验一DEBUG常用命令及8086指令使用

汇编语⾔上机实验⼀DEBUG常⽤命令及8086指令使⽤实验⼀DEBUG常⽤命令及8086指令使⽤实验⽬的:通过实验掌握下列知识:1、8086指令: M OV,ADD,SUB,XCHG等2、DEBUG命令: A,D,E,F,H,R,T,U。

3、ASCII码及⽤16进制数表⽰⼆进制码的⽅法。

内容及步骤:⼀、DEBUG 命令使⽤:1、打 DEBUG 进⼊ DEBUG 控制,显⽰提⽰符 '_ '。

2、⽤命令 F100 10F 'A' 将'A'的ASCII码填⼊内存。

3、⽤命令 D100 10F 观察内存中的16进制码及屏幕右边的ASCII字符。

4、⽤命令F110 11F 41 重复上⼆项实验,观察结果并⽐较。

5、⽤命令 E100 30 31 32 …… 3F将30H-3FH写⼊地址为100开始的内存单元中,再⽤D命令观察结果,看键⼊的16进制数是什么字符的ASCII码?6、⽤H命令检查下列各组16进制数加减结果并和你的⼿算结果⽐较:(1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758,347FH7、⽤R 命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。

8、⽤R命令将AX,BX内容改写为1050H及23A8H。

⼆、8086常⽤指令练习1、传送指令1)⽤A命令在内存100H处键⼊下列内容: MOV AX,1234MOV BX,5678XCHG A X,BXMOV AH,35MOV AL,48MOV DX,75ABXCHG A X,DX2)⽤U命令检查键⼊的程序并记录,特别注意左边的机器码。

3)⽤T命令逐条运⾏这些指令,每运⾏⼀⾏检查并记录有关寄存器及IP的变化情况。

并注意标志位有⽆变化。

2、加减法指令:1)⽤A命令在内存100H处键⼊下列内容:MOV AH,34MOV AL,22ADD AL,AHSUB AL,78MOV CX,1284MOV DX,5678ADD CX,DXSUB CX,AXSUB CX,CX图略。

微机实验一熟悉8086指令编程方法及用DEBUG调试程序的方法

微机实验一熟悉8086指令编程方法及用DEBUG调试程序的方法

实验一熟悉8086指令编程方法及用DEBUG调试程序的方法一.实验目的1.掌握用DEBUG调试汇编程序的方法2.学习8086微处理器的加法运算,传送等指令的用法二.实验内容1.学会如何在DEBUG中建立,查看,调试,修改和运行汇编语言程序的全过程2.学会在DEBUG环境下调试自己编制的程序三.编制程序1.编制两个存放在寄存器中的32位二进制数相加程序2.编制两个存放在寄存器中的4位十进制数(BCD码)相加程序3.编制两个存放在内存中的32位二进制数相加程序四.实验步骤编制程序1:设一个32位二进制数的低16位放在AX,高16位放在CX中;另一个32位二进制数的低16位放在BX,高16位放在DX中,最后的结果存在CX,AX中,若还有进位位则存放在在SI中ADD AX,BX 将两个数的低16位相加,进位存到CF中ADC CX,DX 将两个数的高16位与CF相加,进位存到CF中MOV SI,0 将SI清零ADC SI,0 将进位位存至SIHLT给AX,BX,CX,DX分别赋值分步测试:给AX,BX,CX,DX重新赋值用G命令设置断点并运行:编制程序2:设一个4位十进制数(BCD码)低2位存在AL,高2位存在AH中;另一个4位十进制数(BCD码)低2位存在BL,高2位存在BH中,最后的结果存在AX中,若还有进位则存放在CX中ADD AL,BL 将两个数的低2位(即BCD码8位)相加,进位存到CF中DAA 对AL中的数进行调整,将16进制转换成10进制MOV DL,AL 将AL中的数存储到DL中MOV AL,AH 将第一个数的高2位存储到AL中ADC AL,BH 将两个数的高2位与低2位的进位CF相加,进位存至CF中DAA 对AL中的数进行调整,将16进制转换成10进制MOV CX,O 对CX清零ADC CX,0 将进位存至CX中MOV AH,AL 调整结果顺序MOV AL,DLHLT给AX,BX,CX,DX赋值编制程序3:与第一个程序原理相似,但数据初始存在内存中,不能直接调用,先转移到寄存器中。

8086程序调试步骤

8086程序调试步骤

8086程序调试步骤8086/8088汇编语⾔调试过程及步骤从Windows“开始”、“运⾏”,cmd。

进⼊DOS界⾯。

⽤cd\退到根⽬录下。

再转D盘。

进⼊相应⽂件夹。

(所需的应⽤程序在tasm或tdf⽂件夹,应先进⼊该⽂件夹。

)第⼀步:输⼊及编辑源⽂件,保存为“*.asm”⽂件1 双击“Ed”应⽤程序,如有问题,按“确定”、“是”等选项。

2 进⼊“Ed”后,在“Options”菜单下的“Set editor options”中,在“Syntax Highlighting”下,选中“Assembler”,之后“OK”。

3 菜单“File”下,选“Change dir”以改变路径,最好将路径指在该汇编程序路径。

4 菜单“File”下,选“New”即新建⼀个空⽩⽂件,或“Open”打开⼀个已存在的⽂件。

5 注意:在输⼊程序时,⽤“Tab”键来分隔“标号区”、“操作码区”、“操作数区”及“注释区”。

注意:⽤“jmp $”指令取代“hlt”指令,以便单步执⾏。

6 程序输⼊后,先点击菜单“File”下的“Save”保存,再点击“Exit”退出。

⾄此,源⽂件的编辑输⼊完成。

第⼆步:对源⽂件进⾏汇编,形成“*.obj”⽂件7 进⼊“MS-DOS”⽅式。

8 进⼊相应的路径。

9 键⼊“Tasm /zi ⽂件名”后回车,开始汇编⽂件。

汇编结束后会显⽰相关信息。

10 根据所指出的错误类型及所在⾏号,进⾏修改。

修改过程同“第⼀步”的编辑源⽂件。

11 修改完成后,重新汇编,直到提⽰:⽆错误,⽆警告。

⾄此,汇编过程完成。

第三步:对“*.obj”⽂件进⾏链接,形成“*.exe”⽂件。

12 键⼊“Tlink /v ⽂件名”,并回车,开始链接⽂件,形成“*.exe”⽂件。

⾄此,链接过程完成。

可以进⾏调试。

第四步:调试。

主要观察指令的每⼀步执⾏的结果,及整个程序执⾏后是否到达设计⽬标。

13 键⼊“Td ⽂件名”并回车。

进⼊调试界⾯。

汇编语言上机调试步骤

汇编语言上机调试步骤
汇编语言上机调试步骤
(A+B)*(C-D)为例
1.编辑原文件 编辑原文件
A)在cmd下,用edit编写扩展名为.asm的原文 件,知道原程序文件存放的路径。 B)在记事本下编写原程序,扩展名为.asm。
2.生成 生成.obj文件 生成 文件
利用汇编程序masm把原文件生成obj文件。 具体步骤如图:
使用debug 把应用程序调入内存 u反汇编命令
注意观察 AX,DS
r 显示或改变一个或多个 CPU 寄存器的内容。
注意观察 AX,DS 单步调试命令(或跟踪命令)
下一步执行的指令
注意观察DS D(转储)示一定范围内存地址的内容。
观察这些 数据
观察这些 数据
观察AX的低8位
观察A 果
在运行下输入cmd,进入到masm下面: ,进入到 下面: 在运行下输入 下面
原程序路径 及原程序
生成的目标程序及 其位置
原程序是否有语法错误,如果没 有生产obj文件,否则不能生成 obj文件。
Link生成 生成exe文件 生成 文件
link命令输入 obj文件所在位置
exe文件所在位置
调试程序观察值

汇编语言上机调试流程

汇编语言上机调试流程

其他程序开发工具中的编辑环境
EDIT YY.asm
开发过程2:源程序的汇编 汇编是将源程序翻译成由机器代码组成的 目标模块文件的过程
MASM 5.0提供的汇编程序是MASM.EXE:
MASM YY.asm
如果源程序中没有语法错误,MASM将自 动生成一个目标模块文件( YY.obj );否则 MASM将给出相应的错误信息 这时应根据错误信息,重新编辑修改源程 序后,再进行汇编
汇编程序的主要功能:

检查源程序,给出出错信息。
• 产生目标文件(.obj)和列表文件(.lst)。
• 展开宏指令。
开发过程3:目标模块的连接 连接程序能把一个或多个目标文件和库 文件合成一个可执行程序( .EXE 、 .COM 文 件):
LINK YY.obj
如果没有严重错误, LINK 将生成一个可 执行文件( YY.exe );否则将提示相应的 错误信息 这时需要根据错误信息重新修改源程序 后再汇编、链接,直到生成可执行文件
开发过程4:可执行程序的调试
Hello, World ! 经汇编、连接生成的可执行程序在操作 系统下只要输入文件名就可以运行: YY 操作系统装载该文件进入主存,并开始 运行
如果出现运行错误,可以从源程序开始排错, 也可以利用调试程序帮助发现错误 采用DEBUG.EXE调试程序:
DEBUG YY.exe
汇编程序上机调试流程
文本编辑器,如 编 辑
错误
源程序:文件名.asm 汇编程序,如 MASM.EXE 汇 编
目标模块:文件名.obj 连接程序,如 LINK.EXE 连 接 可执行文件:文件名.exe
错误
错误
调试程序,如 DEBUG.EXE

熟悉emu8086汇编语言调试环境实验报告

熟悉emu8086汇编语言调试环境实验报告

熟悉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汇编语言的编程方法和计算机硬件的基本原理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8086汇编语言上机调试步骤
1、在网络课堂-微机原理与接口技术-实验指导-汇编工具下载,下载汇编工具并解压,文件夹名为“masm”。

2、用鼠标点击“masm”文件夹。

进入该文件夹后将看到 MASM.EXE,
LINK.EXE , DEBUG.EXE3个文件进行复制操作。

3、用鼠标点击“我的电脑”再点击D: 盘,并在 D: 盘上建立新的“ MASM”文件夹,最后将上面的3个文件全部复制到该文件夹中。

(注意实验所有的文件都放在该文件夹内
4、用文本编辑软件UltraEdit-32、WINDOWS 中的记事本或其它的文本编辑器输入汇编语言程序, 注意在最后一行的 END输入完后要按一次回车键,保存的源
文件的扩展各一定要是“.asm”如: example.asm 。

(建议用记事本输入源程序,另存时,保持类型选择“所有文件”如图所示
5、进入MS-DOS方式 ( 从开始>程序>附件>命令提示符或者(从程序 > 运行输入“cmd”回车,进入MS-DOS环境。

6、进入D:>MASM文件夹
7、显示MASM文件夹内所有文件“dir”命令
8、在 DOS 提示符下进行汇编、连接、动态调试等操作。

例如: 对源文件 example.asm 进行的操作
D:\MASM\MASM example.asm;汇编源程序操作
D:\MASM\LINK example.dbj;连接并生成扩展名为 .EXE 的可执行文件
D:\MASM\DEBUG example.exe;对可执行文件进行调试
9、要求掌握的调试命令(在 DEBUG 中使用的命令
a: U - 反汇编命令
用法: -U 代码段地址:起始偏移地址如:-U CS:100
b: D - 显示内存中的数据命令
用法: -D 数据段地址:存放数据的偏移地址如:-D DS:00 20
c: T - 单步执行程序命令
用法: -T 要执行的指令条数如:-T 3
d: G - 连续执行程序命令
用法: -G=代码段地址:指令的起始偏移地址指令的结束偏移地址如: -G=CS:100 106
注意: 结束地址一定要是操作码的所在地址
e: R - 查看和修改寄存器数据命令
用法: -R 回车如:-R AX
f: F - 对内存单元填充数据命令
用法: -F 数据段地址:偏移首地址偏移未地址填入的数据如: -F DS:100 120 ff
g: Q - 退出”DEBUG“应用程序命令
10、应用例子
;二进制到BCD转换(a.asm
;将给定的一个二进制数,转换成二十进制(BCD码DATA SEGMENT RESULT DB 3 DUP(?
DATA ENDS CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS, AX
MOV AX, 123
MOV CL, 100
DIV CL
MOV RESULT, AL ; 除以 100, 得百位数
MOV AL, AH
MOV AH, 0
MOV CL, 10
DIV CL
MOV RESULT+1, AL ; 余数除以 10, 得十位数MOV RESULT+2, AH ; 余数为个位数
JMP $ CODE ENDS
END START
汇编源程序操作:
D:\MASM>MASM a.asm ;
D:\MASM>LINK a.OBJ;
对可执行文件进行调试的操作:
D:\MASM>DEBUG A.EXE
-
-U CS:0000 ;用反汇编命令”U 代码段地址:起始偏移地址“显示出程序的
表示符
执行程序前观察内存中的数据
-D DS:0000 ;用显示内存中的数据命令命令“D 数据段地址:存放数据的偏移地址”显示内存中的数据
-G=CS:0000 001E ;连续执行程序命令代码段地址:指令的起始偏移地址指令的结束偏移地址
执行程序后观察内存中的数据(结果
-D DS:0000 ; 用显示内存中的数据命令命令“D 数据段地址:存放数据的偏移地址”显示内存中的数据
-R IP 修改IP寄存器中的数据
IP 001E 显示修改前的数据
:00 输入修改的数据
-T ;单步执行程序命令(执行一条指令
-T3 ;执行3条指令
-R -R AX AX 007B :1111 -R ;查看寄存器数据命令;查看和修改寄存器数据命令;查看寄存器数据命令 -D DS:0000 ;用显示内存中的数据命令命令“D 数据段地址:存放数据的偏移地址” 显示内存中的数据 -F 数据段地址:偏移首地址偏移未地址填入的数据 -F DS:0000 0030 DF ;对内存单元填充数据 -D DS:00 ;观察内存中的数据
-Q ;退出”DEBUG“ 应用程序命令。

相关文档
最新文档