当前位置:文档之家› KEIL MDK 4.13 + J-Link V7 调试S3C2440的工程配置

KEIL MDK 4.13 + J-Link V7 调试S3C2440的工程配置

KEIL MDK 4.13 + J-Link V7 调试S3C2440的工程配置
KEIL MDK 4.13 + J-Link V7 调试S3C2440的工程配置

KE IL MDK 4.13 + J-Link V7 调试S3C2440的工程配置

前两天说把友善之臂的自带的那个并口调试器转接成了J-Link的,昨晚开始尝试写点小代码,结果发现对S3C2440这个片子的配置,还要动点脑筋。不过这个脑筋我也没动,直接搜索了些东西,抄袭了些东西。说实话,网上有一点点参考资料,但是都说得不全,最后还是把KEIL自带的工程“\Keil\A RM\Boards\Samsung\S3C2440\RTX_Blinky\”拷贝并修改,摸索了点东西。具体的配置方式如下:

新建工程,选择Samsung的S3C2440A:

点击“OK”,出现下面的对话框:

点击“是”,添加KEIL自带的STARTUP.s到工程中,进入下一步,管理组件:

进行如下配置:

完了进行工程配置:

目标选项如下配置,这些数值根据开发板上的硬件资源进行调整;使用Thumb-Mode和使用MicroLIB可以有效减少代码尺寸:

配置输出文件夹:

将Object文件放到这个Obj文件夹:

LIST文件放到这个文件夹:

调整汇编编译选项,使用Thumb模式:

下面的就是关于J-Link的配置了,注意不要勾选Load Application at Startup,还要配置Initialization File,这个文件在文末进行介绍:

JTAG Speed可以选择Auto Selection:

最后是下载项的配置,不要选中“Update Target Bef ore Debugging”:

具体的配置如下:

下面是EXT_RAM.ini的内容,拷贝下来略作修改就可以使用:

/******************************************************************************/

/* Ext_RAM.INI: External RAM (SDRAM) Initialization File */

/******************************************************************************/

// <<< Use Configuration Wizard in Context Menu >>> //

/******************************************************************************/

/* This file is part of the uVision/ARM development tools. */

/* Copyright (c) 2005-2008 Keil Software. All rights reserved. */

/* This software may only be used under the terms of a valid, current, */

/* end user licence from KEIL for a compatible version of KEIL software */

/* development tools. Nothing else gives you the right to use this software. */

/******************************************************************************/

FUNC void SetupForStart (void) {

// Program Entry Point

PC = 0x30000000;

}

FUNC void Init (void) {

_WDWORD(0x4A000008, 0xFFFFFFFF); // 禁用所有中断

_WDWORD(0x53000000, 0x00000000); // 禁用看门狗定时器

// 时钟配置

// FCLK = 300 MHz, HCLK = 100 MHz, PCLK = 50 MHz _WDWORD(0x4C000000, 0x0FFF0FFF); // LOCKTIME

_WDWORD(0x4C000014, 0x0000000F); // CLKDIVN

_WDWORD(0x4C000004, 0x00043011); // MPLLCON

_WDWORD(0x4C000008, 0x00038021); // UPLLCON

_WDWORD(0x4C00000C, 0x001FFFF0); // CLKCON

// 配置和SDRAM相关的内存控制器

_WDWORD(0x48000000, 0x22000000); // BWSCON

_WDWORD(0x4800001C, 0x00018005); // BANKCON6

_WDWORD(0x48000020, 0x00018005); // BANKCON7

_WDWORD(0x48000024, 0x008404F3); // REFRESH

_WDWORD(0x48000028, 0x00000032); // BANKSIZE

_WDWORD(0x4800002C, 0x00000020); // MRSRB6

_WDWORD(0x48000030, 0x00000020); // MRSRB7

_WDWORD(0x56000000, 0x000003FF); // GPACON: 使能SDRAM相关的地址线

}

// Reset chip with watchdog, because nRST line is routed on hardware in a way

// that it can not be pulled low with ULINK

// 由于nRST不能通过J-Link进行拉低,使用看门狗复位芯片

_WDWORD(0x40000000, 0xEAFFFFFE); // Load RAM addr 0 with branch to itself

CPSR = 0x000000D3; // 禁用中断

PC = 0x40000000; // 定位PC到RAM的起始位置

_WDWORD(0x53000000, 0x00000021); // 使能看门狗

g, 0 // 等待看门狗复位芯片

Init(); // 初始化内存

