实验一 初级程序的编写与调试实验
程序调试及实验报告

实验名称:程序调试实验实验日期:2023年3月15日实验地点:计算机实验室实验目的:1. 理解程序调试的基本概念和流程。
2. 掌握使用调试工具进行程序调试的方法。
3. 提高解决程序错误的能力。
实验环境:1. 操作系统:Windows 102. 编程语言:Python3.83. 调试工具:PyCharm实验内容:本次实验主要针对一个简单的Python程序进行调试,该程序实现了一个简单的计算器功能。
程序中存在一些错误,需要通过调试找出并修正。
一、实验步骤1. 编写程序首先,编写一个简单的Python程序,实现以下功能:- 输入两个整数- 计算并输出它们的和、差、积、商代码如下:```pythondef calculator():num1 = int(input("请输入第一个整数:"))num2 = int(input("请输入第二个整数:"))sum = num1 + num2difference = num1 - num2product = num1 num2quotient = num1 / num2print("和:", sum)print("差:", difference)print("积:", product)print("商:", quotient)calculator()```2. 运行程序运行程序,输入两个整数,观察输出结果。
3. 调试程序在运行程序的过程中,可能会发现以下错误:(1)输入非整数时,程序会报错。
(2)当第二个整数输入为0时,程序计算商会报错。
针对以上错误,进行如下调试:(1)使用try-except语句捕获输入错误,确保程序不会因为输入错误而崩溃。
修改后的代码如下:```pythondef calculator():try:num1 = int(input("请输入第一个整数:"))num2 = int(input("请输入第二个整数:"))sum = num1 + num2difference = num1 - num2product = num1 num2quotient = num1 / num2print("和:", sum)print("差:", difference)print("积:", product)print("商:", quotient)except ValueError:print("输入错误,请输入整数!")calculator()```(2)当第二个整数输入为0时,为了避免程序报错,可以添加一个判断条件,当第二个整数为0时,不进行除法运算。
实验报告中程序调试

一、实验目的1. 理解程序调试的基本概念和方法。
2. 掌握使用调试工具进行程序调试的技巧。
3. 提高解决程序错误的能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.73. 调试工具:PyCharm三、实验内容1. 编写一个简单的程序,实现以下功能:(1)读取一个整数n,并判断其是否为偶数。
(2)如果n是偶数,则输出n/2;如果n是奇数,则输出n+1。
2. 在程序中引入一个错误,使程序无法正常运行。
3. 使用调试工具定位错误,并修复错误。
四、实验步骤1. 创建一个Python文件,命名为“debug.py”。
2. 编写程序代码如下:```pythondef debug_function(n):if n % 2 == 0:return n / 2else:return n + 1try:n = int(input("请输入一个整数:"))result = debug_function(n)print("结果:", result)except ValueError:print("输入错误,请输入一个整数。
")```3. 在程序中引入一个错误,例如将输入部分改为以下代码:```pythontry:n = float(input("请输入一个整数:"))result = debug_function(n)print("结果:", result)except ValueError:print("输入错误,请输入一个整数。
")```4. 打开PyCharm,将“debug.py”文件导入到项目中。
5. 在PyCharm中设置断点,选择需要调试的代码行。
6. 启动调试模式,观察变量值的变化。
7. 定位到错误位置,发现输入部分将整数转换为浮点数,导致无法判断奇偶性。
实验1-1 C程序运行过程与调试程序方法

