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

实验一-8086汇编语言上机调试及基本操作.

实验一-8086汇编语言上机调试及基本操作.

实验一:8086汇编语言上机调试及基本操作(验证性)1、实验目的:(1)掌握常用DEBUG命令: G,D,R,T,U,Q。

(2)掌握工具软件EMU8086。

(3)掌握完整程序设计方法的格式,能正确书写数据段,代码段等。

(4)掌握简单的数值转换算法2、实验说明:计算机中的数值有各种表达方式,这是计算机的基础。

掌握各种数制之间的转换是一种基本功。

3、程序框图:对于0-999(即000H-3E7H)范围内的二进制数4、参考程序:; 将AX中的三位数拆为三个BCD码, 并存入Result 开始的三个单元DATA SEGMENT; 数据段RESULT_1 DB 1RESULT_2 DB 1RESULT_3 DB 1DATA ENDSSTACK SEGMENT STACK ; 堆栈段STA DB 64 DUP(0)STACK_TOP DB 0STACK ENDSCODE SEGMENT; 代码段ASSUME CS:CODE , DS:DATA , ES:DATA , SS:STACKSTART:MOV AX, DATAMOV DS, AX ; 设置数据段MOV AX, STACKMOV SS, AX ; 设置堆栈段LEA SP, STACK_TOP ; 设置栈顶指针MOV AX, 2afHMOV CL, 100DIV CLMOV RESULT_1, AL ; 除以100, 得百位数MOV AL, AHMOV AH, 0MOV CL, 10DIV CLMOV RESULT_2, AL ; 余数除以10, 得十位数MOV RESULT_3, AH ; 余数为个位数MOV AX,4C00H ; 返回DOSINT 21H ;CODE ENDSEND START ; 最后一行要按回车键5、实验及报告要求:1)用合适的编辑软件编辑以上源文件并存入合适目录;要求补充注释未注释的伪指令和指令;2)分别在DOS和Windows下编译、连接生成可执行文件,比较两个环境下生成的机器码的长度和内容;试指出第2、5、7、10、14条指令的IP和机器码。

实验二 汇编语言程序上机过程

实验二  汇编语言程序上机过程

实验二汇编语言程序上机过程实验目的:熟悉8086/88汇编语言编程格式及上机设计调试过程。

如图5-1所示。

实验器材:计算机一台,DOS或WINDOWS环境,、MASM.EXE、LINK.EXE、DEBUG.EXE 等程序文件。

实验内容及步骤:1、编辑录入源程序建议EDIT后的文件名不要省略,源程序扩展名必须为ASM,不能省略。

EDIT界面如图6-1所示,激活菜单用鼠标单击或ALT+菜单名的第一个字母。

最常用的文件下拉中Save(保存)、Exit(退出,若未存盘会提示是否存盘)两个命令,如果未存盘选择Exit则会弹出如图6-2所示的对话框询问是保存退出(Yes)、不保存退出(No)、取消返回继续编辑(Cancel)。

例如:执行如下命令图6-1 EDIT的基本界面图6-2 EDIT的Exit命令对话框2、汇编汇编命令格式如下:建议源程序基本名不要省略。

例如:;扩展名“.ASM”可省略若没有错误显示如下:Microsoft (R) Macro Assembler Version 5.10Copyright (C) Microsoft Corp 1981, 1988. All rights reserved.Object filename [aa.OBJ]: ;目标文件名Source listing [NUL.LST]: ;源程序列表文件,加行号便于查错Cross-reference [NUL.CRF]: ;交叉参考文件,名字信息49576 + 420869 Bytes symbol space free0 Warning Errors ;警告错误0 Severe Errors ;严重错误,若有此类错误,不能生成目标OBJ文件有关错误信息的含义请参看教材附录C。

如果省略源程序名则第一个提示信息为:Source filename [.ASM]: ;源程序文件名3、连接连接命令格式如下:建议目标程序基本名不要省略。

汇编语言程序的上机过程及调试.

汇编语言程序的上机过程及调试.