LOAD Obj\KEIL_S3C2440.axf INCREMENTAL// 下载程序

SetupForStart(); // 配置运行

g, main // Goto Main

上面的红色加粗部分Obj\KEIL_S3C2440.axf是要调整的,调整跟你的工程配置相适应,比如我的输出文件名是KEIL_S3C2440,就写成了现在的这个样子。

OK,下面是一个简单的例子,控制连接在GPB5的LED闪烁:

#include

int main(void)

{

unsigned int i ;

//配置GPB5为输出口

GPBCON &= ~(0x3 << 10) ;

GPBCON |= (0x1 << 10) ;

while(1)

{

//使GPB5输出低电平

GPBDAT &= ~(1<<5);

//延时

for(i=0;i<200000;i++);

//使GPB5输出高电平

GPBDAT |= (1<<5);

//延时

for(i=0;i<200000;i++);

}

}

开始Debug,至此,这个代码已经可以在SDRAM进行调试。

实验一 汇编语言程序的调试与运行

实验一汇编语言程序的调试与运行 一、实验目的 1.熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。 2.掌握数据在内存中的存放方式和内存操作数的寻址方式。 3.掌握汇编语言源程序的组成格式。 4.掌握8086/8088指令及伪指令的格式及用法。 5.掌握汇编语言源程序的编辑、调试及运行方法。 二、实验准备知识 1.DEBUG程序的启动 DEBUG是专门为汇编语言设计的一种汇编语言调试工具,它通过单步执行,设置断点连续执行等方式为汇编语言程序员提供了非常有效的调试手段。 在DOS提示符下,可输入命令: C>DEBUG [d:][path][文件名][ 参数1][参数2] 其中文件名是被调试文件的名称,它必须是执行文件(.EXE),两个参数是运行被调试文件时所需要的命令参数,在DEBUG程序调入后,出现提示符“–”,此时,可键入所需的DEBUG命令。 在启动DEBUG时,如果输入了文件名,则DEBUG程序把指定文件装入内存。用户可以通过DEBUG的命令对指定文件进行修改,显示和执行。如果没有文件名,则是以当前内存的内容进行工作。 2.DEBUG的主要命令 1)汇编命令A 格式:– A [起始地址] 功能:该命令从指定地址开始允许输入汇编语句,把它们汇编成机器代码相继存放在从指定地址开始的存储器中。 2)反汇编命令U (1)格式1:– U [起始地址]

功能:该命令从指定地址开始,反汇编32个字节,若地址省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。 (2)格式2:– U [起始地址终止地址] 格式3:– U [起始地址L 字节数] 功能:该命令对指定范围的内存单元进行反汇编。例如: 3)运行命令G 格式:– G [= 起始地址1][断定点地址2[断点地址3……]] 功能:从指定地址开始执行程序。在设定的断点处程序暂停,并显示全部寄存器内容和下一条要执行的指令。 一般设置断点前最好用U命令查看一下指令开始的地址。断点数最多为10个。 如:– G=100 108 4)跟踪命令(单步执行)T 格式1:– T [=起始地址] 格式2:– T [=起始地址指令条数] 功能:从指定地址开始执行程序,每次执行一条指令,然后显示各寄存器的内容和状态寄存器的内容,及以助记符形式表示的下一条指令。 如:– T=100 5)显示内存单元内容的命令D 格式1:– D [起始地址] 格式2:– D [起始地址终止地址] 格式3:– D [起始地址L 字节数] 功能:显示指定内存单元的内容。 6)修改内存单元内容的命令E (1)用给定的内容代替指定范围的单元内容 格式:– E 地址内容表 例如:– E 2000:0100 F3 "XYZ" 8D 其中F3、"X"、"Y"、"Z"和8D各占一个字节,用这五个字节代替原内存单元2000:0100到0104的内容,"X"、"Y"、"Z"将分别存入其ASCII码值。

汇编语言调试DEBUG命令详解

