搜档网
当前位置:搜档网 › 试验一、使用debug调试简单的源程序

试验一、使用debug调试简单的源程序

试验一、使用debug调试简单的源程序
试验一、使用debug调试简单的源程序

使用debug调试简单的源程序

1、将下面的程序保存为t1.asm文件,将其生成可执行文件t1.exe:

assume cs:codesg

codesg segment

mov ax,2000h

mov ss,ax

mov sp,0

add sp,4

pop ax

pop bx

Push ax

Push bx

Pop ax

Pop ax

Mov ax,4c00h

Int 21h

Codesg ends

End

用debug跟踪t1.exe的执行过程,写出每一步执行后,相关寄存器的内容。PSP的头两个字节是CD 20,用debug加载t1.exe,查看PSP的内容。

2、编程,向内存0:200~0:23f依次传送数据0~63.

3、编程实现第2题的传送操作,程序中只能使用9条指令,这9条指令中包括“mov ax,4c00h”和“int 21h”.

4、下面程序的功能是将“mov ax,4c00h”之前的指令复制到内存0:200处,补全程序,上机调试,跟踪结果。

Assume cs:code

Code segment

Mov ax,_cs__

Mov ds,ax

Mov ax,0020h

Mov es,ax

Mov bx,0

Mov cx,_17h__ S: mov al,[bx]

Mov es:[bx],al

Inc bx

Loop s

Mov ax,4c00h

Int 21h

Code ends

end

DEBUG调试程序的应用实验的报告.doc

电子电气工程学院学生实验报告 专业级 1 班 2 组姓名学号 课程名DEBUG 调试程序的应用指导教师成绩 一,实验预习 实验序号1实验题目DEBUG调试程序的应用预习日期 要求: 1.实验目的; 2,实验原理; 3,画出实验原理图; 4 实验设备; 5,预习内容(该实验完成的内容);6,记录表格设计 一实验目的 1、了解 DEBUG调试程序常用命令的基本格式、主要功能和使用方法。 2、熟悉进入或退出DEBUG调试程序运行界面的步骤。 3、掌握用DEBUG调试程序进行程序编辑、调试、运行、结果检查的基本方法。 4、进一步汇编语言上机环境及基本操作 二实验原理 1,启动 DEBUG程序,在 DEBUG环境下建立和汇编程序2,输入程序并汇编 A 2,_A 100 169C(CS):0100(ip) MOV DL, 33 ;DEBUG默认 16 进制数 169C: 0102 MOV AH,2 ;dos 的 2 号功能调用 169C: 0104 INT 2l ;功能调用 169C: 0106 INT(中断)20 ;中断 169C: 0108 ;回车结束程序的输入 3.运行程序_G=0100(全速运行)得到 3 4,用反汇编命令_U。然后分析该程序的指令:33 的 ascll 的值为 3, MOV 是将原操 作数送到DL 中( DL 为目标操作数)。 5,将机器指令程序送到起始地址为200H 的若干单元 6,执行机器指令程序_G=0200得到 3 7,执行 T 命令,实现单步运行。 8,执行 D 命令查看存储单元的原值。 E 是修改内存, R 显示修改内存命令。 四实验设备 微型计算机一台

实验一-DEBUG的使用(1)

实验一DEBUG的使用 一、实验目的 熟练掌握DEBUG的常用命令以及使用DEBUG调试程序的一般方法。 二、实验内容 1.熟悉DEBUG的常用命令 通过CMD命令进入DOS方式,运行DEBUG程序,练习DEBUG常用命令(DEBUG 常用命令详细说明见五和六)。 2.使用DEBUG调试程序 (1)用CMD命令进入DOS方式。 (2)运行DEBUG程序。 (3)使用A命令将以下笑脸程序逐行输入。 MOV DL,1 MOV AH,2 INT 21H INT 20H (4)使用T命令逐条指令运行笑脸程序,观察每条指令执行前后相关寄存器的内容变化情况。 (5)使用G命令连续运行笑脸程序,观察程序运行结果。 (6)使用R命令修改寄存器BX和CX的内容为笑脸程序的长度。 (7)使用N命令将笑脸程序命名为https://www.sodocs.net/doc/164548338.html,。 (8)使用W命令将笑脸程序写到指定磁盘的指定路径目录中。 (9)退出DEBUG,进入笑脸程序所在目录。 (10)运行笑脸程序https://www.sodocs.net/doc/164548338.html,。观察程序运行结果。 (11)用DEBUG调试已生成的https://www.sodocs.net/doc/164548338.html,程序。 三、实验要求 认真完成实验每一步骤,详细记录实验过程、现象和结果,及时整理实验报告。