三、连接程序
用连接程序(LINK)将若干目标模块连同库子程序 连接在一起,产生可执行文件(文件名.EXE)
四、运行调试 DEBUG
DEBUG 程序是专门为汇编语言设 计的一种调试工具,它通过单步、跟 踪、断点和连续等方式为程序员提供 了非常有效的调试手段。
格式: DEBUG [驱动器][路径][文件名][参数]
4. 汇编语言程序的上机过程及调试
编辑汇编语言源程序
汇编源程序 连接程序 运行调试
一、编辑汇编语言源程序
使用一种文本编辑软件(word、记事本、写 字板等),编辑保存一个 “文件名.ASM ”的 汇编语言源程序文件。
二、汇编源程序
用宏汇编(MASM)对汇编源程序进行汇编, 产生目标程序(文件名.OBJ)
求:
AX=___________ CX=___________
BX=___________
MOV AX,1200H
例 2:
MOV BX,3400H MOV CX,5600H
PUSH CX
PUSH AX PUSH BX POP CX POP AX
POP BX
AX=___________ CX=___________ BX=___________
修改内存单元内容 运行
装入 文件名 推出 显示和修改寄存器内容 跟踪 反汇编
写盘
W
把指定地址或CS:100开始的内存块(块字节长度由 BX:CX指定)以N命令给出的文件名写入磁盘
MOV AXቤተ መጻሕፍቲ ባይዱ1234H
例 1:
MOV BX,4321H MOV CX,AX
MOV AX,BX
ADD BX,CX HLT
DEBUG主要命令表

汇编语言程序调试及工具软件DEBUG

汇编语言程序调试及工具软件DEBUG

15
15、S检索 格式:S 起始地址 结束地址 值表 S 起始地址 L字节数 值表 功能:在指定内存范围内检索值表指定的字符,如果找到,则显示 检索到的单元地址;如果没找到,则显示提示符。 例: 设内存DS:0000H开始存入1,2,3, ‘A’ , ‘B’ , ‘A’ , ‘B’ 要求检索字符‘A’ , ‘B’ , ‘F’ -SDS:0 06 A 1542:0003 1542:0005 -SDS:0 06 B 1542:0004 1542:0006 -SDS:0 06 F -
通过调试工具检查功能的正确性。
2
二、调试工具软件DEBUG
1、简介 面向汇编语言的动态调试工具,有19条命令。 通过跟踪、测试对.EXE和.COM文件动态跟踪调试。 查找文件中的错误及运行结果。 可以直接编写、调试小程序。 2、DEBUG的启动方式
(1)在DOS状态下直接输入
C:DEBUG ADD.EXE (2)在DOS状态下输入 C:DEBUG -NADD.EXE -L
17
16
16、C比较 格式:C 起始地址 结束地址 目的地址 C 起始地址 L字节数 目的地址 功能:比较两个数据块内容,如果不相同,则显示其内容和地址。 默认为数据段,目的地址只包含偏移地址。 例:把ES:0开始的10个字节内容与DS:100H开始的区域进行比较, 找出与之不同的内容。 -CES:0 LA DS:100 执行结果: 82DD:0000 03 2D 82CD:100 82DD:0002 00 02 82CD:102 82DD:0003 05 09 82CD:103 82DD:0008 04 66 82CD:108 17、Q退出 格式:-Q 功能:退出DEBUG命令。
9
例2:从CS:0004开始执行3条指令。 -T=4 3

8086汇编语言学习(二)8086汇编开发环境搭建和Debug模式介绍

8086汇编语言学习(二)8086汇编开发环境搭建和Debug模式介绍

8086汇编语⾔学习(⼆)8086汇编开发环境搭建和Debug模式介绍1. 8086汇编开发环境搭建 在上篇博客中简单的介绍了8086汇编语⾔。

⼯欲善其事,必先利其器,在8086汇编语⾔正式开始学习之前,先介绍⼀下如何搭建8086汇编的开发环境。

汇编语⾔设计之初是⽤于在没有操作系统的裸机上直接操作硬件的,但对于⼤部分⼈来说,在8086裸机上直接进⾏编程将会⾯临各种困难。

好在我们可以使⽤软件模拟器来模拟硬件进⾏8086的学习实践。

在《汇编语⾔》中作者推荐通过windows环境下的masm和debug进⾏学习。

masm介绍: masm是⼀款DOS下的汇编⼯具包,在8086汇编的学习中我们需要其中的⼏个⽂件,分别是masm.exe,link.exe。

masm.exe 汇编器,⽤于将⽂本格式的汇编语⾔源⽂件编译为.obj结尾的⼆进制⽂件,其⽣成的.obj结尾的⼆进制⽬标⽂件是被编译的源⽂件的对应的机器码。

单独的源程序⽬标⽂件通常是⽆法直接运⾏的,还需要和互相依赖的其它同样编译完成的⼆进制⽂件链接在⼀起才能⽣成最终的可执⾏⽂件(⽐如所需要的静态库函数) 。

因此,obj⽂件通常也被叫做中间⽂件。