汇编语言调试DEBUG命令详解 1、显示命令D ① D [地址] ② D [范围] 如不指定范围,一次显示8行×16个字节。 -D ;默认段寄存器为DS,当前偏移地址 -D DS:100 / -D CS:200 -D 200:100 -D 200;200为偏移地址,默认段寄存器DS -D DS:100 110/ -D 100 L 10 2.修改命令E ① E 地址;从指定地址开始,修改(或连续修改)存储单元内容。DEBUG首先显示指定单元内容,如要修改,可输入新数据;空格键显示下一个单元内容并可修改,减号键显示上一个单元内容并可修改;如不修改,可直接按空格键或减号键;回车键结束命令。 ② E 地址数据表;从指定的地址开始用数据表给定的数据修改存储单元。 -E DS:100 F3 ‘AB’ 8D。 3.添充命令F F 范围数据表; 将数据表写入指定范围的存储单元;数据个数多,忽略多出的数据,个数少,则重复使用数据表。 -F DS:0 L5 01,02,03,04,05 -F DS:0 L5 01 02 03 04 05(空格分隔) -F DS:0 L5 FF ;5个字节重复使用FF 4.显示修改寄存器命令R R;★显示所有寄存器和标志位状态; ★显示当前CS:IP指向的指令。 显示标志时使用的符号: 标志标志=1 标志=0 OF OV NV DF DN UP IF EI DI SF NG PL ZF ZR NZ AF AC NA PF PE PO CF CY NC

5.汇编命令A A [地址];从指定的地址开始输入符号指令;如省略地址,则接着上一个A命令的最后一个单元开始;若第一次使用A命令省略地址,则从当前CS:IP 开始(通常是CS:100)。 注释:①在DEBUG下编写简单程序即使用A命令。 ②每条指令后要按回车。 ③不输入指令按回车,或按Ctrl+C结束汇编。 ④支持所有8086符号硬指令,伪指令只支持DB、DW,不支持各类符号名。 6.反汇编命令U ① U [地址];从指定地址开始反汇编32个字节的机器指令;省略地址时,则接着上一个U命令的最后一个单元开始;若第一次使用U命令省略地址,则从当前CS:IP开始(通常是CS:100)。 ② U 范围;对指定范围的单元进行反汇编。 -U -U100 -U100L10 7.运行程序命令G ① G;从CS:IP指向的指令开始执行程序,直到程序结束或遇到INT 3。 ② G=地址;从指定地址开始执行程序,直到程序结束或遇到INT 3。 ③ G 断点1[,断点2,…断点10];从CS:IP指向的指令开始执行程序,直到遇到断点。 ④G=地址断点1[,断点2,…断点10] -G ;从CS:IP指向的指令开始执行程序。 -G=100 ;从指定地址开始执行程序。 -G=100 105 110 120 8.跟踪命令(单步执行命令)T ① T;从当前IP开始执行一条指令。 ② T 数值;从当前IP开始执行多条指令。 ② T =地址; ③ T =地址数值; -T -T5 / -T=100 5 9.跟踪执行并跳过子程序命令P P [=地址] [数值];类似T命令,但跳过子程序和中断服务程序。 10.退出DEBUG命令Q Q;返回DOS环境。 -Q 11.命名命令N N 文件标示符;指定文件,以便用W命令在磁盘上生成该文件,或者用L命令从磁盘装入该文件。 -N MY_https://www.doczj.com/doc/5814617136.html,

汇编语言调试及运行

汇编语言程序设计实验 实验一 汇编语言的调试和运行 班级: 姓名: 学号: 日期:

实验一汇编语言的调试和运行 一、实验目的 1、熟悉DEBUG程序和命令,并用它运行基本指令和察看运行结果。 ○1怎样调用Debug ②如何显示和修改内存单元 ③如何显示和修改CPU的寄存器 ④各标志位的状态是如何表示的,怎样修改标志寄存器 ⑤怎样汇编与反汇编 ⑥怎样执行程序 ⑦怎样跟踪程序 ⑧怎样命名和读写文件 ⑨怎样退出Debug 2、熟悉汇编中通用传送指令。 3、理解指令不同的寻址方式,注意规定或限制使用的寄存器如:双操作数 指令中,源操作数和目的操作数的地址不能同时为存储器地址,段跨越 前缀不能使用CS,操作对象是地址还是地址中的内容,指令隐含使用 的寄存器。 二、实验内容 1、键入 DEBUG 进入 DEBUG 控制状态,显示提示符 '- '

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

3、用命令 D100 10F 观察内存中的十六进制码及屏幕右边的ASCII字符。 4、用命令 F110 11F 41 重复上二项实验,观察结果并比较。 5、用命令 E100 30 31 32 …… 3F将30H-3FH写入地址为100开始的内存单元中,再用D命令观察结果,看键入的十六进制数是什么字符的ASCII 码?

6、用DEBUG调试和运行下列程序,记录所用的DEBUG命令和运行结果。 MOV WORD PTR [1100],3445 MOV WORD PTR [1102],5678 MOV WORD PTR [1106],6732 MOV AX,[1100] SUB AX,[1102] ADD AX,[1106] MOV [1104],AX HLT 其中粗斜体的数字可以修改。

