汇编语言程序调试软件
PADS学习教程
PADS学习教程PADS(PowerPC Assembly Language Debugger Simulator)是一款用于学习和调试PowerPC汇编语言的软件工具。
本文将介绍PADS的基本功能和使用方法,以及学习PowerPC汇编语言的一些建议。
一、PADS的基本功能PADS提供了一个模拟的PowerPC处理器环境,可以逐条执行PowerPC汇编语言指令,以实时调试和跟踪程序的执行过程。
它具有以下主要功能:1.单步执行:PADS可以逐条执行程序指令,通过单步执行可以观察每条指令的执行结果,并监测寄存器和内存的变化。
2.断点调试:PADS允许在程序中设置断点,当程序执行到断点处时会停下来等待进一步的调试操作。
3.观察寄存器和内存:PADS可以显示程序运行时的寄存器和内存状态,包括寄存器的值和内存中的数据。
4.查看汇编码:PADS可以将程序反汇编为汇编语言,方便对程序进行分析和调试。
5.仿真寄存器和内存:PADS可以设定寄存器和内存的初始值,以及修改和保存寄存器和内存的值。
二、PADS的使用方法2. 创建项目:在PADS中创建一个新的项目,可以选择一个已有的PowerPC汇编程序,或者自己编写一个新的程序。
4.调试程序:在程序中设置断点,可以通过单步执行和观察寄存器和内存的方式来调试程序,可以观察程序的执行结果和对比期望结果,找出程序的错误。
5.优化程序:通过观察程序执行过程中的寄存器和内存状态,可以针对性地优化程序,提高程序的效率。
三、学习PowerPC汇编语言的建议1. 学习汇编基础:在学习PowerPC汇编语言之前,先学习一些基础的汇编知识,了解汇编语言的基本概念和常用指令,熟悉寄存器和内存的访问方式。
2. 学习指令集:详细研读PowerPC汇编指令集手册,了解每个指令的作用和使用方法,通过实际编写和调试程序来加深理解。
3. 分析示例程序:找一些PowerPC汇编语言的示例程序,通过分析和调试这些程序,理解指令的用法,掌握常用的编程技巧。
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命令按行汇编,主要是用于小段程序的汇编或对目标程序的修改。
第4章 汇编语言程序设计及仿真调试(1)
第4 章
4.1 4.2
汇编语言程序设计及仿真调试
指令系统 汇编语言程序设计
4.3 典型汇编语言程序设计举例 4.4 利用Keil uVision集成开发环境调试程序 利用Keil uVision集成开发环境调试程序
4.5 利用ISP工具将程序下载到单片机中验证程序 利用ISP工具将程序下载到单片机中验证程序
传送字节变量(数据存储器、I/O口 传送字节变量(数据存储器、I/O口) 外部送数到A 外部送数到A 程序存储器送数到A 程序存储器送数到A 加 带借位减 乘 除 绝对转移(短转移、长转移) 绝对转移(短转移、长转移) 有条件转移 绝对调用(长调用) 绝对调用(长调用) 子程序返回 第一操作数与第二操作数比较不等则转移 与 或 异或 3/80
程序存储器 PC 11100101 操作码 60H 01100000 直接地址
RAM 89H
89H ACC 0E0H
9/80
增强型8051单片机实用开发技术
1.立即寻址
指令中的源操作数是立即数,叫做立即寻址。 指令中的源操作数是立即数,叫做立即寻址。立即数的类型可 以是:二进制(B) 十进制、十六进制(H) 整数、序数或者字符。 (B)、 (H)、 以是:二进制(B)、十进制、十六进制(H)、整数、序数或者字符。 立即数的字长可以是8位或16 16位 立即数的字长可以是8位或16位。 例如: 例如: MOV A,#61H 这条指令是把61H这个数据送入到累加器A 61H这个数据送入到累加器 这条指令是把61H这个数据送入到累加器A中。 例如: DPTR,# ,#2050H 例如: MOV DPTR,#2050H 这条指令是把2050H这个数据送入到数据指针DPTR 2050H这个数据送入到数据指针DPTR中 这条指令是把2050H这个数据送入到数据指针DPTR中。
gdb调试汇编语言
gdb调试汇编语言
GDB是一个功能强大的调试器,可以用来调试汇编语言程序。
在使用GDB调试汇编语言程序时,你需要首先确保程序已经被编译成可执行文件,并且包含了调试信息。
接下来,你可以通过以下步骤使用GDB来调试汇编语言程序:
1. 启动GDB,在命令行中输入`gdb`命令,然后在GDB提示符下输入可执行文件的名称。
2. 设置断点,你可以使用`break`命令在程序中设置断点,以便在特定的位置停止程序的执行。
例如,你可以输入`break main`来在程序的主函数处设置断点。
3. 运行程序,输入`run`命令来运行程序,程序会在设置的断点处停止执行。
4. 单步执行,使用`stepi`命令来逐条执行汇编指令,这样你可以逐步跟踪程序的执行过程。
5. 查看寄存器和内存,使用`info registers`命令可以查看寄
存器的值,而使用`x`命令可以查看内存中特定地址的内容。
6. 检查堆栈,使用`backtrace`命令可以查看当前的函数调用堆栈,而使用`frame`命令可以切换到不同的堆栈帧。
7. 观察变量,使用`print`命令可以查看特定变量的值,这对于检查程序状态非常有用。
8. 继续执行,当你想让程序继续执行时,可以使用`continue`命令来让程序一直执行到下一个断点或者程序结束。
以上是使用GDB调试汇编语言程序的基本步骤,当然,在实际调试过程中可能会有更复杂的情况需要处理,但是掌握了这些基本操作之后,你就可以更有效地使用GDB来调试汇编语言程序了。
希望这些信息对你有所帮助。
keil调试 汇编语言
keil调试汇编语言首先要介绍一下Keil,Keil是一种专门用于嵌入式系统中的集成开发环境,它可以用来编译,调试和仿真嵌入式系统中的C和汇编程序。
在Keil中调试汇编语言需要掌握几个方面:1. Keil中的窗口在Keil中,有许多窗口可以用来查看或编辑代码,例如Project 窗口、Command窗口、Disassembly窗口等。
其中比较重要的是Debug 窗口,它可以用来监视程序的执行,包括CPU寄存器值、内存地址和指令执行情况等。
同时,它也可以用来设置断点、单步执行程序等调试操作。
2.调试命令在Keil中,有许多调试命令可以用来操作程序的执行。
例如,Step Over可以用来执行当前指令,并移动到下一条指令,Step Into 可以用来进入当前指令所调用的子程序中执行,而Step Out则可以用来退出当前子程序的执行。
除此之外,还有一些命令可以用来设置断点、修改寄存器值等调试操作。
3.汇编指令在调试汇编语言程序时,需要熟悉各种汇编指令的用途和语法。
例如,MOV可以用来将一个值从一个寄存器移动到另一个寄存器中,ADD可以用来将两个值相加并将结果存储到一个寄存器中等等。
同时,还需要了解一些特殊的汇编指令,例如INT可以用来触发中断,JMP可以用来跳转到指定的地址等。
4.内存映像调试汇编语言程序时,可以通过内存映像来查看程序在内存中的执行情况。
在Keil中,可以用Memory窗口来查看各个地址中的值,并根据需要修改它们。
同时,也可以使用Watch窗口来监视某个变量或内存地址的变化,并在程序执行时实时显示它们的值。
总体来说,调试汇编语言程序需要先熟悉Keil中的窗口和调试命令,同时还需要了解汇编指令的语法和用途,并能够使用内存映像来查看程序在内存中的执行情况。
此外,还需要有耐心和细心,仔细观察程序的执行情况,并通过断点和单步执行等操作来排查程序中的问题。
TD调试软件使用方法
TD调试软件使用方法TDebug(文件名TD.EXE)是调试8086汇编语言的工具软件。
TD主要用来调试可执行文件(.EXE文件)。
它具有功能强、使用灵活方便、人-机界面友善、稳定可靠等特点,能提高工作效率,缩短调试周期。
1.启动方法使用TDebug软件时,必须有以下文件:TD.EXE——可执行文件。
在DOS状态下键入TD即可启动TD软件。
例如:C:\SY86>TD 文件名 或C:\SY86>TDF1-Help F2-Bkpt F3-Mod F4-Here F5-Zoom F6-Next F7-Trace F8-Step F9-Run 10-Menu 如果在键入TD之后又键入了文件名,则TD就将指定的文件装入以供调试;如果不指定文如果在键入TD之后又键入了文件名,则TD就将指定的文件装入以供调试;如果不指定文件名,则可以在TD的菜单操作方式下取出文件,然后进入调试状态。
2.窗口功能和操作进入TD调试软件后,屏幕上出现五个窗口,系统现场信息分别显示在各窗口内。
如上图所示。
图中,第一行为菜单信息,最后一行为热键信息,中间即为窗口信息。
窗口由五部分组成,利用Tab键可在各窗口之间进行切换。
⑴CPU窗口:CPU窗口分别显示段地址寄存器cs、偏移地址、十六进制机器码和源程序代码。
“►”对应的偏移地址表示当前PC指针位置;用“↑”“↓”键移动光标可以使窗口上下卷动以便观察前、后的程序代码信息及地址信息;⑵寄存器(Registers)窗口:寄存器窗口显示所有寄存器信息。
用“↑”“↓”键移动光标可以选中任一个寄存器。
选中寄存器后按数字键即会弹出一个窗口:窗口提示输入数据。
此时在光标位置处输入数字就改变了该寄存器的数值;⑶标志窗口:标志窗口显示各标志位的当前状态。
用“↑”“↓”键移动光标选中某一标志后,按回车键即可改变该标志状态;⑷堆栈窗口:堆栈窗口显示堆栈寄存器ss的信息,包括堆栈偏移地址和堆栈数据。
Keil软件仿真调试
Keil软件仿真调试简介Keil软件是ARM公司推出的一款集成开发环境(IDE),提供了编译器、调试器、仿真器、代码库和辅助工具等多种功能。
其中仿真器(Simulator)是Keil软件的主要功能之一,可以方便地对嵌入式系统进行模拟测试和调试,以达到开发的目的。
在Keil软件中,仿真调试(Simulation Debugging)是一种常见的调试方式,其主要思想是通过用实际输入数据替换程序输入参数,执行程序并输出实际的运行结果,与预期结果进行比较,进而找到程序的错误以及解决问题。
仿真调试的原理当我们进行仿真调试时,Keil软件会将程序文件加载到仿真器中进行模拟的运行,仿真器负责模拟CPU、中断、时钟、IO等外设的运行状态,使得程序在仿真环境中能够运行。
仿真调试的实现主要有两种方式:单步调试和断点调试。
单步调试单步调试(Step-by-Step Debugging)指的是在程序运行过程中,每执行一行指令都会停止,通过查看每个变量的值来进行调试的过程。
单步调试可以帮助程序员快速定位程序中可能的问题,并及时进行修改。
在Keil软件中,单步调试可以通过F10和F11快捷键来实现。
断点调试断点调试(Breakpoint Debugging)指的是在程序中设置停止执行的断点,当程序执行到断点处时,程序就会停止运行,执行者就可以检查变量值、栈信息等各种环境,找到程序的问题。
在Keil软件中,断点调试可以通过F9键来设置。
常用仿真调试功能Keil软件提供了众多仿真调试功能,常用的功能包括:数据查看窗口在Keil软件中,可通过打开数据查看窗口(Watch Window)来查看变量值的对应信息。
数据查看窗口主要由寄存器、内存和变量组成,可以通过添加、删除变量、地址以及其他类型来满足用户不同的需求。
显示ASM窗口ASM窗口是一个汇编指令窗口,可以将C语言源程序翻译成相应的汇编指令。
采用汇编语言的程序员可以在此窗口中检查程序的底层代码实现、地址分配等信息。
dos汇编debug基本命令程序
dos汇编debug基本命令程序DOS汇编(Debug)基本命令程序在学习和编写DOS汇编语言程序时,了解和掌握调试程序是非常重要的。
DOS提供了一个非常有用的调试器,即Debug。
Debug是一个基本的汇编语言调试程序,它可以让程序员在运行程序时进行单步执行,查看寄存器和内存的内容,以及进行程序的调试和错误修复。
本文将介绍DOS汇编(Debug)基本命令程序。
一、启动Debug要启动Debug,可以在DOS命令提示符下输入"debug"命令,然后按Enter键。
此时,会显示Debug的提示符"-",表示Debug 已经启动。
二、基本命令Debug提供了一系列命令,用于执行和调试汇编语言程序。
下面是一些常用的基本命令:1. a(assemble):将汇编指令翻译成机器码,并将其写入内存中。
例如,输入"a 100"表示从内存地址100开始输入汇编指令。
2. d(dump):显示内存中的内容。
可以使用"d"命令来查看内存中的指令和数据。
例如,输入"d 100"表示从内存地址100开始显示内存内容。
3. e(enter):修改内存中的指令或数据。
可以使用"e"命令来修改内存中的指令或数据。
例如,输入"e 100"表示修改内存地址100处的内容。
4. g(go):执行程序。
使用"g"命令可以让程序开始执行。
例如,输入"g"表示开始执行程序。
5. r(register):显示和修改寄存器的内容。
可以使用"r"命令来查看和修改寄存器的内容。
例如,输入"r ax"表示显示或修改AX寄存器的内容。
6. t(trace):单步执行程序。
使用"t"命令可以让程序以单步执行的方式运行。
汇编语言程序调试工具DEBUG浅析
第29卷第6期2008年12月衡阳师范学院学报Jo ur nal of Hengya ng Normal Univer sity No.6Vol.29Dec .2008汇编语言程序调试工具D EBUG 浅析龙祖强1,2,梁昔明2,杨利容1(11衡阳师范学院物理与电子科学系,湖南衡阳 421008;21中南大学信息科学与工程学院,湖南长沙 410083)摘 要:D E BU G 是汇编语言程序的重要调试工具,也是学好汇编语言的难点之一。
本文探讨了DE B U G 在寄存器、内存、堆栈以及指令等教学内容中的重要作用,阐述了利用DE B U G 调试程序的方法,以帮助学生利用这一工具学好和用好汇编语言。
关键词:DE BU G;汇编语言;寄存器;堆栈中图分类号:TP273+14文献标识码:A文章编号:1673—0313(2008)06—0033—031 引 言汇编语言是计算机提供给用户的最快最有效的语言,也是能够利用硬件特性并能直接控制硬件的唯一语言。
在对于存储空间有限和时间要求很高的场合,汇编语言是必不可少的。
因此,许多高校的计算机及相关专业均开设了“汇编语言程序设计”这门课。
在以往的教学过程中,学生普遍反映这门课难学,教师也感觉难教。
造成这一现象的一个主要原因就是,汇编语言的调试工具D E BU G 不容易使用,观察结果不直观且容易出现误读误判。
但是,学会使用DEBU G 是我们学会汇编语言的关键一步,我们不能因为它难以掌握就抛弃它。
如果抛开它直接学习汇编语言,则会走许多弯路;如果利用好这个工具,我们就能比较容易进入汇编语言程序设计的大门。
D E BU G 是DOS 中的一个外部命令,从DOS1.0起就带有此命令,因此可见此命令的重要性了。
此命令的功能非常强大,可以解决许多问题。
它既可以帮助我们看见汇编语言里很多抽象的东西,也可以帮助我们练习汇编指令,还可以帮助我们调试编写的汇编程序等。
可见,有了它,我们学习汇编语言就事半功倍了。
KeiluVision2软件使用
KeiluVision2软件使⽤Keil uVision2软件使⽤Keil uVision2软件是众多单⽚机应⽤开发的优秀软件之⼀,它集编辑,编译,仿真于⼀体,⽀持汇编语⾔、PLM 语⾔和 C 语⾔的程序设计,界⾯友好,易学易⽤。
下⾯介绍Keil uVision2软件的使⽤⽅法1、⾸先,双击桌⾯上的这个图标。
进⼊Keil uVision2 后,屏幕如下图所⽰。
⼏秒钟后出现编辑界启动Keil uVision2时的屏幕进⼊Keil uVision2后的编辑界⾯简单程序的调试学习程序设计语⾔、学习某种程序软件,最好的⽅法是直接操作实践。
下⾯通过简单的编程、调试,引导⼤家学习Keil uVision2软件的基本使⽤⽅法和基本的调试技巧。
1)建⽴⼀个新⼯程单击Project菜单,在弹出的下拉菜单中选中New Project选项2)然后选择你要保存的路径,输⼊⼯程⽂件的名字,⽐如保存到E:DPJ\RW1⽬录⾥,⼯程⽂件的名字为LED,如下图所⽰,然后点击保存。
3)这时会弹出⼀个对话框,要求你选择单⽚机的型号,你可以根据你使⽤的单⽚机来选择,Keil uVision2⼏乎⽀持所有的51核的单⽚机,我这⾥还是以⼤家⽤的⽐较多的Atmel 的89C51来说明,如下图所⽰,选择89C51之后,右边栏是对这个单⽚机的基本的说明,然后点击确。
4)完成上⼀步骤后,屏幕如下图所⽰到现在为⽌,我们还没有编写⼀句程序,下⾯开始编写我们的第⼀个程序。
5)在下图中,单击“File”菜单,再在下拉菜单中单击“New”选项新建⽂件后屏幕如下图所⽰:此时光标在编辑窗⼝⾥闪烁,这时可以键⼊⽤户的应⽤程序了,但笔者建议⾸先保存该空⽩的⽂件,单击菜单上的“File”,在下拉菜单中选中“Save As”选项单击,屏幕如下图所⽰,在“⽂件名”栏右侧的编辑框中,键⼊欲使⽤的⽂件名,同时,必须键⼊正确的扩展名。
注意,如果⽤C语⾔编写程序,则扩展名为(.c);如果⽤汇编语⾔编写程序,则扩展名必须为(.asm)。
实验一汇编语言上机及Debug调试
实验一汇编语言程序上机过程以及调试(1)一、预习内容1.工具软件MASM、LINK的使用2.常用DEBUG命令的使用: G,D,R,T,U,Q3.完整程序设计方法的格式。
二、目的要求1.掌握常用工具软件MASM、LINK的使用2.掌握常用DEBUG命令: G,D,R,T,U,Q 能灵活使用这些命令调试程序3.掌握完整程序设计方法的格式,能正确书写数据段,代码段等。
三、实验内容比较两个字符串string1和string2所含的字符是否相同,如果相同则显示’Match'否则显示’No match’.请读程序,并将程序补充完整。
DSEG SEGMENTstring1 db 'Move the cursor backward.'string2 db 'Move the cursor backward.'mess1 db 'Match.',13,10,'$'mess2 db 'No match.',13,10,'$'DSEG ENDSCSEG SEGMENTassume cs:CSEG, ds:DSEG, es:DSEG,MAIN PROC FARstart: mov ax, dsegmov ds, axmov es, axlea si ,string1①cld②repz cmpsbjz matchlea dx,mess2jmp short dispmatch:lea dx,mess1disp: mov ah,09hint 21hmov ax, 4c00hint 21hMAIN ENDPCSEG ENDSend start实验步骤:1)用文字编辑工具(记事本或EDIT)将源程序输入完整后保存在d:\masm下,注意保存时将文件扩展名改为.asm(如test1.asm)。
2)屏幕左下角”开始”–“运行”输入cmd ,进入dos命令操作,先用d: 和cd mas m 命令改变路经,接着用”masm + 文件名” (如masm test1,这里文件名可以不带扩展名)对源文件进行汇编,产生.obj文件和.LST文件。
uVision4使用入门汇编
“是否要把标准8051的启动代码添加到工程文件?” 对于汇编语言,选“否”; 对于C语言,一般选“否”;如果用某些增强功能需要初始化配置 时,选“是”。 至此,一个名为“test”的空白Keil C51 工程建立。
湖南理工学院信息与通信工程学院电子信息教研室制作
uvision_4使用指南
工程创建与设置
工程创建与设置
湖南理工学院信息与通信工程学院电子信息教研室制作
uvision_4使用指南
(2)添加源程序到工程中 在选择文件对话框中先选择
文件类型为 “C Source file (*.c)” ,对话框将出现刚保存的文件 “test.C”,选择“test.C”,再按一 下 “Add ”按钮,最后按一下 “Close ”按钮退出添加。
湖南理工学院信息与通信工程学院电子信息教研室制作
uvision_4使用指南
uvision_4使用指南
工程创建与设置
4. 编译与汇编
单击Keil C51工具栏的
图标,编译或汇编当前源程序。其
结果会显示在输出窗口内。如果是“0 Error(s),0Warning(s).”,就表示
程序语法上没有问题;如果存在错误或警告,会指出出错在第几行,双
击指出错误,则有 指向错误行。
编译或汇编会生成 HEX 格式的程序文件“test.hex”,该文件可以被
uvision_4使用指南 Keil uVision在调试程序,软件仿真方面也有很强大的功能,既可
以调试C语言程序,也可以调试汇编语言程序。 Keil C51 V9.00 即09年发布的最新版本uVision 4,比以前的版本外
观改变比较大,界面感觉舒服一些。 安装的方法和普通软件差不多,这里就不做介绍了。
用KEIL-uvsion-3软件调试程序的流程和方法
用KEIL uvsion 3软件调试程序的流程和方法(1)用汇编语言或C语言创建源程序使用菜单“File->New”或点击工具栏的新建文件按扭,即可在项目窗口的右侧打开一个新的文本编辑窗口。
编辑完文件后,保存该文件,注意必须加上扩展名(汇编语言源程序一般用asm或a51为扩展名)。
(2)创建一个项目,从器件库中选择目标器件,配置工具设置点击“Project->New Project…”菜单,出现一个对话框,要求给将要建立的工程起一个名字(默认保存类型为uv3/uv2)下一步,选择目标CPU(即你所用芯片的型号),(先选择生产该CPU的公司,然后点“+”,从下拉列表中即可看到具体的CPU),然后点击“确定”按钮回到主界面。
此时在工程窗口的文件页中,出现了“Target 1”,前面有“+”号,点击“+”号展开,可以看到下一层的“Source Group1”,这时的工程是一个空的工程。
(3)向项目中添加源文件。
右击界面左边项目窗口中的“Source Group1”,选择“Add file to Group” Source Group1“,出现” Add file to Group” Source Group1“对话框。
在对话框下面的”文件类型“改为”*.*“,找到需加入的.asm文件,双击该文件名,即可把该文件加入项目。
(4)设置工程项目点击左边Project窗口中的Target1,然后使用菜单”Project->Options for target “target1”“即出现对工程设置的对话框。
共八个页面,大多数取默认值即可。
选几个比较重要的做下说明:Target页Xtal:晶振频率值,默认值是所选目标CPU的最高可用频率值,该数值与最终产生的目标代码无关,仅用于软件模拟调试时显示程序执行时间。
正确设置该数值可使用显示时间与实际所使用时间一致,一般将其设置成与你的硬件所用晶振频率相同。
汇编语言程序设计的实验环境及上机步骤
汇编语言程序设计的实验环境及上机步骤一、实验环境汇编语言程序设计的实验环境如下:1.硬件环境微型计算机(Intel x86系列CPU)一台2.软件环境⏹Windows98/2000/XP操作系统⏹任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等)⏹汇编程序(MASM.EXE或TASM.EXE)⏹连接程序(LINK.EXE或TLINK.EXE)⏹调试程序(DEBUG.EXE或TD.EXE)文本编辑器建议使用EDIT或NOTEPAD,汇编程序建议使用MASM.EXE,连接程序建议使用LINK.EXE,调试程序建议使用TD.EXE。
二、上机实验步骤注:以下步骤适用于除汇编语言程序设计的实验一到实验四外的所有实验(实验一到实验四仅使用TD.EXE)。
1.确定源程序的存放目录建议源程序存放的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。
如果没有创建过此目录,请用如下方法创建:通过Windows的资源管理器找到C盘的根目录,在C盘的根目录窗口中点击右键,在弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。
请把MASM.EXE、LINK.EXE、DENUG.EXE和TD.EXE都拷贝到此目录中。
2.建立ASM源程序建立ASM源程序可以使用EDIT或NOTEPAD(记事本)文本编辑器。
下面的例子说明了用EDIT文本编辑器来建立ASM源程序的步骤(假定要建立的源程序名为HELLO.ASM),用NOTEPAD(记事本)建立ASM源程序的步骤与此类似。
在Windows中点击桌面左下角的“开始”按钮→选择“运行”→在弹出的窗口中输入“ C:\ASM\HELLO.ASM”,屏幕上出现EDIT的编辑窗口,如图1所示。
图1 文本编辑器EDIT的编辑窗口窗口标题行显示了EDIT程序的完整路径名。
紧接着标题行下面的是菜单行,窗口最下面一行是提示行。
菜单可以用Alt键激活,然后用方向键选择菜单项,也可以直接用Alt-F打开File文件菜单,用Alt-E打开Edit编辑菜单,等等。
汇编语言的编程步骤与调试方法
汇编语言的编程步骤与调试方法一、汇编源程序的建立1.使用工具(1)EDIT,记事本等文本编辑软件,编辑源程序,保存为.asm文件;(2)ASM,MASM汇编程序,对源程序进行汇编,生成.obj文件-目标文件,以及调试用.LST-列表文件和.CRF-交叉引用表;(3)Link连接程序,对使用的目标文件和库文件进行连接,生成.exe文件,同时调试用.map-地址映像文件;如果源程序无语法错误,上述三步将生成可运行的.exe文件,如果运行结果无误,则完成对汇编程序的编程,如果运行后结果存在错误,需要进行调试。
(4)Debug调试程序,对.exe文件进行调试,修改,直到程序正确。
图3目标程序生成步骤图2.编程过程(1)用文本编辑软件,编写扩展名为.asm的源文程序文件。
(2)用汇编程序对编好的源文件进行汇编。
命令行:masm[*.asm]↙如果源文件中存在语法错误,则汇编程序将指出错误类型及位置,可根据这些信息重新编辑源文件,直至无语法错误,汇编后,将生成指定名称的目标文件.obj。
使用MASM50汇编程序进行汇编,输入命令行masm或者masm*.asm后,根据提示,输入文件名,在汇编没有错误的情况下,如屏幕所示:汇编程序可生成三个文件,*.obj,*.lst和*.crf。
*.obj-目标文件,用于连接生成可执行文件;*.lst-列表文件(可选),汇编语言汇编的机器语言与汇编语言对照表,可用于调试;*.crf-交叉引用文件(可选),给出了用户定义的所有符号和对每个符号定义、引用的行号。
(3)目标文件的连接命令行:link[*.obj][*.obj][*.lib]↙连接程序,将多个目标程序及库文件,连接生成可执行的*.exe文件,同时可选择生成*.map文件。
*.map-地址映像文件,给出内存地址分配的有关信息。
下图所示屏幕,为Link连接两个目标文件,没有错误的情况下,生成*.exe 文件。
(4)执行程序执行*.exe文件,观察程序运行结果,如果存在错误,需要进行调试。
Keil 的调试命令、在线汇编与断点设置
Keil 的调试命令、在线汇编与断点设置上一讲中我们学习了如何建立工程、汇编、连接工程,并获得目标代码,但是做到这一步仅仅代表你的源程序没有语法错误,至于源程序中存在着的其它错误,必须通过调试才能发现并解决,事实上,除了极简单的程序以外,绝大部份的程序都要通过反复调试才能得到正确的结果,因此,调试是软件开发中重要的一个环节,这一讲将介绍常用的调试命令、利用在线汇编、各种设置断点进行程序调试的方法,并通过实例介绍这些方法的使用。
一、常用调试命令在对工程成功地进行汇编、连接以后,按Ctrl+F5 或者使用菜单Debug->Start/Stop Debug Session 即可进入调试状态,Keil 内建了一个仿真CPU 用来模拟执行程序,该仿真CPU 功能强大,可以在没有硬件和仿真机的情况下进行程序的调试,下面将要学的就是该模拟调试功能。
不过在学习之前必须明确,模拟毕竟只是模拟,与真实的硬件执行程序肯定还是有区别的,其中最明显的就是时序,软件模拟是不可能和真实的硬件具有相同的时序的,具体的表现就是程序执行的速度和各人使用的计算机有关,计算机性能越好,运行速度越快。
进入调试状态后,界面与编缉状态相比有明显的变化,Debug 菜单项中原来不能用的命令现在已可以使用了,工具栏会多出一个用于运行和调试的工具条,如图 1 所示,Debug 菜单上的大部份命令可以在此找到对应的快捷按钮,从左到右依次是复位、运行、暂停、单步、过程单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令。
? 图1 调试工具条学习程序调试,必须明确两个重要的概念,即单步执行与全速运行。
全速执行是指一行程序执行完以后紧接着执行下一行程序,中间不停止,这样程序执行的速度很快,并可以看到该段程序执行的总体效果,即最终结果正确还是错误,但如果程序有错,则难以确认错误出现在哪些程序行。
Emu8086使用指南
Emu8086使用指南1:简介1.1 Emu8086简介1.2 Emu8086的特点1.3 Emu8086的应用领域2:安装与配置2.1 Emu8086的系统要求2.2 与安装Emu80862.3 Emu8086的基本配置3: Emu8086界面介绍3.1 主界面3.2 菜单栏3.3 工具栏3.4 编辑区域3.5 状态栏4:编写与调试汇编程序4.1 新建程序4.2 编写程序代码4.3 汇编与运行程序4.4 调试程序5:存储器与寄存器5.1 存储器的概念5.2 内存寻址5.3 寄存器的概念5.4 常用寄存器6:汇编指令集6.1 数据传送指令6.2 算术运算指令6.3 逻辑运算指令6.4 控制转移指令6.5 输入与输出指令7:软件中断与中断处理程序 7.1 软件中断的概念7.2 常用的软件中断7.3 编写中断处理程序8:过程与宏指令8.1 过程的概念8.2 定义与调用过程8.3 宏指令的概念8.4 定义与调用宏指令9:汇编程序优化与调试技巧9.1 优化汇编程序9.2 调试技巧与常见问题10:附件附件1:示例程序源代码附件2:示例程序运行结果注释:- Emu8086: 一款流行的x86汇编语言模拟器,用于学习和开发汇编语言程序。
- 汇编指令集: 一组用于编写汇编语言程序的指令集合。
- 软件中断: 由软件触发的处理器中断,用于实现系统调用和其他功能。
- 中断处理程序: 在出现中断时执行的特定代码块,用于响应中断事件。
- 过程: 一组按顺序执行的指令,通过调用以实现代码的模块化。
- 宏指令: 一种在汇编程序中定义和使用的可重用代码片段。
- 优化: 通过改进算法和代码结构来改善程序性能。
- 调试: 处理程序中的错误和问题,以确保程序正确执行。
本文档涉及附件:- 附件1:示例程序源代码- 附件2:示例程序运行结果本文所涉及的法律名词及注释:- 无。
汇编语言程序设计debug调试命令
标志位:
“1”
“0”
OF:溢出标志 —— OV溢出, NV没溢出
DF:方向标志 —— DN减量, UP增量
IF:中断允许标志 —— EI允许, DI禁止
SF:符号标志 —— NG负数, PL正数
ZF:“0”标志
—— ZR为“0”, NZ不为“0”
下次课预习内容:顺序结构程序设计
要求:1、实验指导书及实验报告上的预习内容 2、预习验收时要提供设计的源程序磁盘或笔写程序
-E CS:211 21 2A
;从CS:211H开始输入2个字节的内容
-E 110 ‘anything’
;输入从DS:110H开始的字符串
⑹ D(显示存储器的内容):
默认寄存器是DS,格式是:
-D段地址:偏移地址
;显示80H个字节的内容。
-D
显示从上一次结束处开始的80H个字节 的内容。
⑺ R(显示修改寄存器内容) -R ;显示所有寄存器内容。 -RDS ;显示并可修改DS的内容。 -RF ;显示并可修改标志寄存器
实验数据记录注意事项:
1、实验报告第三页:表格中标志位与计算机 自动给出的不是一一对应的,要求记录1/0
2、实验报告第四、五页:列出调试运行后的程序清单
因为行汇编不识别标号,所以:用行汇编运行的程
序中没有行号,转移指令处是绝对地址。
验收内容:
1、用T命令执行完程序最后一条指令处的界面:
-T =段地址:0
-G=段地址:偏移地址
-G
;从程序当前位置执行到
程序结束
-G =200 260
;从指定200H地址开始执行, 遇到断点
汇编语言程序环境搭建masm+debug64位win107
汇编语⾔程序环境搭建masm+debug64位win107介绍:MASM是Microsoft Macro Assembler 的缩写,是微软公司为微处理器家族开发的,拥有可视化的开发界⾯,使开发⼈员不必再使⽤环境进⾏汇编的开发,编译速度快,⽀持80x86汇编以及,是下开发汇编的利器。
它与平台的磨合程度⾮常好,但是在其他平台上就有所限制,使⽤MASM的开发⼈员必须在windows下进⾏开发。
1. 在windows下搭建汇编编程环境:王爽《汇编程序》第三版⽤的是MASM5.0下载安装包:1)、DOSBox 链接:密码:xdgh2) 、MASM5.0 链接:密码:hku53)、DEBUG 链接:密码:rmsi把debug.exe复制到masm⽬录下。
2. 下载汇编参考⼿册:链接:密码:80fc3. 第⼀个汇编程序:在命令⾏输⼊eg0101.exe,得到程序运⾏结果:Hello Assemly!汇编程序eg0101.asm的内容:include io32.inc.data ;数据段msg byte 'Hello,Assembly!',13,10,0.code ;代码段start:;程序执⾏起始位置mov eax,offset msgcall dispmsgexit 0;程序正常执⾏终⽌end start ;汇编结束5. debug完整配置:汇编语⾔环境:MASM,但是调试需要debug.exe,并且debug.exe不能⽤于64位计算机系统。
所以64位计算机系统使⽤的汇编语⾔环境是:1. 下载DOSBox2. 下载debug.exe在输⼊框状态下z:> ,z:>mount d d:\简洁的讲,你把你要虚拟的⽂件夹位置换掉上⾯的。
mount d d:\d:cd MASMdosbox配置debug1. 有疑问查看DOSBox⽬录下的DOSBox 0.74 Manual.txt⼿册指导2. 打开配置⽂件DOSBox 0.74 Options.bat,因为我的masm和debug都安装在D盘下,所以在本配置⽂件最后⾯的[autoexec]加上MOUNT D D:\D:意思是挂载到D盘下(这⼀步骤也可以不做,直接看下⾯的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)打开Keil pVision2,新建Keil项目。 (2)新建Kill项目,选择CPU类型,选择ATMEL中的AT89C51单片机。 (3)新建汇编源文件(.ASM文件),编写程序,并保存。 (4)在“project Workspace”窗口中,将新建的.ASM文件添加到“Source
九、在菜单栏中选择“View” →“Memory Window”选项, 打开“Memo~”对话窗口。在此对话窗口的“Address”栏中 输入“D:30H”,查看片内数据存储空间的数据。
查看寄存器的内容
输入地址
查看RAM或ROM的内容
十、按“Fll”键,单步运行程序,观 察片内数据存储器中数据的变化, 同时观察“Project Workspace”窗 口中各寄存器值的变化。
三、新建汇编源文件(*.ASM文件) 法1:点击工具栏中的“新建文件”图标
法2:在菜单栏中选择“File” →“New”命令,新建文 栏
出现以下“TEXT 1”程序输入框
程序输入区
接下来点击“File” → “Save”
在出现的对话框中,选择路径,输入文件名,注意一定要写扩 展名“.ASM”
单击保存后会弹出一个 Select Device for Target ‘Target 1’对话框,如下图所示:
在此对话框的“Data base”栏中,单击“Atmel”前面的“+”号 (或双击“Atmel”),选择“AT89C51”,确定CPU的类型。
最后单“确定”。之后出现的下面对话框 在对话框中单出“是(Y)”。
在出现的对话框中,选择路径,输入文件名,注意一定要写扩 展名“.ASM”,并保存。这样Kill会以不同的颜色显示关键字, 从而减少输入中的语法错误。
四、输入程序,并再次保存
五、在“project Workspace”窗口中,将新建 的.ASM文件添加到“Source Group 1”中。
先
用
鼠
标
右
键
点
击
出
现
右 边 的 对 话 框
后 选 择 即 可
ቤተ መጻሕፍቲ ባይዱ
之后会出现下面的对话框,选择相应的文件类型、路径、文 件名按Add确认,最后按(Close)关闭该对话框。
此时.ASM文件就出现在Source Group 1”中。 如下图所示:
六、在“Project Workspace”窗口中的“Target 1” 文件夹上单击鼠标右键,在弹出的右键菜单中选 择“Option for Target ‘Target 1'”选项,弹 出“Options for Target”对话窗口,选择 “Output”选项卡,在此选项卡中选中“Create HEX File”选项。
一、启动Keil uVision2
法1:在Windows桌面上启动Keil uVision2 图标
法2:用鼠标右键点开始在所有程序中找到Keil uVision2 图标并点击
下图即为KilluVision2程序的界面
二:新建Kill项目
在弹出的Create New Project对话框中选择目标路 径、在“文件名”中输入“项目名称”,后单击 “保存”
Group 1”中。 (5)在“Project Workspace”窗口中的“Target 1”文件夹上单击鼠标右键,
在弹出的右键菜单中选择“Option for Target‘Target 1'”选项,弹出 “Options for Target”对话窗口,选择“Output”选项卡,在此选项卡中 选中“Create HEX File”选项。 (6)在Keil的菜单栏中选择“Project” →“Build Target”,或者直接单击 工具栏中的“Build Target”图标 ,编译汇编源程序。如果程序中有 错误,修改后重新编译。 (7)在Keil的菜单栏中选择“Debug” → “Start/Stop Debug Session”选 项,或者直接单击工具栏中的“Debug>Start/Stop Debug Session”图 标 ,进入程序调试环境。 (8)在菜单栏中选择“View” →“Memory Window”选项,打开“Memo~”对话 窗口。在此对话窗口的“Address”栏中输入“D:30H”,查看片内数据存 储空间的数据。 (9)按“Fll”键,单步运行程序,观察片内数据存储器中数据的变化,同时观 察“Project Workspace”窗口中各寄存器值的变化。
七、在Keil的菜单栏中选择“Project” →“Build Target”,或者直接单击工具栏中的“Build Target”图 标 ,编译汇编源程序。如果程序中有错误,修改后重新 编译。或直接按快捷工具栏中的
八、在Keil的菜单栏中选择“Debug” →“Start/Stop Debug Session”选项,或者直接单击工具栏中的 “Debug>Start/Stop Debug Session”图标 ,进入程序 调试环境。