link.exe 链接器,obj⽂件需要通过链接才能转换成可执⾏程序,⽽链接器就是负责完成这⼀任务的。

链接器能将多个obj⽬标⽂件以及其所依赖的库程序进⾏统⼀处理(例如多个⽬标⽂件中指令、数据内存地址的偏移处理),并⽣成可执⾏⽂件。

debug介绍: debug.exe 调试器,windows提供了⼀个在dos中调试8086汇编程序的⼯具debug.exe,提供了展⽰程序运⾏时CPU中各寄存器、内存中数据,指令级的单步调试等功能。

debug程序的使⽤会在本篇博客的后半段进⾏详细介绍。

64位操作系统兼容性问题: 由于《汇编语⾔》⼀书出版较早,当时的windows系统还是32位的,32位windows系统都默认安装了masm与debug,能打开dos窗⼝直接使⽤。

在Proteus中调试8086程序的方法

在Proteus中调试8086程序的方法
注意上图中红色部分必须填写,完成后点击 OK。 步骤 3:
选择 Source -> Add/Remove Source files,选择工具链为 MASM32。点击 New 添加需要 编译的.asm,并选择 OK。
选择 Source -> Builde All,成功后即可点击 Proteus 界面中的运行键运行或调试程序。
说明:红色部分为规定的格式,用于说明该程序编译连接生成.exe 程序、所用指令为 8086 指令、声明各个段、程序的开始和结束。
三、 通过 Proteus 调用工具链编译
步骤 1: 用文本编辑程序将下述批处理命令保存在文件中 MASM32.bat,保存路径可任选。
c:\\masm32\bin\ml /Zm /Zd /Zi /Zf /c %1 set str=%1 set str=%str:~0,-4% c:\\masm32\bin\link16 /CO /NOD /CODEVIEW /stack:256 %str%.obj,%str%.exe,nul.map,,
在 Proteus 中调试 8086 程序的方法
一、 MASM32 的安装方法
采用 MASM32 编译程序可生成具有调试信息的可执行.exe 程序,供 Proteus 调试。 MASM32 的安装方法为:双击 MASM32 的安装程序 install.exe,即可完成安装。安装目录 可选择 C 盘或 D 盘等。下面假设将 MASM32 安装在 C:\masm32 目录下。
注:红色部分为 masm32 安装的目录。如果安装的 d 盘,则“c:\masm32\bin\ ”应为 “d:\masm32\bin\”。
步骤 2: 在 Proteus 中选择 Source -> Define Code Generation Tools,弹出对话框后点击 New,并选

汇编语言程序设计上机步骤与调试方法

汇编语言程序设计上机步骤与调试方法

汇编语言程序设计上机步骤与调试方法在汇编语言程序设计中,上机步骤与调试方法是非常重要的,它们能够帮助程序员更好地编写和调试程序。

本文将介绍汇编语言程序设计的上机步骤以及常用的调试方法,帮助读者更好地理解和应用这些知识。

一、上机步骤1. 准备工作在开始上机之前,我们需要做一些准备工作。

首先,确认计算机已经连接好必要的硬件设备,例如键盘、显示器等。

其次,确保操作系统和开发环境已经正确安装并能够正常运行。

最后,根据需要准备好所需的汇编语言文档和程序样例。

2. 创建新项目在开始编写汇编语言程序之前,我们需要创建一个新的项目。

在项目中,我们可以组织和管理相关的文件和代码。

通常,我们会选择一个合适的集成开发环境(IDE)来创建和管理项目。

3. 编写程序在创建项目之后,我们可以开始编写汇编语言程序。

首先,我们需要了解目标机器的指令集和寄存器,以便正确地编写程序。

然后,根据需求,我们可以使用不同的指令、寄存器和内存来实现所需的功能。

在编写程序的过程中,注意代码的可读性和易于维护性是非常重要的。

4. 调试程序编写完汇编语言程序后,我们需要进行调试,以确保程序的正确性和稳定性。

调试是一个迭代过程,通常包括以下步骤:- 设置断点:在程序中设置断点,以便在特定位置停止程序的执行。

- 单步执行:通过逐条执行程序的指令,我们可以观察程序的执行过程,并检查各寄存器和内存的值。

- 监视变量:在调试过程中,我们可以监视程序中的变量值,以验证其正确性。

- 查看输出:观察程序的输出结果,与预期结果进行比较,以确定程序是否按照预期执行。

- 修复错误:如果发现程序中存在错误,我们需要对程序进行修改和调整,直到问题解决为止。

5. 运行程序在完成程序的调试之后,我们可以运行程序并观察其运行效果。