8086汇编语言上机调试步骤

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

汇编语言编程步骤调试方法

汇编语言的编程步骤与调试方法 一、汇编源程序的建立 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文件,观察程序运行结果,如果存在错误,需要进行调试。调试工具DEBUG是针对汇编语言程序设计的一种调试工具,熟练使用DEBUG有助于汇编语言程序员对于逻辑错误的调试。 二、汇编程序的调试

汇编语言的编程步骤与调试方法

汇编语言得编程步骤与调试方法 一、汇编源程序得建立 1、使用工具 sm文件; (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连接两个目标文件,没有错误得情况下,生成*、e xe文件。 (4)执行程序 执行*、exe文件,观察程序运行结果,如果存在错误,需要进行调试。调试工具DEBUG就是针对汇编语言程序设计得一种调试工具,熟练使用DEBUG有助于汇编语言程序员对于逻辑错误得调试。 二、汇编程序得调试 1、调试方法

8086汇编语言上机调试及基本操作

深 圳 大 学 实 验 报 告 课程名称: 微机原理及应用 实验名称: 8086汇编语言上机调试及基本操作 学 院: 物理科学与技术学院 指导教师: 报告人: 组号: 学号 实验地点 K302 实验时间: 2014 年 10 月 8 日 提交时间: 2014.10.15 1、实验目的: 得分 教师签名 批改日期 课程编号 1801770001

(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 1 RESULT_2 DB 1 RESULT_3 DB 1 DATA ENDS STACK SEGMENT STACK ; 堆栈段 STA DB 64 DUP(0) STACK_TOP DB 0 STACK ENDS CODE SEGMENT; 代码段 ASSUME CS:CODE , DS:DATA , ES:DATA , SS:STACK START: MOV AX, DATA MOV DS, AX ; 设置数据段 MOV AX, STACK MOV SS, AX ; 设置堆栈段

LEA SP, STACK_TOP ; 设置栈顶指针 MOV AX, 2afH MOV CL, 100 DIV CL MOV RESULT_1, AL ; 除以100, 得百位数 MOV AL, AH MOV AH, 0 MOV CL, 10 DIV CL MOV RESULT_2, AL ; 余数除以10, 得十位数 MOV RESULT_3, AH ; 余数为个位数 MOV AX,4C00H ; 返回DOS INT 21H ; CODE ENDS END START ; 最后一行要按回车键5、实验步骤 1)用EDIT编写源文件(在EDIT下不能用中文注释)。 2)在DOS窗口下 ①、在DOS下编译、连接生成可执行文件。

汇编语言的编译、调试