四、实验作业 1.用A命令或E命令将笑脸程序中第1条指令中的立即数修改为46,重复步骤(4)~(10),观察程序运行结果,分析为什么? 如果要将笑脸程序修改为显示别的字符程序,如何修改程序? 2.如果想无限循环显示笑脸,如何修改程序? 3.写出实验体会。 五、DEBUG简介 DEBUG是一种面向汇编语言的动态调试工具,共有19条命令。DEBUG提供了可以跟踪、测试程序的环境和条件,使编程者能对. EXE和.COM文件的执行进行动态跟踪调试,能够较快地查找出文件中的逻辑错误和检查程序的运行结果。此外,也可以在进入DEBUG后直接用小汇编语言(ASM)编写、调试一些小程序。 Microsoft DEBUG命令的具有以下共性: (1)DEBUG提示符为“-”。 (2)任何命令都以一个英文字母开头,后面跟一个或多个参数。 (3)命令字母和参数可用大写、小写或混合形式。 (4)命令字母和参数中相邻两个十六进制数之间必须用逗号或空格分开,其它各部分之间有无空格或逗号都可以。 (5)执行任何命令期间都可用Ctrl+Break或Ctrl+C结束命令的执行。 (6)键入命令字母和参数后必须按回车键才能使命令有效。 (7)在执行某命令期间,可按Ctrl + NumLock键暂停显示以便观察。再按任何其它键,则继续显示。 (8)DEBUG检查输入命令的语法错误,即如果输入的命令有错误,将显示错误信息。 (9)在DEBUG程序状态下,控制键和DOS支持的编辑键继续有效。 (10)DEBUG的启动方式有两种: 1)在DOS提示符下键入: DEBUG ADD.EXE (“”表示回车键,下同) 将出现DEBUG状态的提示符“-”,系统这时已处于DEBUG程序的管理下,并把指定的可执行文件ADD.EXE调入内存。此时,用户可在提示符

实验一 DEBUG的使用

实验一 DEBUG的使用 实验目的: 1.学习使用DEBUG程序的各种命令。 2.掌握8088/86指令系统---算数指令。 3.掌握用DEBUG调试自编程序的方法。 4.掌握8088/8086 CPU寄存器的用途和存储器组织及它们之间的关系。 5.掌握内存操作数及寻址方法。 6.掌握汇编语言伪操作:BYTE PTR,WORD PTR。 内容及步骤: 一、DEBUG 命令使用: 1、敲 DEBUG 进入 DEBUG 环境,显示提示符 '_ '。 2、用命令 D100 10F 观察内存中的16进制码及屏幕右边的ASCII字符。 3、用命令 E100 30 31 32 …… 3F 将30H~3FH写入地址为100H开始的内存单元中, 再用D命令观察结果,看键入的16进制数是什么字符的ASCII码? 4、用命令 F100 10F 'A' 将'A'的ASCII码填入内存,用D命令查看结果。 5、用命令 F110 11F 41 将41H 填入内存,用D命令观察结果并比较。 6、用R 命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内 容。 7、用R命令将AX,BX内容改写为1234H及5678H。 8、用H命令检查下列各组16进制数加减结果并和你的手算结果比较: (1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758,347FH 二、8088常用指令练习 1、传送指令 1)用A命令在内存100H处键入下列内容: MOV AX,1234 MOV BX,5678 XCHG AX,BX MOV AH,34 MOV AL,56 MOV CX,75AB XCHG AX,CX 2)用U命令检查键入的程序,特别注意左边的机器码。 3)用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。并注意标志位有无变化。 2、加减法指令: 1)用A命令在内存200H处键入下列内容:

有图示的用DEBUG调试程序过程示例

用DEBUG调试程序示例 例如:编程实现两个字类型的数相加,把和存在存储单元中,并且用debug查看程序的运行结果,检查程序运行结果的正确性。 参考源程序如下: DATA SEGMENT NUM1 DW 1234H NUM2 DW 5678H SUM DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,NUM1 ADD AX,NUM2 MOV SUM,AX MOV AH,4CH INT 21H CODE ENDS END START 假设把源程序命名为jiafa.asm,输入源程序后,完成汇编、连接的过程,则生成了可执行文件jiafa.exe。运行此可执行文件时在屏幕上无显示结果。在debug下调试程序的步骤示例如下: 一、进入debug,同时把被调试程序调入内存。 回车后即进入了debug程序,结果如下图所示: 注意:被调试的是可执行文件,而且文件必须写全名,不能只写主文件名。 二、用u命令反汇编(输入u后回车),以便查找需要设置断点的地址。

三、设置断点运行 断点可以设置在程序中的任意一条指令的首地址处,但为了能够查看到程序的运行结果,一般把断点设置在主程序运行完并且程序退出之前,例如程序的最后两条指令是 MOV AH, 4CH INT 21H 则把断点设置在MOV AH, 4CH处,(如果程序较长,一次反汇编没有找到上述指令,再次输入u命令后回车,直到显示上述指令为止,),对于本例,显示如下图所示的结果。 如上图示例中的指令mov ah,4ch的偏移地址是0000F,指令int 21h(debug下默认为16进制,不显示h)的偏移地址是0011,则用G命令设置断点运行时输入g0F(g是debug下的程序运行命令,后面的数字0F是刚才选定的断点地址)回车后结果如下图: 为了能够查看你的程序在内存单元中存放的数据,必须设置断点运行不能只用G命令,并且断点必须是你程序中的某条指令,一般设置在MOV AH, 4CH处。 四、查看内存单元中的数据 查看内存单元的内容用D命令,格式之一如下: D段地址:偏移地址

实验一: 调试工具DEBUG的使用