实验1-1 C程序运行过程与调试程序方法【实验目的】(1) 了解所用的计算机系统的基本操作方法,学会独立使用该系统(2) 了解在该系统上如何编辑、编译和运行一个C程序(3) 通过运行简单的C程序,初步了解C程序的基本特点(4) 熟练掌握调试C程序的方法和步骤【实验要求】(1) 通过实验熟练掌握运行C程序的方法和步骤(2) 通过实验熟练掌握调试C程序的方法和步骤【实验环境】(1) Microsoft XP操作系统(2) Microsoft VC++ 6.0【实验内容】1、程序改错题目描述:阅读下面程序段,编译调试程序,并改正错误语句。
int main(){printf(“This is a C program!\n”)return 0;}输入:无输出:修改程序段,输出正确结果样例输入:无样例输出:This is a C program!2、打印图形题目描述:编写一个C程序,输出以下信息。
****************输入:无。
输出:图形信息。
样例输入:无样例输出:****************提示:注意,每行间没有空行。
3、Hello, World!/acmhome/problemdetail.do?&method=showdetail&id=1452题目描述:这是历史上最简单的题目了,但是当你看到它并实现它时,也许历史上又将诞生一位程序设计高手,今后你将会爱上TOJ(就是你现在所做的系统啦),你会天天来这里AC(当你过了这一题就会提示你Accept,简称AC),爱上ACM(计算机届最权威、含金量最高的竞赛),还会交上好多的ACMERS,参加我们举行的ACM竞赛(有丰厚的证书和奖金哦^_^),最重要的是还有好多的ACM MM哦^_^,相信你能够在这里过得很开心。
输入:无输出:Hello, World!样例输入:无样例输出:Hello, World!提示:当心逗号后面有空格哦!4、Very Good!/JudgeOnline/problem.php?id=1474题目描述:编写一个C程序,输出以下信息:******************************Very Good!******************************数*可看出信息位置,注意,*也是输出的一部分,别光打印Very Good!输入:无。
实验1程序调试实验

实验 1 程序调试实验一:实验目的:1.学习及掌握汇编语言源程序的大体结构,明确程序中各段的功能和彼此之间的关系。
2.熟练掌握在计算机上成立、汇编、连接、调试及运行程序的方式。
3、熟悉和掌握DEBUG常常利用命令的利用二:实验内容:1.汇编语言源程序的成立2.将源程序文件汇编成目标程序文件一般情况下,MASM汇编程序的主要功能有以下3点:(1)检查源程序中存在的语法错误,并给犯错误信息。
(2)源程序经汇编后没有错误,则产生目标程序文件,扩展名为.OBJ。
(3)若程序中利用了宏指令,则汇编程序将展开宏指令。
汇编进程的错误分警告错误(Warning Errors)和严重错误(Severe Errors)两种。
其中警告错误是指汇编程序以为的一般性错误;严重错误是指汇编程序以为无法进行正确汇编的错误,并给犯错误的个数、错误的性质。
这时,就要对错误进行分析,找出原因和问题,然后再挪用屏幕编辑程序加以修改,修改以后再从头汇编,一直到汇编无错误为止。
3.用连接程序生成可执行程序文件经汇编以后产生的目标程序文件(.OBJ文件)并非是可执行程序文件,必需通过连接以后,才能成为可执行文件(即扩展名为.EXE)。
4.程序的执行成立了正确的可执行文件以后,就可以够执行该程序。
本程序当中没有效到DOS中断挪用指令,所以在屏幕上看不到程序执行的结果。
可以采用调试程序DEBUG来进行检查。
三:实验程序:1.两字节的二进制数加法要求:在存储单元A起有两字节的无符号加数,在单元B起有两个字节的无符号被加数,将其两数相加,结果存到C单元处。
设二进制数低字节数在前,高字节数在后。
DATA SEGMENTA DB 11H,22H ;概念一字节变量A,赋初值11H,其后内存字节单元中寄存22HB DB 33H,44H ;概念一字节变量B,赋初值33H,其后内存字节单元中存44HD DB?,? ;概念一字节变量D,并预留两个字节的空间DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA ;成立断与段寄放器的对应关系START:MOV AX,DATAMOV DS,AXMOV AL,A ;将A单元的内容赋给AL寄放器ADD AL,B ;将AL的内容与B中内容相加,并赋给ALMOV D,AL ;将AL的内容赋给D单元MOV AL,A+1ADC AL,B+1MOV D+1,ALMOV AH,4CH ;结束的正常语句INT 21HCODE ENDSEND START2. 在内存TAB开始的16个单元持续寄存了0-15的平方值(0-225),任给一个数X(0 ≤ X ≤15),求X的平方值,并把结果寄存在Y单元中。
程序的调试实验报告(范文2篇)