汇编语言的编译、调试 实验日期:2012420 2.1. 1实验目的 1、熟练掌握编写汇编语言源程序的基本方法和基本框架。 2、学会编写顺序结构和简单分支的汇编语言程序 3、掌握汇编语言的上机过程。 2. 1 . 2实验内容 假设有一组数据:5,-4 , 0, 3, 100, -51,请编一程序,判断:每个数是否大于0? 等于0?还是小于0,将判断结果存放在数组后的连续单元中。 即: 1 「当X > 0 Y= J 0 当X = 0 -1 当 X < 0 2. 1 . 3实验要求 1、实验前准备 ①分析题目,将程序中的原始数据和最终结果的存取方式确定好。 ②写出算法或画出流程图。 ③写出源程序。 ④对程序结果进行分析,并准备好上机调试过程。 2、编写完整的汇编语言程序,要求在编辑软件下(如: EDIT)写程序,通过汇编(MASM、连接(LINK)生成执行文件,跟踪调试(DEBUG。 2. 1 . 4编程提示 ①首先将原始数据(5, -4 , 0, 3, 100, -51、装入起始地址为XX的字节存储单元中。 ②将判断结果以字符串的形式存放在数据区中,以便在显示输出时调用。 ③其中判断部分可采用CMP旨令,得到一个分支结构,分别存放判断结果“0” “1 ” “-1 ” ④程序中存在一个循环结构,循环6次。 ⑤参考程序流程图,如图2-1 2. 1 . 5实验报告 1、调试说明 上机调试的情况:上机调试步骤,调试过程中所遇到的问题是如何解决的。对调试过程 中的问题进行分析,对执行结果进行分析。 2、画出程序框图 3、写出程序清单和执行过程。 4、谈实验体会及对汇编语言上机过程的理解。

汇编程序的建立、执行与调试

微机原理与汇编语言实验报告 姓名:学号:实验日期: 一、实验名称 汇编程序的建立、执行与调试 二、实验目的 1、掌握汇编语言程序建立的过程 2、掌握调试工具DEBUG的使用方法 三、实验设备 微机,debug软件 四、实验内容 1、任务 在DEBUG中,所有的数都是以十六进制方式显示,并且数后面没有H。在DEBUG中标志位用以下符号来显示: 标志位名称标志为1 标志为0 O OV NV D DN UP I EI DI S NG PL Z ZR NZ A AC NA P PE PO C CY NC DEBUG的主要命令 DEBUG EXAM1.EXE - (提示符) 1. 汇编:A [地址] 2. 反汇编:U [[地址][,地址]] -U ↙;从当前CS:IP开始的连续32个字节 -U CS:IP ↙;从指定地址开始的连续32个字节 -U CS:IP L5↙;从CS:IP开始的连续5个字节 3.显示或修改寄存器的内容:R [寄存器] -R ↙; -R AX ↙; 4.显示内存单元:D[[地址][,地址]] -D ↙;显示当前内存从DS:0开始的连续128个字节 -D DS: 4 ↙;显示从指定地址开始的连续128个字节

-D DS: 4 L5;↙显示从指定地址开始的连续5个字节 5.修改内存单元:E [地址][数据] -E DS:0↙;显示内存0号单元,并等待修改; 有下列5种情况之一可供选择: (1)输入16进制数(最多2位)按回车;输入数据代替原内容,E命令结束。(2)输入16进制数(最多2位)按空格键显示下一单元内容,并等待修改;(3)直接按空格键显示下一单元内容,并等待修改; (4)直接按按两次回车键退出DEBUG状态。 (5)按“-”键,在下一行显示上一单元地址及内容,并等待。 6. 跟踪命令:T[=地址][,计数] 7. 执行过程命令:P (追踪不进入子程序) 8. 执行命令:G[=地址][,断点][,断点][,…] 9. 退出命令:Q 2、方案 (1)思路 1)汇编程序的建立 a. 编辑 在EDIT或记事本程序下编辑源程序,以.asm作扩展名保存文件。 b. 汇编源程序 在DOS下,用汇编程序对源程序进行汇编,汇编后,产生·OBJ文件。 其方法: C:\ MASM 原文件名 这里假设MASM文件在根目录下。 c. 连接 将·OBJ文件转换成·EXE可执行文件。其方法: C:\LINK 文件名.OBJ d. 运行 e. 调试 2)汇编程序的调试 a. 进入DEBUG。在DOS提示符下键入DEBUG。 b. 使用D,E,F,R,U,等命令查看、修改寄存器存储器的内容。 c. 汇编命令A输入程序。 MOV SI,300 MOV AX,1234 MOV [SI],AX PUSH AX MOV BP,SP MOV AX,[BP] XCHG AL,AH ADD AX,[SI]

汇编语言上机操作及程序调试的方法

汇编语言上机操作及程序调试的方法第一节在IBM-PC机上运行汇编源程序所必备的软件 为了在IBM-PC机上运行汇编源程序,机器上必须有DOS操作系统环境,DOS系统盘上应有下列文件: EDIT 文件编辑程序 MASM 宏汇编程序 CREF 交叉引用文件处理程序 LINK 链接程序 LIB 库管理程序 DEBUG 调试程序 第二节在IBM-PC机上运行汇编源程序的步骤 当用户编制好汇编语言源程序之后,要在机器上运行,必须经过以下几个步骤: 1.用EDIT命令建立与修改汇编源程序文件(ASM文件) 源程序就是用汇编语言的语句编写的程序,它不能被机器识别。源程序必须以ASM为附加文件名。至于EDIT的使用方法可以查阅手册。 2.用MASM命令汇编源文件以产生相应的目标文件(OBJ文件)源程序建立以后,必须经过汇编,转换成用二进制代码表示的目标文件,机器才可运行。汇编是通过调用PC—DOS下的宏汇编程序MASM实现的。汇编过程中,汇编程序对源文件进行二次扫描,如果源程序中有语法错误,则汇编过程结束后,汇编程序会指出源程序中的错误,这时,用户可以再用编辑程序来修改源程序中的错误,最后,得到没有语法错误的OBJ文件。 3.用LINK命令连接目标文件以产生可执行文件(EXE文件)由于汇编之后所得到的目标代码的存放地址并不是可执行的绝对地址,而是浮动的相对地址,因而,必须经过连接,把程序的各个模块连接在一起,或把要调用的子程序与主程序连接在一起,把相对地址变成绝对地址,形成可执行的文件。连接是由调用PC—DOS下的LINK程序来实现的。 4.调试、运行可执行文件。 经过以上过程,在盘上有了可执行文件,则可在DOS提示符下,直接打入文件名(不用扩展名),就可以把执行文件从盘上装入内存,且立即执行此程序。

实验1 利用DEBUG调试汇编语言程序段

实验1 利用DEBUG调试汇编语言程序段一.实验目的 1.熟悉DEBUG有关命令的使用方法; 2.利用DEBUG掌握有关指令的功能; 3.利用DEBUG运行简单的程序段。 二.实验内容 1.进入和退出DEBUG程序; 1)开始—运行,输入cmd,点确定进入命令窗口 2)在命令窗口中输入dubug进入debug程序