《微型计算机技术实验》 实验一:调试工具DEBUG的使用 一.实验目的 掌握调试工具DEBUG的使用方法,理解汇编指令、存储单元和寄存器等有关概念,能够对简单的汇编语言程序进行调试。 二.实验内容 (1)学习调试工具DEBUG的使用方法,熟悉DEBUG常用命令的功能和用法。 (2)利用DEBUG调试简单的汇编语言程序,体会汇编指令的功能、寄存器的作用、存储单元地址与内容的概念和作用、以及程序的执行过程。 三.实验要求 (1)掌握DEBUG的常用命令和基本的程序调试方法 (2)熟悉和掌握指令系统常用指令的功能和用法,能熟练运用DEBUG调试工具调试简单的程序 四.实验指导 1、DEBUG 命令使用 1)键入 DEBUG 进入 DEBUG 控制状态,显示提示符 '- '。 例如:C:\DEBUG - 2)用命令 F 100 10F 'A' 将'A'的ASCII码填入内存。

(命令格式: F<范围><单元内容表>) 3)用命令 D 100 10F 观察内存中的十六进制码及屏幕右边的ASCII字符。(命令格式: D<地址范围>) 4)用命令 F 110 11F 41 重复上二项实验,观察结果并比较。 5)用命令 E 100 30 31 32 …… 3F将30H-3FH写入地址为100开始的内存单元中,再用D命令观察结果,看键入的十六进制数是什么字符的ASCII码? (命令格式: E<地址><批单元内容表>)6)用R命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。 7)用R命令将AX,BX内容改写为1050H及23A8H。 (命令格式: R<寄存器名>) 2、常用指令练习 1)内存操作数及各种寻址方式使用 ①用A命令在内存100H处键入下列内容: (注意:MOV 传送指令,INC加一指令,DEC 减一指令) -A 0100 MOV AX,1234 MOV [1000],AX MOV BX,1002 MOV BYTE PTR[BX],20 MOV DL,39 INC BX

利用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个字节容 说明:指定要显示其容的存区域的起始和结束地址,或起始地址和长度。 ①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

实验一-Keil软件的使用及简单程序的调试方法

实验一Keil软件的使用及简单程序的调试方法 一、实验目的 掌握Keil的使用方法和建立一个完整的单片机汇编语言程序的调试过程及方法。 二、实验器材 计算机1台 三、实验内容 1.Keil的使用方法。 2.建立一个单片机汇编语言程序的调试过程及方法 四、实验步骤 1.Keil的使用方法。Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C 语言的程序设计,界面友好,易学易用。启动Keil 后的界面如下:

几秒钟后即进入Keil的编辑界面。用户便可建立项目及应用程序。 2.简单程序的调试方法 Keil是通过项目工程来管理汇编程序的。因此在调试程序前必须建立一个工程,工程名称及保存位置由用户来指定,注意每位同学的工程名称用“学号姓名实验*”来命名。 (1)建立一工程 单击Project菜单,在弹出的下拉菜单中选中New Project选项。并在弹出的对话框中确定保存的位置及工程名称。 又弹出一对话框,要求用户选择相应的硬件CPU及相关设置。选择Atmel公司的AT89C51单片机。如下图所示

单击“确定”后在弹出的对话框中行选择“否”即工程建好了,但该工程没有任何语句,需要再建一个程序文件并将其添加到此工程中。 (2)建一文件 单击“File”/“New”命令,则弹出文件的编辑窗口,此时该文件还没有指明其文件名称及保存位置,该文件还没有加载到所建立的工程中。单击“File”/“Save”命令在弹出的对话框中指明文件的类型为.ASM汇编型及文件名后单击“保存”即可进行汇编源文件的编辑。如下图所示。 (3)将文件添加到工程中 单击“T arget 1”前的“+”号则展开后变成“-”号,并右键单击“Source Group 1”在弹出的下拉菜单中执行“Add Files to Group ‘Source Group 1’”命令并弹出对话框在该对话框中的“文件类型”下拉列表中选择“Asm source file”后找到要添加的文件名并选中,单击“Add”即可。

实验一 RFID设备调试及软件开发_学

实验一RFID读写器调试 学号: 姓名: 一、实验目的 1、学习各类RFID读卡器的使用。 2、掌握RFID读卡器程序设计的方法。 3、理解基于QT的RFID案例程序。 二、实验内容 调试CBT-IOT赛百特物联网实验箱HF高频读卡器,对ISO14443A卡进行识别、数据操作,并分析其通信协议。 调试FR105 HF高频读卡器,对ISO15693、ISO14443A卡进行识别,以及数据操作,并分析其通信协议。 调试FR1200 UHF超高频读卡器,对ISO18000-6C卡进行识别,以及数据操作,并分析其通信协议。 调试基于各种RFID读卡器的QT程序,包括电子钱包、公交卡充值、上班刷卡考勤系统、车流量统计、药品出入库、电子锁控制等应用,分析程序与读卡器之间的串口通信。