程序的调试实验报告(范文2篇)以下是网友分享的关于程序的调试实验报告的资料2篇,希望对您有所帮助,就爱阅读感谢您的支持。
程序的调试实验报告(1)微机原理与接口技术课程作业班级:目录一、实验目的:............................................................................................. . (3)二、实验环境................................................................................................. . (3)三、实验过程................................................................................................. . (3)(一)基础知识储备................................................................................................. .. (3)(二)汇编语言程序设计................................................................................................. (3)(三)汇编程序调试................................................................................................. .. (3)四、调试实例................................................................................................. . (4)(一)实例一................................................................................................. .. (4)(二)实例二................................................................................................. .. (5)(三)实例三................................................................................................. .. (6)(四)实例四................................................................................................. .. (7)五、实验总结................................................................................................. . (8)(一)实验收获................................................................................................. . (8)(二)实验感悟................................................................................................. . (9)一、实验目的:汇编语言是一种用助记符表示的程序设计语言。
实验1(简单程序设计与汇编语言调试)

微机原理与接口技术实验室(白雁力)
微机原理与接口技术实验(简单程序设计与汇编语言调试)
微机原理与接口技术实验室(白雁力)
汇编语言上机步骤
EDIT 文件名.asm
EDIT命令是 WINDOWS自带
编辑源程序
汇编源文件
MASM 文件名.asm
MASM和LINK两 个命令,需要从D 盘中拷贝到E盘中
四、链接文件提示(link)
错误的链接
正确的链接 产生:*.exe文件
微机原理与接口技术实验(简单程序设计与汇编语言调试)
微机原理与接口技术实验室(白雁力)
DEBUG 调试命令
─U [地址] 反汇编
对象:正确的*.exe文件
─D [地址] 或 ─D范围 显示内存单元内容
─E [地址] 或 ─E 列表 修改内存单元 ─R 寄存器名 显示和修改某个寄存器内容
LINK 文件名.obj
链接目标文件
运行文件
文件名.exe
微机原理与接口技术实验(简单程序设计与汇编语言调试)
实验目的
微机原理与接口技术实验室(白雁力)
1 熟悉汇编语言的上机过程
熟悉上机的四个步骤和每 个步骤需要使用到的命令
2 掌握汇编语言程序的编写,调试和运行方法
掌握程序检查的方法和DEBUG 调试命令的使用
在0001H处停止
从当前 CS:0001 H处单步 执行1条 指令,并 显示所有 的寄存器 第一次停止处 从 CS:0000 H处连 续执行3 条指令, 并显示 所有的 寄存器 第二次停止处
第三次停止处
微机原理与接口技术实验(简单程序设计与汇编语言调试)
实验报告要求
实验一 C调试程序基础及顺序结构程序设计
实验一C调试程序基础及顺序结构程序设计
2、顺序结构程序设计
(1)编写程序sy1-7.c,要求从键盘输入一个字符,输出其前后相邻的两个字符,并另起一行在对应位置输出相应的ASCII码值。
(2)编写程序sy1-8.c,设圆半径r=1.5,圆柱高h=3,计算圆周长(l=2*3.14*r)、圆面积(s=3.14*r*r)、圆球表面积(sq=4*3.14*r*r)、圆球体积(vq=4.0/3*3.14*r*r*r)、圆柱体积(vz=3.14*r*r*h)。
用scanf函数输入半径和高的数据,输出计算结果。
输入有提示,输出要有文字说明,结果取2位小数。
(3)编写程序sy1-9.c,要求输入一个华氏温度,要求输出摄氏温度。
其计算公式为5
9(32)
c F
=-,输入有提示,输出有文字说明,结果取2位小数。
微机原理实验 初级程序的编写与调试
EN电子报告形式存储到指定位置)
1.源程序路径及文件名:D:\MASM>MASMli55;
2.可执行程序路径及文件名:D:\MASM>DEBUGli55.EXE
八、上机调试情况说明:
1.上机建立ASM源文件步骤
A.无法建立源文件
B.直接在文件夹内以文本该后缀名并将程序拷入其中。
实验过程(35)
实验报告(45)
总分
指导教师签字:
年月日
备注:
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。
九、实验结果
在DOS下:
图一、是执行1.2步的结果
在windows下:
图三、第二步的截图
图四、第5步截图
图五、第14步截图
在DOS下第2、5、7、10、14条指令的IP分别为0003、000E、0011、0018、0023
机器码:8ED8、BC4000、B164、8AC4、A20100
CS=1445,DS=142F或143F,SS=1440,ES=142F
在windows下第2、5、7、10、14条指令的IP分别为0003、000A、0010、0017、001F
实验一 简单C语言程序的调试
实验一简单C语言程序的调试(2学时)一、实验目的掌握选择结构程序设计的一般方法及选择结构程序的调试方法。
二、实验内容已知地球的赤道半径为6378.137千米。
假设在赤道上,有两个处于不同经度(单位为度)的城市,用C语言编程序求出这两点之间的直线距离(即弦长)与球面距离(即劣弧的长度)。
要求:⑴计算结果要有尽可能高的精确度。
⑵要考虑到横跨东、西两个半球的情况。
(提示:东经为正,西经为负。
)⑶要求输入数据时之间以空格分隔。
例如,欲求赤道上东经10度到东经50度的距离,输入格式应为:10 50⑷最后提交完成的C语言源程序(扩展名为.c)文件。
建议:从简单到复杂,先实现同一个半球上的计算,正确运行之后再拓展到两个半球。
三、参考测试数据及结果:东经0度,东经90度——直线距离9020.047727 ,球面距离10018.754000东经20.5度,西经36.6度——直线距离6096.548421 ,球面距离6356.342816东经160度,西经170度——直线距离3301.566601 ,球面距离3339.584667# include "stdio.h"#include <math.h>main(){float A,B,C,D,E,H;printf("请输入纬度A地经度B地经度\n");printf("备注:东经为正,西经为负\n");scanf("%f%f",&A,&B);C=abs(A-B);if (C>180)C=360-C;D=C*3.1415926/180;E=sin(D/2)*6378.137*2;H=D*6378.137;printf("E=%f\nH=%f\n",E,H);}。
实验一程序的调试和运行过程.
实验题目:程序调试和运行过程
一、实验目的
1、熟悉TVT-90HC可编程控制器训练装置的构成
2、熟悉S7-200的编程软件的使用方法;
3、熟悉外部电路的接线方法;
4、掌握软件和硬件调试过程。
二、实验器材
PC机一台、TVT-90HC可编程序控制器训练装置
(开关按钮、电源装置、CPU 226型PLC 一台、输出负载灯等)、
导线若干。
三、实验原理、内容及步骤
(一)实验内容
基本启动停止电路
(二)实验步骤
1、熟悉硬件设备
2、熟悉软件界面
3、文件的新建和保存
4、程序的编制与指令的输入。
5、程序的编译。
6、程序的修改。
7、程序的下载和监控。
8、程序的运行与停止。
四、实验数据表格
四、实验结果分析
按下启动按钮I0.0,Q0.0接的灯亮;按下停止按钮I0.1,Q0.0接的灯灭。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一初级程序的编写与调试实验
一、实验内容
1.内存操作数及各种寻址方式使用
1MOV AX,1234
2MOV [1000],AX
3MOV BX,1002
4MOV BYTE PTR[BX],20
5MOV DL,39
6INC BX
7MOV [BX],DL
8DEC DL
9MOV SI,3
10MOV [BX+SI],DL
11MOV [BX+SI+1],DL
12MOV WORD PTR[BX+SI+2],2846
步骤:
(1) 用A命令键入上述程序,并用T命令逐条运行。
(2) 每运行一条有关内存操作数的指令,要用D命令检查并记录有关内存单元的内容并注
明是什么寻址方式。
注意D命令显示结果中右边的ASCII字符及双字节数存放法。
2.求累加和程序:
程序:
1MOV BX,1000
2MOV CX,10
3SUB AX,AX
4LOP:ADD AL,[BX]
5ADC AH,0
6INC BX
7J:LOOP LOP
8INT3
步骤:
(1)用A命令将程序键入到100H开始的内存中,在键入时记下标号LOP和J的实际地址,在键入LOOP指令时LOP用实际地址值代替;
(2)用命令N AA 将此程序命名为文件AA(文件名可任取);
(3)用R命令将BX:CX改为程序长度值(即最后一条指令后面的地址减去开始地址;
(4)用命令W 100将此程序存到AA命名的磁盘文件中;
(5)用命令Q退出DEBUG;
(6)用命令DEBUG AA再次调入DEBUG和文件AA,可用U命令检查调入程序;
若调入DEBUG时忘了加AA文件名,可用N命令和L命令将文件调入;
(7)用E命令在内存地址1000H处键入16个数字;
(8)用命令G=100 J(J用实际地址代替),使程序运行并停在断点J上,检查AX,BX的值是否符合你的预计值;
(9)用T命令运行一步,观察程序方向(IP值)和CX值是否与你的估计一样,若不一样,检查程序是否有错;
(10)重复G、J与T,再检查AX是否正确;
(11)用G命令使程序运行到结束,检查AX值是否正确。
3.数据串搬家程序
(1)用A命令键入下列程序:
MOV SI,1000
MOV DI,1500
MOV CX,0FH
LOP:MOV AL,[SI]
MOV [DI],AL
INC SI
INC DI
LOOP LOP
INT 20
(2)用A命令DB伪指令在1000H键入下列字符串:‘IBM_PC COMPUTER'
(3)用G命令运行此程序,并用D命令检查目的地址处的字符与源串是否一致。
4.段寄存器概念及字符串传送指令练习
(1) 用A命令键入下列程序:
MOV SI,0
MOV DI,0
MOV AX,1000
MOV DS,AX
MOV AX,1500
MOV ES,AX
MOV CX,0F
CLD
REP MOVSB
INT 20
(2) 用A命令DB伪指令在1000:0000处键入字符串'IBM_PC COMPUTER',并用D命检查之
(3) 用D命令检查0F00:1000处内容,看是否一样。
为什么?
(4) 用G命令运行此程序,检查目的地址1500:0000处内容。
并记下DS与ES值。
(5) 修改此程序,使ES与DS为同一值,以减少一条指令,而源物理地址和目的物理地址(是多少?)仍和原来一样。
5.利用INT 21 0AH号功能调用显示字符串。
(1)用A命令在100H处键入下列程序:
MOV AH,9
MOV DX,110
INT 21
INT 20
(2)用A命令在110H处键入下列字符串的ASCII码:
DB 'This is a sample!$'
(3)用N命令和W命令将此程序(包括数据区)存入文件名为AA.OM的磁盘文件中。
(存入前BX:CX必须置为文件长度值)。
(4)用Q命令退出DEBUG。
(5)在DOS命令下打AA,运行此程序,即在屏幕上显示'This is a sample!'字符串,若不出现,用DEBUG检查程序有无错误。
6.利用INT 21H 2号功能显示字符
(1)用A命令在100H处键入下列程序:
XOR DL,DL
MOV CX,100
LOP:MOV AH,2
INT 21
INC DL
PUSH CX
MOV CX,8
DELY:PUSH CX
MOV CX,0
J:LOOP J
POP CX
LOOP DELY
POP CX
LOOP LOP
INT 20
(2)用G命令运行程序,即在屏幕上依次缓慢的显示256个ASCII字符。
仔细观察每个字符,和IBM-PC ASCII码表对照,看07H-0DH处控制字符显示结果与表上有何不同?
(3)按CTRL+BREAK退出此程序,若一次不行可多做几次。
7.直接向VRAM送ASCII码显示字符
(1)用A命令在100H处键入下列程序
MOV AX,B000
MOV DS,AX
XOR AL,AL
XOR BX,BX
MOV CX,100
LOP:MOV [BX],AL
INC BX
INC AL
PUSH CX
MOV CX,8
DELY:PUSH CX
MOV CX,0
J:LOOP J
POP CX
LOOP DELY
POP CX
LOOP LOP
INT 20
(2)用N命令和W命令将此程序存入文件中。
(一定要先存入!)
(3)用G命令运行此程序,仔细观察每一个ASCII码显示结果,并和字符表及上一道程序运行情况进行对照,其控制字符区(07-0DH)显示结果和INT 21H2号功能调用有何不同?
二、思考题
1.MOV BYTE PTR[BX],20
MOV WORD PTR[BX+SI+2],2846
上述指令中BYTE PTR及WORD PTR伪操作不加行不行?试一试。
2.将多字节加法程序中的INT 20H指令改为INT 3,有何区别?若这条指令不加,行不行?试一试。
3.数据串搬家程序中的目的地址改为1002H,再运行此程序,看能不能把1000H开始的字符串搬到1002H开始的地方去?修改程序以做到这一点。
4.利用INT 21H 显示和直接向VRAM送ASCII码显示方法在显示结果上有什么不同? 三.实验报告要求
1.各项实验记录;
2.要求你修改的程序的清单(修改后)和调试记录;
3.自编程序原稿及调试后修正稿,写出原稿错在那里。