3)进入debug窗口后,输入q命令退出debug 2.学会DEBUG中的 1)D命令(显示内存数据D 段地址:偏移地址) 例1:-D100 ;显示DS段, 0100开始的128个字节内容 说明:指定要显示其内容的内存区域的起始和结束地址,或起始地址和长度。 ①DSEGREG[起始地址] [L 长度] ;显示SEGREG段中(缺省内默认为DS), 以[起始地址] (缺省内为当前的偏移地址),开始的[L 长度] (缺省内默认为128)个字节的内容. ②D SEGREG[段地址:偏移地址]

;显示SEGREG段中(缺省内默认为DS), [段地址:偏移地址] 开始的[L 长度] (缺省内默认为128)个字节内容 -D ;默认段寄存器为DS,当前偏移地址(刚进入debug程序偏移地址为0100H) -D DS:100 ;显示DS段, 0100H开始的128个字节内容 -D CS:200 ;显示CS段, 0200H开始的128个字节内容 -D 200:100 ;显示DS段, 0200:0100H开始的128个字节内容 -D 200;显示DS段, 0200H开始的128个字节内容 -D 100 L 10 ;显示DS段, 100H开始的100H个字节内容 2)E命令(修改指定内存) 例1:-E100 41 42 43 44 48 47 46 45 -D 100,L08

实验二 汇编语言程序的运行与调试一

实验二汇编语言程序的运行与调试一.实验目的: 1、掌握汇编语言源程序的书写格式。 2、掌握EDIT、MASM、LINK、DEBUG等软件的使用方法。 3、掌握上机编辑、汇编、连接及运行汇编语言程序。 二&实验环境: 微型计算机一台 DOS或WINDOWS操作系统,MASM开发套件。 三.实验原理: 1、完整的段定义伪操作 data segment;定义数据段 … data ends extra segment;定义附加段 … extra ends stack segment stack;定义堆栈段 … stack ends code segment;定义代码段 assume cs:code,ds:data,es:extra start: mov ax,data mov ds,ax;段地址 段寄存器 ... …;在代码段填入指令序列 mov ah,4ch int21h;程序终止,返回DOS code ends end start;汇编结束 2、汇编语言源程序的汇编过程 汇编语言源程序的汇编过程是是利用汇编程序(MASM)对已编辑好的源程序文件(.ASM)进行汇编,将源程序文件中的助记符指令逐条翻译

成机器码指令,并完成源程序中的伪指令所指出的各种操作,最后可以建立3个文件:扩展名为.OBJ的目标文件、扩展名为.LST的列表文件和扩展名为.CRF的交叉索引文件。目标文件(.OBJ)是必须建立的,列表文件(.LST)和交叉索引文件(.CRF)两个文件可有可无,可以通过汇编时的命令加以选择。3、目标程序的连接过程 汇编后产生的目标程序(OBJ文件)并不是可执行程序文件(EXE文件),还不能直接运行,它必须通过连接程序(LINK)连接成一个可执行程序(EXE 文件)后,才能运行。连接程序给出的“无堆栈段的警告性错误”并不影响程序的运行。4、为运行汇编语言程序至少要在磁盘上建立以下文件: (1)编辑程序,如EDIT.EXE,编辑汇编源程序 (2)汇编程序,如MASM.EXE,生成目标代码文件。 (3)连接程序,如LINK.EXE,生成可执行程序文件。 (4)调试程序,如DEBUG.EXE。 四.实验内容: 1、将edit、masm、link等程序拷贝在C盘根目录下;鼠标左键单击开始→运行,键入command命令,进入DOS方式。 2、汇编语言源程序的建立 在DOS状态下键入以下命令:C:\>EDIT,进入EDIT后,选择File 主菜单下的“new”命令,输入如下汇编源程序;选择File主菜单下的“save”命令保存文件至C盘根目录下,文件名为abc.asm;选择File菜单下的Exit 项,退出EDIT编辑环境。 assume cs:code