三、实验预备知识 1、CBT-IOT实验箱HF高频读写器 CBT- IOT实验箱HF板载模块特点: ●工作频率:13.56MHz ●芯片:MF RC531(高集成非接触读写卡芯片) ●支持ISO/IEC 14443A/B和MIFARE经典协议 ●支持mifare1 S50等多种卡类型 ●最大工作距离:100mm,最高波特率:424kb/s ●支持lCrypto1加密算法并含有安全的非易失性内部密匙存储器 ●处理器 STM8S105高性能8位架构的微控制器,主频24MHz ●通信方式:串口TTL,可直接插接无线通讯模块组网开发,多模块无线组网通讯●电源:DC 5V 串口设置:波特率115200bps,数据位8,停止位1,无校验位 通信协议: SOF Sensor typle Sensor id Cmd id Data Exten Data END 2Byte 1Byte 1Byte 1Byte 6Byte 2Byte 1Byte 说明: SOF:固定为0xEE 0xCC,标志一帧的开始。 Sensor typle:传感器类型,RFID为0xFE。 Sensor id:固定为0x01,为RFID读卡器的编号。 Cmd id:命令ID,0x01为充值,0x02为扣款,0x03为查询。

实验一 DEBUG调试工具的熟悉

实验1 DEBUG的使用及程序调试方法 一、实验目的 通过本实验使学生掌握调试工具DEBUG的使用方法、理解汇编指令、存储单元和寄存器等有关概念,能对简单的汇编语言程序进行调试。 二、实验原理 DEBUG是DOS、WINDOWS都提供的实模式(8086方式)程序的调试工具,在DOS 方式下工作。使用它可以读写、传送、查看CPU各种寄存器中的内容、显示内存单元的内容、设置程序起始执行地址或断点、机器码级跟踪程序的运行。用DEBUG编程简单、方便和直观,可以直接查看程序的执行情况,便于熟悉和理解指令,掌握基本编程技巧。 DEBUG只使用十六进制表示数据(十六进制后面不加H),且对字母的大小写不敏感。 常用到的DEBUG功能: ?用DEBUG的R命令查看、改变CPU寄存器的内容 ?用DEBUG的D命令查看内存中的内容 ?用DEBUG的E命令修改内存中的内容 ?用DEBUG的U命令将内存中的机器指令翻译成汇编指令 ?用DEBUG的T命令执行一条机器指令 ?用DEBUG的A命令以汇编指令的格式在内存中写入一条机器指令 三、实验内容 (1)学习调试工具DEBUG的使用方法,熟悉DEBUG常用命令的功能和用法。 (2)利用DEBUG调试简单的汇编语言程序,体会汇编指令的功能、寄存器的作用、存储单元地址与内容的概念和作用,以及程序的执行。 四、实验方法与步骤 1.DEBUG的进入与退出 DEBUG是在DOS方式下使用的程序。在进入DEBUG前,应先以从 WINDOWS 2000/XP中进入DOS方式(进入的是虚拟8086模式的DOS)。 方法:选择【开始】菜单中的【运行】命令,打开【运行】对话框,在文本框中输入“cmd”后,单击【确定】按钮或按下键盘上的【Enter】键。在命令提示符后输入”debug”后按下键盘上的【Enter】键。 2. 显示寄存器命令 R 功能:用于查看和改变CPU寄存器的内容 格式:R [<寄存器>] 说明:当R命令后面不指定寄存器时,显示所有寄存器的内容 例1-1 显示所有寄存器的内容 -r AX=0200 BX=0000 CX=0000 DX=0041 SP=FFEE BP=0000 SI=0000 DI=0000 DS=138A ES=138A SS=138A CS=138A IP=0100 NV UP EI PL NZ NA PO NC 138A:0100 B241 MOV DL,41 例1-2 修改寄存器的内容 -r ax AX 0200 100 -r AX=0100 BX=0000 CX=0000 DX=0041 SP=FFEE BP=0000 SI=0000 DI=0000

实验一调试程序DEBUG的使用实验报告

南昌理工学院实验报告 二O一二年月日 课程名称:微机原理与接口技术实验名称:调试程序DEBUG的使用班级:姓名:同组人: 指导教师评定:签名: 【一、实验名称】 调试程序DEBUG的使用 【二、实验目的】 1.掌握汇编程序的编辑,编译,连接和执行的全过程; 2.学习和掌握用DEBUG 调试程序的方法。 【三、实验内容和原理】 1.用编辑软件,输入以下汇编语言源程序: DAT SEGMENT A D B 20 ;(自定) B DB 15 ;(自定) Y DB 3 DUP(0) Z DB 0,0 DAT ENDS STA SEGMENT STACK DW 50 DUP(?) STA ENDS COD SEGMENT ASSUME CS:COD,DS:DAT STAR PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DAT MOV DS,AX MOV AX,STA MOV SS,AX MOV AL,A MOV Z,AL MOV Z+1,AL CALL SUB1 MOV AL,B MOV Z,AL MOV Z+1,AL CALL SUB1 MOV AL,A MOV Z,AL MOV AL,B MOV Z+1,AL CALL SUB1 ADD WORD PTR Y,AX ADC BYTE PTR[Y+2],0 RET STAR ENDP SUB1 PROC MOV AL,Z MOV AH,Z+1 MUL AH ADD WORD PTR Y,AX ADC BYTE PTR[Y+2],0 RET SUB1 ENDP COD ENDS END STAR

VB程序调试技巧