在运行过程中,我们可以测试程序的各种功能,以确保其正常工作。

二、调试方法1. 打印输出在调试汇编语言程序时,打印输出是一种常用且简单有效的调试方法。

微机原理80868088汇编语言上机基本操作指

微机原理80868088汇编语言上机基本操作指

8086/8088汇编语言,是在DOS环境下运行的编程语言,汇编语言是针对8086/8088 CPU的,凡兼容80X86指令系统的CPU ,都可以正常运行调试。

如目前使用的Windows 2000 / Windows 2003 / Windows XP等系统下都可以编辑、调试汇编语言程序。

一、进入编辑调试环境1.开始→运行,在运行框输入CMD而后回车,即进入DOS环境。

2.开始→程序→附件→C:命令提示符,也可进入DOS 环境。

二、使用到的软件程序1.源程序编辑软件:EDIT.EXE,也可用其他任意编辑软件,如Windows 环境下记事本,但最后扩展名要改为.ASM,否则无法汇编。

2.汇编程序(MASM.EXE或TASM.EXE),将编辑好的.ASM源程序汇编成目标文件.OBJ。

OBJ是程序编译后的二进制文件,在通过链接器和资源文件链接就成exe文件,OBJ只给出了程序的相对地址,而EXE是绝对地址。

3.连接程序(LINK.EXE或TLINK.EXE),LINK又称链接器,把一个或多个目标文件(.obj)链接成可执行(.exe)文件。

4.调试程序(DEBUG.EXE或TD.EXE),DEBUG,俗称“抓臭虫”,DOS 系统有力的侦错,跟踪程序运行,检查系统数据的工具程序,它是在字符界面下以单字符命令方式工作。

要很好地使用它必须具备一定的汇编程序设计和硬件基本知识的能力,当然,它为汇编语言程序员提供了有效的调试手段。

需要说明的是,EDIT、MASM、LINK、DEBUG是微软操作系统推出的汇编连接调试工具。

在一般教学上使用就足够了。

而TASM、TLINK、TD是Borland公司推出的。

到目前为止,TASM的最后一个版本是5.0版,这个版本支持WIN32编程,并单独为WIN32编程附带有一整套32位程序:32位的编译器TASM32.EXE、连接器TLINK32.EXE和资源编译器BRC32.EXE。

8086汇编语言程序设计实验指导书.

8086汇编语言程序设计实验指导书.

汇编语言上机实验指导书一、概述上机实验总学时为16学时,其中综合性实验为2学时。

实验共有6项暂定为8次,每次2学时。

1.实验辅导的主要内容实验辅导的内容包括每个实验的实验目的;实验内容;对实验的算法及实验方法的必要说明;实验准备;实验步骤;实验报告要求;实验程序及参考框图。

开始的实验介绍较细,后面的实验简要介绍。

2.实验的软硬件要求关于汇编语言程序设计的硬件要求不高,有IBM-PC/XT即可,但应有彩色显示器以便进行图形实验。

软件方面应有MASM.EXE5.0版(包括LINK.EXE),与MS-DOS版本配套的DEBUG程序和EDIT.EXE编辑软件(其它编辑软件也可以)。

3.加强实践能力的培养实验目的不光是为了验证书本理论,更重要的是对实践能力的培养。

其中包括:实际调试程序的能力,例如修改程序参数的能力,查看结果的能力,设置断点调试运行的能力等;开发汇编语言应用程序的能力,例如应用有关汇编软件的能力,进行系统调用和BIOS功能调用的能力,进行模块程序设计的能力等。

对某一问题用不同的程序实现的能力,例如我们为每个实验提供了参考程序(或程序段),目的是让每个实验者参照样板程序将实验成功地实现,在掌握其方法后,自己改变程序或自己编制程序加以实现。

实验一汇编语言运行环境及方法、简单程序设计(2学时、验证性)1.实验目的:(1) 熟悉汇编语言运行环境和方法(2)了解如何使用汇编语言编制程序(3) 熟悉DEBUG有关命令的使用方法(4) 利用DEBUG掌握有关指令的功能(5) 利用DEBUG运行简单的程序段2.实验内容(1)学会输入、编辑汇编语言程序(2)学会对汇编语言程序进行汇编、连接和运行(3)进入和退出DEBUG程序(4)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。

对于U命令、N命令、W命令等,也应试一下。

3.实验准备(1)仔细阅读有关汇编语言环境的内容,事先准备好使用的例子。

  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“ 应用程序命令。

相关文档
最新文档