微机实验:汇编语言程序的调试与运行步骤.doc

软件实验一汇编语言程序的调试与运行 一.实验目的 1.学习数据传送和算术运算指令的用法 2.熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。 二.实验内容 将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在DATA1和DA TA2为首的5个内存单元中,结果送回DATA1处。 三.程序框图 图1.1 两个多位十进制相加程序流程图 四.程序清单 DISP MACRO X MOV DL,X ;要显示的字符送DL寄存器 MOV AH,02H ;DOS功能调用号是02H INT 21H ;21H中断程序是DOS功能调用 ENDM DATA SEGMENT DATA1 DB '12732' DATA2 DB '06815'

N EQU $-DA TA2 DATA ENDS STACK SEGMENT STACK STA DB 20 DUP (?) TOP EQU $-STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DA TA,SS:STACK,ES:DA TA START:MOV AX,DA TA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX LEA SI,DATA1 ;☆ MOV BX,0 MOV CX,N CALL DISPL ;显示被加数 DISP '+' LEA SI,DATA2 MOV BX,0 MOV CX,N CALL DISPL ;显示加数 DISP '=' LEA DI,DA TA1 MOV CX,N CALL ADDA ;调用加法子程序 LEA SI,DATA1 MOV BX,0 MOV CX,N CALL DISPL ;显示运算结果 DISP 0DH DISP 0AH MOV AX,4C00H INT 21H DISPL PROC ;显示子程序 DS1: MOV AH,02H MOV DL,[SI+BX] INT 21H INC BX LOOP DS1

汇编语言源程序的编辑与调试过程.

汇编语言源程序的编辑与调试过程 1.怎样在TD环境下载入被调试程序? 答:方法1:转到TD.EXE所在目录,在DOS提示符下键入以下命令: C:\ASM>TD↙ 进入TD后,按Alt-F键打开File菜单,选择Open,在文件对话框中输入要调试的程序名,按 回车。 方法2:转到TD.EXE所在目录,在DOS提示符下键入以下命令(假定要调试的程序名为HELLO.EXE): C:\ASM>TD HELLO.EXE↙ 方法3:在Windows操作系统中,打开TD.EXE所在目录,把要调试的程序图标拖放到TD 的 图标上。 2.在TD环境下如何编辑汇编指令? 答: (1)用Tab键选择代码区为当前区域; (2)用方向键把光标移到期望的地址处,如果是输入一个新的程序段,建议把光标移到CS:0100H处; (3)打开指令编辑窗口,有两种方法: 一是在光标处直接键入汇编指令,在输入汇编指令的同时屏幕上就会自动弹出指令的临时编辑窗口。 二是用Alt-F10键激活代码区局部菜单,选择其中的汇编命令,屏幕上也会自动弹出指令 的临时编辑窗口。 (4)在临时编辑窗口中输入/编辑指令,每输入完一条指令,按回车,输入的指令即可出现在 光标处(替换掉原来的指令),同时光标自动下移一行,以便输入下一条指令。 3.在TD环境下如何查看/修改数据段的数据? 答: (1)用Tab键选择数据区为当前区域; (2)使用局部菜单中的“Goto”命令并结合使用方向键把光标移到期望的地址单元处(注意数 据区的光标是一个下划线),数据区就从该地址处显示内存单元的内容。 (3)若要修改该地址处的内容,则需打开数据编辑窗口。有两种方法: 一是在光标处直接键输入数据,在输入数据的同时屏幕上就会自动弹出数据编辑窗口。 二是用Alt-F10键激活数据区局部菜单,选择其中的“Change”命令,屏幕上也会弹出数据编 辑窗口。 (4)在数据编辑窗口中输入所需的数据,输入完后,按回车,输入的数据就会替代光标处的原 始数据。 4.在TD环境下如何修改寄存器内容? 答: (1)用Tab键选择寄存器区为当前区域; (2)用方向键把光标移到要修改的寄存器上;

汇编程序调试实验报告

. 微机原理与接口技术 课 程 作 业

班级:

目录 一、实验目的: (4) 二、实验环境 (4) 三、实验过程 (4) (一)基础知识储备 (4) (二)汇编语言程序设计 (4) (三)汇编程序调试 (5) 四、调试实例 (5) (一)实例一 (5) (二)实例二 (7) (三)实例三 (10) (四)实例四 (12) 五、实验总结 (14) (一)实验收获 (14) (二)实验感悟 (15)

一、实验目的: 汇编语言是一种用助记符表示的程序设计语言。用汇编语言编写的源程序生成的目标代码短,占内存少,执行速度快,适合于系统软件、实时控制软件、I/O 接口驱动等程序设计。通过本次实验,熟练掌握汇编程序的调试,深入了解MASM 汇编语言及其程序设计方法。 二、实验环境 EDIT编辑器、MASM汇编程序、LINK连接程序、TD调试程序 三、实验过程 (一)基础知识储备 1.了解微处理器80486的内部结构、寄存器组、工作模式等基本知识。 2.熟练掌握微处理器指令系统的相关知识,重点掌握80486的寻址方式和常用的指令格式及功能。 3.了解MASM汇编语言及其程序设计方法。掌握MASM汇编语言的语句格式、语法规则、常用伪指令及DOS功能的调用等。了解顺序结构、分支结构、循环结构和子程序的设计方法。 (二)汇编语言程序设计 1.分析问题,明确要解决的问题和要求。

2.确定解决问题的思路和方法。 3.将解决问题的方案编制成程序流程图。 4.根据流程图,逐条编写程序。 5.上机调试,验证程序是否正确。 (三)汇编程序调试 MASM汇编程序的主要功能是:把源文件转换成用二进制代码表示的目标文件,并生成列表文件;在转换过程中汇编程序将对源程序进行扫描,检查源程序是否有语法错误并指出源程序的语法错误。 汇编语言源程序的调试过程需要经过编辑、汇编、连接、运行、调试等几个步骤: 1.编辑:使用编辑程序,将编写好的程序输入计算机,建立一个扩展名为ASM 的汇编语言源文件*.ASM。 2.汇编:使用汇编程序,将*.ASM文件经汇编后生成扩展名为*.OBJ。 3.连接:使用连接程序,把一个或多个目标程序连接成可执行文件*.EXE。 4.运行:运行可执行文件,验证程序是否正确。 5.调试:如果运行中有问题,可使用编辑或调试程序进行修改和调试,重复上述步骤,直到运行正确为止。 四、调试实例 (一)实例一 要求:编写程序,将MBUF为起始单元的5个数按相反次序传送到NBUF开始的存

利用DEBUG调试汇编语言程序段

利用DEBUG调试汇编语言程序段

利用DEBUG调试汇编语言程序段 一.实验目的 1.熟悉DEBUG有关命令的使用方法; 2.利用DEBUG掌握有关指令的功能; 3.利用DEBUG运行简单的程序段。 二.实验内容 1.进入和退出DEBUG程序; 1)开始—运行,输入cmd,点确定进入命令窗 口 2)在命令窗口中输入dubug进入debug程序

3)进入debug窗口后,输入q命令退出debug

2.学会DEBUG中的 1)D命令(显示内存数据D 段地址:偏移地址) 例1:-D100 ;显示DS段, 0100开始的128个字节内容 说明:指定要显示其内容的内存区域的起始和结束地址,或起始地址和长度。 ①D SEGREG[起始地址] [L 长度] ;显示SEGREG段中(缺省内默认为DS), 以[起始地址] (缺省内为当前的偏移地址),开始的[L 长度] (缺省内默认为128)个字节的

内容. ②D SEGREG[段地址:偏移地址] ;显示SEGREG段中(缺省内默认为DS), [段地址:偏移地址] 开始的[L 长度] (缺省内默认为128)个字节内容 -D ;默认段寄存器为DS,当前偏移地址(刚进入debug程序偏移地址为0100H) -D DS:100 ;显示DS段, 0100H开始的128个字节内容 -D CS:200 ;显示CS段, 0200H开始的128个字节内容 -D 200:100 ;显示DS段, 0200:0100H

开始的128个字节内容 -D 200;显示DS段, 0200H开始的128个字节内容 -D 100 L 10 ;显示DS段, 100H开始的100H个字节内容 2)E命令(修改指定内存) 例1:-E100 41 42 43 44 48 47 46 45 -D 100,L08 结果:08F1:0100 41 42 43 44 48 47 46 45 例2:-E 100: 08F1:0100 76 42 :42是操作员键入 此命令是将原100号内存内容76修改为42,用D命令可察看。

相关主题
文本预览
相关文档 最新文档