一,如果遇到了一些逻辑性很强的问题比如有循环什么的我的方法是在关键地方加入 变量 这样可以比较好地找到问题 二,msgbox 三,监视窗口,如下面的例子 For i=1 to 10000 A=sqr(i) next i 你想再监视当i=799时A的值,就可以添加监视,方法:点调试,添加监视,选择“当监视值为真时中断”,上面表达式框中写上i=799, 这样你按F5,运行程序,程序会在i=799时中断。其他选项你可以自己去琢磨一下。 一个程序如何顺利的“脱产”,调试的过程是非常重要的。学过、钻研过程序设计的人都有同样的感受,很多情况下,调试程序的过程会比程序编写的过程更为困难。任何一个天才都不敢说,他编的程序是100%正确的。几乎每一个稍微复杂一点的程序都必须经过反复的调试、修改,最终才完成。所以说,程序的调试是编程中的一项重要技术。 程序中的典型错误类型 A类:语法错误。 B类:编译错误。

C类:属性设置错误。 D类:逻辑错误。 调试方法 方法一:利用“MSDN帮助菜单” “MSDN帮助菜单”是一个很好的自学工具,对于出现调试对话框的菜单来说,可以按下“帮助”按钮查看错误原因。 对于一些不是很清楚的函数格式、保留字的作用,也可以借助“帮助菜单”。 方法二:逐过程检查 主要检查代码是否写对,位置有没有错误,关键是要确定一段代码是在哪个事件控制下的。 不妨先在脑海中把整个程序过一边,想一想究竟会有哪些事件发生(有些事件是人机互动的,例如:鼠标点击;而有些是机器自己执行的,这时要想到计时器的作用);然后想一想每一件事发生后有什么效果。我们代码所编写的一般就是事件发生后的这个效果,那么以此事件来决定代码所写的位置。

实验一 Keil软件的使用及简单程序的调试方法

实验一 Keil软件的使用及简单程序的调试方法 一、实验目的 掌握Keil的使用方法和建立一个完整的单片机汇编语言程序的调试过程及方法。 二、实验器材 计算机1台 三、实验内容 1.Keil的使用方法。 2.建立一个单片机汇编语言程序的调试过程及方法 四、实验步骤 1.Keil的使用方法。Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C 语言的程序设计,界面友好,易学易用。启动Keil 后的界面如下: 几秒钟后即进入Keil的编辑界面。用户便可建立项目及应用程序。 2.简单程序的调试方法 Keil是通过项目工程来管理汇编程序的。因此在调试程序前必须建立一个工程,工程

名称及保存位置由用户来指定,注意每位同学的工程名称用“学号姓名实验*”来命名。 (1)建立一工程 单击Project菜单,在弹出的下拉菜单中选中New Project选项。并在弹出的对话框中确定保存的位置及工程名称。 又弹出一对话框,要求用户选择相应的硬件CPU及相关设置。选择Atmel公司的AT89C51单片机。如下图所示 单击“确定”后在弹出的对话框中行选择“否”即工程建好了,但该工程没有任何语句,需要再建一个程序文件并将其添加到此工程中。 (2)建一文件 单击“File”/“New”命令,则弹出文件的编辑窗口,此时该文件还没有指明其文件名称及保存位置,该文件还没有加载到所建立的工程中。单击“File”/“Save”命令在弹出的对话框中指明文件的类型为.ASM汇编型及文件名后单击“保存”即可进行汇编源文件的编辑。如下图所示。

实验一 利用DEBUG调试程序调试程序段

实验一利用DEBUG调试程序调试程序段1.实验目的 (1)熟悉DEBUG有关命令的使用方法。 (2)利用DEBUG掌握有关指令的功能。 (3)利用DEBUG运行简单的程序段。 2.实验内容、实验步骤 (1)进入和退出DEBUG程序。 进入DEBUG程序,Windows中在命令提示符下进入DEBUG如图:退出DEBUG如图: (2)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命 令等的使用。对于U命令、N命令、W命令等,也应试一下。 R命令: 1)显示所有寄存器内容: 格式:-R↙ 功能:以十六进制形式显示CPU内部各寄存器的值:以符号形式标志寄存 器各标志位(除TF外)的值,并将CS:IP所指的内存内容反汇编成一条指 令,可视为将要执行的指令。 ●从显示可知,CS=11A7H, IP=0000H. 2)修改寄存器 格式:-R 寄存器名↙ 功能:DEBUG首先显示指定寄存器的当前值,并在下一行首给出提示“:”, 等待用户输入新值,若直接回车相当于不个忙寄存器的值。 ●由显示可知,用E命令修改,再查看可发现数据已经被改了。

3)修改标志值 格式:-RF↙ 功能:先用符号显示当前各标志位的值,并在末尾给出提示符“-”,然后等待用户以符号形式输入新的标志值,对输入的次序没有要求,各标志值之间也可没有空格;若直接在“-”之后回车,则保留原标志值。 ●由显示可知,相应的标志值改变了。 A命令 格式:-A内存地址↙ ●执行汇编命令A后,相应的指令对应的机器码将会依次存放在指定的 内存单元中,并提示下一地址。 U命令 格式:-U 内存块↙

●由显示可知,反汇编命令U从指定的内存地址开始对内存块进行反汇 编,并分三列显示反汇编的结果。 N命令 格式:-N【e】【PA TH】文件名.扩展名↙ W命令L命令 格式:-W/L 内存地址 ●由显示可知,命令N为命令W和命令L指定文件,而命令W把指定 内存块的内容写入命令N指定文件中,命令L则将其文件装入内存地址中。 T命令 1)单步执行 格式:-T=内存地址↙ ●由显示可知,T命令将内存地址的段地址和偏移地址修改CS和IP,然 后执行由CS:IP指向的内存单元处的一条指令,显示各寄存器的值,并反编下一条指令,然后返回DEBUG状态。

PLC程序调试方法及步骤

来源:中国物资采购网时间:2010年5月6日11时20分【大中小】PLC程序的调试可以分为模拟调试和现场调试两个调试过程,在此之前首先对PLC外部接线作仔细检查,这一个环节很重要。外部接线一定要准确无误。也可以用事先编写好的试验程序对外部接线做扫描通电检查来查找接线故障。不过,为了安全考虑,最好将主电路断开。当确认接线无误后再连接主电路,将模拟调试好的程序送入用户存储器进行调试,直到各部分的功能都正常,并能协调一致地完成整体的控制功能为止。 1.程序的模拟调试 将设计好的程序写入PLC后,首先逐条仔细检查,并改正写入时出现的错误。用户程序一般先在实验室模拟调试,实际的输入信号可以用钮子开关和按钮来模拟,各输出量的通/断状态用PLC上有关的发光二极管来显示,一般不用接PLC实际的负载(如接触器、电磁阀等)。可以根据功能表图,在适当的时候用开关或按钮来模拟实际的反馈信号,如限位开关触点的接通和断开。对于顺序控制程序,调试程序的主要任务是检查程序的运行是否符合功能表图的规定,即在某一转换条件实现时,是否发生步的活动状态的正确变化,即该转换所有的前级步是否变为不活动步,所有的后续步是否变为活动步,以及各步被驱动的负载是否发生相应的变化。 在调试时应充分考虑各种可能的情况,对系统各种不同的工作方式、有选择序列的功能表图中的每一条支路、各种可能的进展路线,都应逐一检查,不能遗漏。发现问题后应及时修改梯形图和PLC中的程序,直到在各种可能的情况下输入量与输出量之间的关系完全符合要求。 如果程序中某些定时器或计数器的设定值过大,为了缩短调试时间,可以在调试时将它们减小,模拟调试结束后再写入它们的实际设定值。 在设计和模拟调试程序的同时,可以设计、制作控制台或控制柜,PLC之外的其他硬件的安装、接线工作也可以同时进行。 2.程序的现场调试 完成上述的工作后,将PLC安装在控制现场进行联机总调试,在调试过程中将暴露出系统中可能存在的传感器、执行器和硬接线等方面的问题,以及PLC的外部接线图和梯形图程序设计中的问题,应对出现的问题及时加以解决。如果调试达不到指标要求,则对相应硬件和软件部分作适当调整,通常只需要修改程序就可能达到调整的目的。全部调试通过后,经过一段时间的考验,系统就可以投入实际的运行了。 本文来自: 中国物资采购网https://www.sodocs.net/doc/164548338.html, 详细出处参考:https://www.sodocs.net/doc/164548338.html,/newsinfo/2010-5-6/201056-11200321719338297.html PLC程序现场调试指在工业现场,甩有设备都安装好后,所有连接线都接好后的实际调试。也是PLC程序的最后调试。现场调试的目的是,调试通过后,可交给用户使用,或试运行。现场调试参与的人员较多,要组织好,要有调试大纲。依大纲,按部就班地一步步推进。开始调试时,设备可先不运转,甚至了不要带电。可随着调试的进展逐步加电、开机、加载,直到按额定条件运转。具体过程大体是: 1)、要查接线、核对地址。要逐点进行,要确保正确无误。可不带电核对,那就是查线,较麻烦。也可带电查,加上信号后,看电控系统的动作情况是否符合设计的目的。 2)、检查模拟量输入输出。看输入输出模块是否正确,工作是否正常。必要时,还可用标准仪器检查输入输出的精度。 3)、检查与测试指示灯。控制面板上如有指示灯,应先对应指示灯的显示进行检查。一方面,查看灯坏了没有,另一方面检查逻辑关系是否正确。指示灯是反映系统工作的一面镜子,先调好它,将对进一步调试提供方便。 4)、检查手动动作及手动控制逻辑关系。完成了以上调试,继而可进行手动动作及手动

实验一调试程序DEBUG的使用实验精选报告.doc

南昌理工学院实验报告 二 O 一二年月日 课程名称:微机原理与接口技术实验名称:调试程序 DEBUG 的使用 班级:姓名:同组人: 指导教师评定:签名: 【一、实验名称】 调试程序 DEBUG的使用 【二、实验目的】 1.掌握汇编程序的编辑 ,编译 ,连接和执行的全过程; 2.学习和掌握用 DEBUG 调试程序的方法。 【三、实验内容和原理】 1.用编辑软件 ,输入以下汇编语言源程序: DATSEGMENT ADB20;( 自定 ) BDB15;( 自定 ) YDB3DUP(0) ZDB0,0 DATENDS STASEGMENTSTACK DW50DUP(?) STAENDS CODSEGMENT ASSUMECS:COD,DS:DAT STARPROCFAR PUSHDS XORAX,AX PUSHAX MOVAX,DAT MOVDS,AX MOVAX,STA MOVSS,AX MOVAL,A MOVZ,AL MOVZ+1,AL CALLSUB1 MOVAL,B MOVZ,AL MOVZ+1,AL CALLSUB1 MOVAL,A MOVZ,AL MOVAL,B MOVZ+1,AL CALLSUB1 ADDWORDPTRY,AX ADCBYTEPTR[Y+2],0 RET STARENDP SUB1PROC MOVAL,Z MOVAH,Z+1 MULAH ADDWORDPTRY,AX ADCBYTEPTR[Y+2],0 RET SUB1ENDP CODENDS ENDSTAR

2.通过编译 ,连接形成可执行文件; 3.用 DEBUG 将可执行文件调入 ,并进行调试; (1)用 D 命令观察数据区在内存中的具体内容,记录单元 A 和 B 的具体地址; (2)用 U 命令对目标代码反汇编 ,观察反汇编后的结果 .注意发现源程序的起始位 置 ,并记录这个起始地址; (3)用 T 命令作单步跟踪调试 .比较每条指令执行后的结果和原来的理解是否一致 . 得出程序运行的结果 :它们是写在什么单元 ,具体内容是什么,并判断结果是否正确; (4)在子程序 SUB1 的入口处设一断点 ,用 G 命令执行程序,在断点处观察堆栈的 内容 ,比较堆栈的内容和程序返回地址是否一致; (5)用 E 命令修改单元 A,B 的内容 ,重新执行程序 ,并记录结果; (6)用 M 命令和 A 命令对程序进行修改 :将主程序中最后两条指令 (ADD 和 ADC) 修改为一条 CALLSUB1 指令 ,重新执行程序; (7)退出 DEBUG ; 4.重新使用编辑软件 ,把源程序最后一句中的 STAR 去掉 .再次生成可执行文件 ,并用 DEBUG 调入内存 .当使用 U 命令时 ,显示的结果与前一次 (未加 STAR) 的结果有何不同 ? 【四、实验条件】 微型计算机一台,软件MASM 【五、实验过程】 根据实验内容,按步骤完成。 【六、实验结果】 (1) U 命令对目标代码反汇编 ,注意发现源程序的起始位置 ,并记录这个起始地址。 答:源程序起始地址: 1512:0000H。 (2)D 命令观察数据区在内存中的具体内容,记录单元 A 和 B 的具体地址。 答: 150A:0000H 是 A 的具体地址, 150A:0001H 是 B 的具体地址。 (3)T 命令作单步跟踪调试 .比较每条指令执行后的结果和原来的理解是否一致。得 出程序运行的结果 :它们是写在什么单元 ,具体内容是什么,并判断结果是否正 确。 答:由于单步调试的结果较多,在这里仅说几项以示情况。 ①PUSHAX 后观察得到 IP 值自加 2。 ②MOVDS,AX 后 DS 的值由 14FAH 变成 150AH 。 ③Z 的偏移地址为 0005H,而寻址 Z 中的内容成为 [0005H] 。 所以结果一致正确。 (4)在子程序 SUB1 的入口处设一断点 ,用 G 命令执行程序,在断点处观察堆栈的 内容 ,比较堆栈的内容和程序返回地址是否一致。 答: SS=150BH,IP=0017H,和程序返回地址一致。 (5)重新使用编辑软件 ,把源程序最后一句中的 STAR 去掉 .再次生成可执行文件 , 并用 DEBUG 调入内存 .当使用 U 命令时 ,显示的结果与前一次 (未加 STAR)的结果有何不同 ? 答:整个代码段仅有一条指令,ADD[BX+SI],AL 。 由于把源程序最后一句中的 STAR 去掉,那么程序就不一定是从 STAR 开始,会 造成程序混乱。

DEBUG调试程序 (2)

一、实验目的 1、掌握DEBUG的常用命令,学会使用DEBUG。 2、深入了解数据在存储器中的存取方法,及堆栈中数据的压入和弹出。 3、掌握各种寻址方法以及简单指令的执行过程。 二、实验设备及环境 1.安装Windows 7操作系统的计算机 三、实验内容及步骤(截图并对图示进行必要的文字说明) 1、练习debug的命令 1、汇编命令A(Assemble Command)将汇编语言程序直接会变进入内存 2、反汇编命令U(Unassemble Command)将制定地址范围内的代码以汇编语言 形式显示,同时显示该代码位于内存的地址和机器码

3.显示内存单元内容命令D(Dump Command)显示制定内存范围的内容 显示偏移地址为100-115的内容: 4. 修改存储单元内容命令E(Enter Command) a. 用命令所给定的内容表去代替指定地址范围的内存单元内容。 b. 一个单元一个单元地连续修改单元内容。 例:往200H为起始地址的单元存放一串16进制数。 查看这些数据是否替换了原来单元的内容 5、检查和修改寄存器内容命令R(Register Command) 格式:a. R b. R [寄存器名]

功能:a. 显示CPU所有寄存器的内容和全部标志位状态。 b. 显示和修改一个指定寄存器内容和标志位的状态。 例如:显示所有寄存器的内容和全部标志位状态 例如:修改寄存器BX的内容为3000 例如:修改标志位零ZF为ZR,方向标志DF为DN 6、单步执行命令T(Trace Command) 格式:a. T[=地址] b. T[=地址] [条数] 例:用T命令格式b执行以上程序: 若单步执行3条指令,可采用b格式。 7、运行命令G(Go Command)执行用户正在调试的程序

利用DEBUG调试大全语言程序段

利用D E B U G调试大全语 言程序段 LG GROUP system office room 【LGA16H-LGYY-LGUA8Q8-LGA162】

利用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 结果:08F1:0100 41 42 43 44 48 47 46 45 例2: -E 100: 08F1:0100 76 42 :42是操作员键入

Keil-C51程序调试过程

如何使用Keil C软件调试单片机程序 调试一般都是在发生错误与意外的情况下使用的。如果程序能正常执行,调试很多时候都是用不上的。所以,最高效率的程序开发还是程序员自己做好规范,而不是指望调试来解决问题。 单片机的程序调试分为两种,一种是使用软件模拟调试,第二种是硬件调试。 使用软件模拟调试,就是用计算机去模拟单片机的指令执行,并虚拟单片机片内资源,从而实现调试的目的。但是软件调试存在一些问题,不可能像真正的单片机运行环境那样执行的指令能在同一个时间完成(往往比单片机慢)。软件调试只能是一种初步的,小型工程的调试,比如一个只有几百上千行的代码的程序,软件调试能很好的完成。 硬件调试其实也需要计算机软件的配合,大致过程是这样的:计算机软件把编译好的程序通过串行口、并行口或者USB口传输到仿真器,然后与单片机一样执行。仿真器仿真全部的单片机资源(所有的单片机接口,并且有真实的引脚输出)。仿真器会将单片机内部内存与时序等情况返回给计算机,这样就可以在计算机里看到单片机程序真实的执行情况。不仅如此,还可以通过计算机的软件实现单步、全速、运行到光标的常规调试手段。仿真器可以接入实际的电路中。 图1:仿真器 下面将具体介绍如何使用Keil uVision 软件来调试单片机程序。 首先:打开一个已经编译通过的单片机项目。选择Debug下面的Start/Stop Debug Session,这个选项可以打开调试也可以关闭调试。

接下来看到的窗口就是调试窗口了: 下面具体说说相关子窗口的功能: 1、左侧的ProjectWorkspace Regs是片内内存的相关情况值;Sys是系统一些累加器、计数器等。Regs

DEBUG的使用及程序调试方法

实验一 DEBUG的使用及程序调试方法 一.实验目的 1、掌握常用DEBUG命令以及调试简单程序。 2、掌握常用汇编指令的功能及其书写格式。 3、掌握在DUBUG下进行简单程序设计并调试。 二.实验环境 微型计算机一台 DOS或WINDOWS操作系统,MASM开发套件。 三.实验原理 DEBUG是专门为汇编语言设计的调试工具软件,它通过单步、设置断点等方式,为使用者提供了非常有效的调试手段。在DEBUG 下所有输入的数据都是十六进制,所以不需要后面加H。并且不区分大、小写字母。 1、直接启动DEBUG程序 如https://www.sodocs.net/doc/164548338.html,在C盘的根目录下,启动的方法是: C:\>DEBUG _ 这时屏幕上会出现“_”提示符,等待键入DEBUG命令。 2、启动DEBUG程序的同时装入被调试文件 命令格式如下: C:\>DEBUG [d:][PATH]filename[.EXT] [d:][PATH]是被调试文件所在盘及其路径,filename是被调试文件的文件名,[.EXT]是被调试文件的扩展名。 3、DEBUG的主要命令

(1)检查和修改寄存器内容的命令R,它有三种方式:1)显示CPU内部所有寄存器内容和标志位状态,格式为:-R R命令显示中标志位状态的含义如下表所示: 标志名置位复位溢出Overflow(是/否)OV NV 方向Direction(减量/增量)DN UP 中断Interrupt(允许/屏蔽)EI DI 符号Sign(负/正)NG PL 零Zero(是/否)ZR NZ 辅助进位Auxiliary Carry(是/否)AC NA 奇偶Parity(偶/奇)PE PO 进位Carry(是/否)CY NC 2)显示和修改某个指定寄存器内容,格式为:-R 寄存器名例如输入:-R AX 系统将响应如下: AX F1F4 : 表示AX当前内容为F1F4,此时若不对其作修改,可按ENTER键,否则,输入修改后内容,如: -R BX BX 0369 :059F 则BX内容由0369改为059F 3)显示和修改标志位状态,命令格式为:-RF 系统将给出响应,如 OV DN EI NG ZR AC PE CY- 这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意。如 OV DN EI NG ZR AC PE CY-PONZDINV (2)显示内存单元内容的命令D,格式为:-D[地址]或-D[范围]

相关主题