汇编语言程序设计-实验

合集下载

汇编语言程序设计实验报告

汇编语言程序设计实验报告

汇编语言程序设计实验报告汇编语言程序设计实验报告引言:汇编语言是计算机中最基本的语言,通常用于处理硬件相关问题。

在这个实验中,我们学习了汇编语言的基础知识和编程技巧,并实践了用汇编语言编写程序的方法和技巧。

以下是我们的实验报告。

正文:1. 实验环境我们使用的实验环境是Intel 8086微处理器与高级汇编语言。

微处理器使用的是PCB-512主板,而高级汇编语言是MASM。

2. 实验目的我们的实验目的主要是学习汇编语言的基础知识和编程技巧,包括了汇编语言的寄存器、指令、内存管理等方面的知识。

我们的另一个目的是掌握汇编语言的常用编程技巧,能够独立完成一些简单的汇编程序。

3. 实验内容我们的实验内容主要包括以下几点:(1)学习汇编语言的基础知识,包括寄存器、指令、内存管理等方面的知识。

(2)掌握汇编语言的常用编程技巧,包括数据输入输出、运算、跳转等基本操作。

(3)实践用汇编语言编写程序,如计算器、菜单等实用程序。

(4)了解8086微处理器的结构和原理。

4. 实验过程在这个实验过程中,我们完成了以下几个程序:(1)计算器计算器是一个简单的程序,主要用于实现两个数之间的加、减、乘、除等基本运算。

我们通过输入输出指令、存储指令等指令实现了这个程序的功能。

(2)菜单菜单是一个实用程序,主要用于展示一个简单的菜单并实现用户选择相关功能的功能。

我们使用了汇编语言中的跳转指令、输入输出指令等实现了这个程序。

5. 实验结果在我们的实验中,我们成功完成了上述两个程序。

我们通过输入输出指令、存储指令等指令实现了这个程序的功能。

6. 实验总结在这个实验过程中,我们学习汇编语言的基础知识和编程技巧,并实践了用汇编语言编写程序的方法和技巧。

我们通过编写计算器和菜单等简单实用程序,加深了对汇编语言的理解和认识。

我们认为这个实验对我们今后的学习和工作都有很大的帮助。

结论:通过这个实验,我们学习了汇编语言的基础知识和编程技巧,并实践了用汇编语言编写程序的方法和技巧。

《汇编语言程序设计》实验报告(一)

《汇编语言程序设计》实验报告(一)
MESS1 DB 'MATCH!’,13,10,’$'
MESS2 DB 'NO MATCH!’,13,10,’$'
DATA ENDS
对以上源程序重新汇编、连接、运行,结果输出为:MATCH!
七、实验总结
通过这次上机实践,我对汇编程序和连接程序的使用开始有一点了解。但刚开始还是很不顺的,总是出现找不到文件,后来经过同学的指导,终于知道自己的错误,原来是路径错误。所以还需要勤加练习,多多实践。
四、实验材料、工具、或软件
多媒体计算机、WINDOWS XP系统或纯DOS系统、MASM6.11以上版本或汇编语言程序设计实验集成环境。
五、实验要求
1. 编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示‘MATCH’,若不相同则显示‘NO MATCH’。用串比较功能来完成程序所要求的功能。
2.完成课堂例题,并用DEBUG运行,观察结果。
六、试验内容与步骤:(附上必要的调试过程及运行结果截图,可加附页)
试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示‘MATCH’,若不相同则显示‘NO MATCH’。用串比较功能来完成程序所要求的功能。上机步骤如下:
《汇编语言程序设计》实验报告(一)
姓名
学号
系别
班级
指导教师
实验日期
课程名称
《汇编语言程序设计》
同组实验者
一、实验名称:实验一汇编程序和连接程序的使用
二、实验目的:
1. 熟悉汇编语言的上机环境;
2. 学习EDIT,MASM,LINK程序的使用;3. 掌握建立、汇、链接、运行汇编语言程序的过程。

汇编语言程序设计实验小结

汇编语言程序设计实验小结

汇编语言程序设计实验小结本次汇编语言程序设计实验旨在通过实践,加深对汇编语言编程的理解和掌握,并通过编写和调试汇编程序,提升实际应用能力。

在本次实验中,我学到了许多关于汇编语言程序设计的知识和技巧,也遇到了一些挑战和问题。

以下是我对这次实验的小结。

在实验开始之前,我进行了充分的学习和准备。

通过阅读教材和参考资料,我了解了汇编语言的基本概念、指令集和编程规范。

同时,我还学习了调试工具的使用方法,以便在编写程序时能够进行实时调试,提高效率和准确性。

在实验过程中,我遇到了一些困难和挑战。

其中之一是理解和运用汇编语言的指令集。

由于汇编语言是一种低级语言,指令的数量和种类相对较多,需要深入了解每个指令的功能和使用方法。

为了解决这个问题,我通过查阅资料和请教老师,逐步掌握了常用指令的用法,并能够根据实际需求选择合适的指令进行编程。

另一个困难是调试程序时出现的错误。

由于汇编语言是一种底层语言,对程序员的要求较高,一旦出现错误,往往需要仔细检查每一步的操作和数据处理过程。

在实验中,我遇到了一些错误,例如指令书写错误、寄存器使用错误等。

为了解决这些问题,我采取了逐步调试的方法,通过观察变量的值、输出结果的正确性等来定位错误的位置,并逐步修改代码,最终成功解决了问题。

在实验过程中,我也发现了汇编语言编程的一些优点和特点。

首先,汇编语言可以直接访问底层硬件资源,使得程序的执行效率较高。

其次,汇编语言的灵活性较高,可以实现一些高级语言难以实现的功能。

例如,通过汇编语言编写的程序可以直接操作内存,实现对特定位置的数据读取和存储。

再次,汇编语言的指令集相对简单,易于学习和理解。

因此,掌握汇编语言编程对于深入理解计算机体系结构和底层工作原理非常有帮助。

通过本次实验,我不仅学到了汇编语言程序设计的知识和技巧,还培养了分析和解决问题的能力。

在以后的学习和工作中,我将继续学习和掌握汇编语言编程,将其应用于实际项目中,提高程序的性能和效率。

汇编实验一实验报告

汇编实验一实验报告

汇编语言程序设计实验报告课程名称汇编语言程序设计班级姓名学号指导教师汇编语言程序设计实验一DEBUG 程序使用技巧1.寄存器和内存开始Debug 程序。

输入“Q ” 退出程序。

再次启动Debug。

输入“r ”来显示CPU的当前状态和寄存器中的当前内容。

输入“r AX ”和“1234”,AX 寄存器中的内容变为1234。

输入“r DS ”和“2000”,DS 寄存器中的内容变为2000。

输入“d DS:1000 ”来显示数据段中80H 字节数据,把数据抄在这里:输入“f DS:1000 1100 77 ”再显示一次这80H 字节。

判断这条指令的作用是什么?答:从DS:1000地址七,将1100H字节的内容赋值为77H再输入“d 2000:1000 ”来显示数据段中80H 字节数据。

观察与前面的数据有无不同。

输入“d 1900:0100 ”和“d 1ff0:0100 ”来显示两个存储段中的内容。

比较其中2000:0000 段中的数据。

相同段落中的数据相同么?根据你的观察,得出结论,是否程序员可以用不同的段起始地址和偏移量组合,把不容内容存入相同的内存段中。

答:相同段落中的数据相同, 程序员可以用不同的段起始地址和偏移量组合,把不容内容存入相同的内存段中。

2.输入机器码,使用单步和断点退出Debug,再重新启动Debug。

输入“r ”观察CPU 的状态,下一条指令是什么?答:下一条指令是ADD [BX+SI],AL使用两种方式输入一段程序,第一种方式:直接输入机器码。

输入“u ”来显示程序段中的指令序列。

然后输入“d CS:100 ” 来显示代码段中的数据。

观察显示内容。

“u CS:100 106 ”做反汇编,就是显示出汇编语句。

将这几句汇编语句记录下来:使用输入“r ”观察CPU 的状态,使用“t ”来跟踪程序,直至最后一条指令执行完毕。

注意,跟踪程序前,要让IP 寄存器中的值是100H。

一直监视AX 和IP 寄存器的内容变化,尤其是标志位的变化。

单片机汇编语言程序设计实验报告

单片机汇编语言程序设计实验报告

单片机实验1 汇编语言程序设计实验---- 存储器块赋值一.实验目的1 熟悉存储器的读写方法,熟悉51汇编语言结构。

2 熟悉循环结构程序的编写。

3 熟悉编程环境和程序的调试。

二.实验内容指定存储器中某块的起始地址和长度,要求将其内容赋值。

例如将4000H 开始的100个字节内容清零或全部赋值为33H(参考程序),要求根据参考程序修改:修改程序,赋值内容为(10,9,8,7,6,5,4,3,2,1。

)三.实验仪器微机、VW,WAVE6000编程环境软件,(单片机实验箱)仿真器--仿真器设置-选择仿真器选择仿真头选择CPU Lab8000/Lab6000通用微控制器 MCS51实验 8051前3个软件实验勾选√使用伟福软件模拟器四实验步骤注意:1 文件不要用中文名称保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。

2 查看存储器菜单使用:窗口---数据窗口---XDATA 观察存储器内容3 查看SFR:窗口---CPU窗口查看CPU寄存器SFR4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。

5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。

编译器默认设置:程序框图参考例程序:Block equ 4000hmov dptr, #Block ; 起始地址mov r0, #10 ; 清10个字节mov a, #33h ; 将33H赋值给aLoop:movx @dptr, a 将a写入外部RAMinc dptr ; 指向下一个地址djnz r0, Loop ; 记数减一ljmp $ ; $当前程序指针相当于一直执行自己;ljmp $ end说明:$:是当前语句的程序指针(地址)相当于一直执行自己:ljmp $,程序死循环要求赋值数据为10,9,8,7,6,5,4,3,2,1则以上程序该如何改动? 自己修改程序实现。

汇编语言程序设计

汇编语言程序设计

实验5.汇编语言程序设计一、实验目的1. 掌握编写和调试汇编语言程序的方法;2. 掌握模块化汇编语言程序设计方法3. 了解简单电路的控制方法二、实验任务1. 简单电子表的设计用8 个发光二极管以秒为单位显示时间值,按下面步骤完成一个简单电子表的设计:1)硬件连线;2) 编写延时子程;3)编写完整程序;4)(选做)增加按键控制功能。

程序清单如下:(程序5_1.1)(程序5_1.2)思考:如果硬件连线是将发光二极管LED8~LED1 分别与P2.7~P2.0 连接,按键Key4~Key2 分别与P1.4~P1.2 连接,蜂鸣器BUZZ 与P6.5 连接的话,实验板上连线,如何编程实现任务1?将任务1程序中相应端口修改成实验板上硬件连线方式就能够实现任务1。

2. 数码管的显示控制1)程序清单如下:(程序5_2.1)如果数码管电路的控制端DS、SHCP、STCP、#MR 分别与单片机的P4.3~ P4.0 相连,如何修改程序?请用长导线在实验板上完成。

将相应的端口修改,将程序中P6改为P4则可以完成。

2) ( 选做 )程序清单如下:(程序5_2.2)三、已完成的选做任务3. (选做,可在simulator 下完成)带初始化变量的实现(数据传送程序)问题的提出:初始化的变量和未初始化变量的不同在于,在执行程序前,初始化的变量中有设置好的初值,而未初始化的变量没有设置好的初值。

由于MCU 内部没有操作系统,上电复位后即开始执行用户程序,存放在RAM 区中的变量的值都是随机的,不能保存如何完成带初始值的变量设置呢?编程实现:在汇编语言程序中设置一个带初始化的字符串,字符串的初始值为“Hello MSP430”。

程序清单:。

汇编语言实验报告_6

汇编语言实验报告_6

青岛理工大学课程实验报告
课程名称汇编语言程序设计班级实验日期
2013.11.3
姓名学号实验成绩
实验
名称
子程序
实验目的及要求1.掌握子程序设计相关指令和伪指令的使用方法
2.掌握子程序设计方法, 特别是参数传递方法
3.掌握主程序和子程序之间的调用关系和调用方法
4.熟悉循环和子程序结合应用解答问题的思路
实验环境1.命令行方式
2.MASM.EXE LINK.EXE DEBUG.EXE
实验内容1.设DATA1开始的内存单元中, 存放着一串带符号字数据, 要求采用冒泡排序算法(Bubble Sort)按照从小到大的顺序排序并将排好序的数据存在DATA1开始的单元。

然后在显示器输出排好序的数据, 中间用’,’隔开。

2.输出数据使用子程序方式。

算法描述及实验步骤步骤:
(1)设置数据段地址
(2)设置堆栈段地址
(3)设置堆栈指针
(4)调用9号功能, 输出一个提示性字符串。

(5)循环进入子程序, 输出原始数据。

(6)在子程序内循环输出每一位的十进制数字。

(7)主程序进行内外循环, 进行冒泡排序。

(8)再一次调用子程序输出排序后的结果。

调试过程及实验结果调试过程:
(2)(1)在输出时, 调用DOS 9号功能, 并不是只要语句MOV AH,09H
(3)它是存在入口条件的, 入口条件:DS:DX=输出字符缓冲区首地址。

所以前面必须加上MOV DX,OFFSET NOTE1。

(4)汇编语言是不会再输出汉字的。

(5)子程序结束时一定要有RET
(6)冒泡排序也遇到一些困难。

调试结果:。

汇编语言程序设计实验篇

汇编语言程序设计实验篇

汇编语言程序设计实验篇在计算机科学领域中,汇编语言是一种低级编程语言,它直接操作计算机硬件资源,具有高效性和灵活性。

本篇文章将介绍汇编语言程序设计实验的相关内容,包括实验目的、实验环境、实验步骤和实验总结。

实验目的汇编语言程序设计实验的主要目的是使学生掌握使用汇编语言编写程序的基本技能。

通过实践操作,学生将理论知识应用于实际情境中,深化对汇编语言的理解,并培养一定的编程能力。

实验环境在进行汇编语言程序设计实验之前,学生需要准备适当的实验环境。

以下是必备的硬件和软件资源:1. 计算机:一台能够运行汇编语言的计算机。

2. 汇编语言编辑器:如MASM、NASM等,用于编辑和编译汇编语言程序。

3. 调试器:如调试版本的DOSBox、CodeView等,用于调试程序,定位和解决错误。

实验步骤在进行汇编语言程序设计实验时,学生可以按照以下步骤进行操作:1. 确定实验内容:根据实验要求,选择适当的汇编语言程序设计任务,如编写一个计算两个数相加的程序。

2. 编写程序源代码:使用汇编语言编辑器,编写程序的源代码,包括程序的指令、数据段和代码段等。

3. 编译程序:使用编辑器提供的编译指令,将源代码编译成机器码,生成可执行文件。

4. 调试程序:使用调试器,对程序进行调试,定位和解决错误,确保程序能够正常运行。

5. 运行程序:运行已调试通过的程序,验证程序的正确性,并观察程序的执行结果。

6. 优化程序:对程序进行进一步优化,提高程序的执行效率和性能。

7. 总结实验结果:根据实验过程和结果,总结实验经验和教训,思考改进和拓展的可能性。

实验总结通过进行汇编语言程序设计实验,学生可以获得以下收获:1. 熟悉汇编语言:实验使学生更加熟悉汇编语言的语法和指令,增强对计算机底层运行机制的理解。

2. 培养编程能力:实验锻炼学生的编程能力和解决问题的能力,提高他们的逻辑思维和分析能力。

3. 提升实践能力:实验让学生通过实践操作,将理论知识应用于实际情境中,增强实践能力和动手能力。

汇编语言程序设计实验小结

汇编语言程序设计实验小结

汇编语言程序设计实验小结汇编语言程序设计实验是计算机科学与技术专业中非常重要的一门课程。

通过这门课程的学习,我们可以更深入地理解计算机底层的工作原理,掌握汇编语言的编程技巧,提高我们的编程水平和代码优化能力。

在这篇小结中,我将分享我在汇编语言程序设计实验中的学习心得和经验,并总结出一些重要的要点。

一、实验背景汇编语言程序设计实验主要通过实践来加深我们对汇编语言的理解和应用。

通过编写和调试汇编语言程序,我们可以深入了解CPU的工作原理、寄存器的使用方法以及程序的执行过程等。

同时,通过实验,我们还可以学习如何对程序进行优化,提高程序的运行效率。

二、实验过程1. 实验环境搭建在进行汇编语言程序设计实验之前,我们首先需要搭建实验环境。

通常情况下,我们需要安装一个适合的汇编语言开发工具,比如MASM、TASM等。

同时,我们还需要一台支持汇编语言开发的计算机。

2. 实验内容汇编语言程序设计实验的内容通常包括基本的汇编语言语法、数据传送与运算指令、条件跳转与循环指令、子程序调用与返回、堆栈操作等。

我们需要根据实验指导书中给出的要求,编写相应的汇编程序,并进行调试。

3. 调试与优化在编写汇编程序的过程中,我们可能会遇到一些错误和问题。

这时候,我们需要进行调试,找出错误的原因,并进行修正。

在调试的过程中,我们可以使用调试器进行单步调试,查看寄存器的值以及内存的变化,帮助我们理解程序的执行过程。

同时,为了提高程序的运行效率,我们还需要进行优化。

可以通过改变算法、减少不必要的操作、优化循环结构等方式来提高程序的性能。

三、学习收获1. 深入了解计算机底层工作原理通过汇编语言程序设计实验,我更加深入地了解了计算机底层的工作原理。

我学会了如何使用汇编语言编写程序,了解了指令的执行过程,掌握了寄存器的使用方法,进一步提高了对计算机硬件的理解。

2. 提高了编程水平和代码优化能力汇编语言是一种较底层的编程语言,编写汇编语言程序需要我们对计算机底层有深入的理解。

《汇编语言程序设计》

《汇编语言程序设计》

解法1
解法2
MOV AX, WORD PTR FIRST XCHG AX, WORD PTR SECOND MOV WORD PTR FIRST, AX
解法3
错误的代码 MOV AL, FIRST
MOV BL, SECOND
XCHG AL, BL MOV AL, FIRST+1 MOV BL, SECOND+1 XCHG AL, BL MOV MOV MOV MOV MOV MOV AH, FIRST FIRST, SECOND SECOND, AH AH, FIRST+1 FIRST+1, SECOND+1 SECOND+1, AH
66H
01H
CAH 01H
AX=6601H
(2)采用堆栈指令编写 PUSH WORD PTR FIRST PUSH WORD PTR SECOND POP WORD PTR FIRST POP WORD PTR SECOND
第1条指令执行后 第2条指令执行后 第3条指令执行后 第4条指令执行后
56H 78H 12H
12H
34H
34H
12H 34H
实验二:用户登录验证程序
时间:周四 地点:1416 类型:设计
• 一、实验目的: 学习掌握汇编语言的开发过程,汇编源程序的编程格式和基本结构, DOS/BIOS功能调用,掌握分支、循环、子程序等基本结构程序的设计方 法。 • 二、实验内容 用汇编语言程序设计方法,设计一个用户登陆验证程序。 • 三、实验要求 1. 程序执行后,给出操作提示,请用户键入用户名和密码。 2. 用户在键入密码时,程序不回显键入字符。 3. 只有当用户键入的用户和密码字符串和程序内定的字符串相同时,显 示欢迎界面,并返回DOS。 • 四、实验报告要求 实验报告的内容:实验名称、实验目的、实验内容、实验程序、实验结 果分析、实验过程遇到的问题及体会。 实验报告以文本形式递交,要求书写规范、文字简练、语句通顺、图表 清晰。

汇编语言程序设计实验报告

汇编语言程序设计实验报告
2.掌握汇编语言源程序的执行过程。
二、实验内容
P131作业29。
实验三子程序设计实验
一、实验目的
1.掌握汇编语言源程序子程序设计方法;
2.会使用CV软件工具。
二、实验内容
把实验二作为子程序,编写主程序来对能否构成三角形进行10判断。
实验四宏汇编程序设计实验
一、实验目的
1.掌握宏汇编程序编程技术及宏调用的方法;
2.主模块程序完成子程序的调用,及判断结果的显示,程序名为:ZHU.asm。
实验五混合程序的开发实验
一、实验目的
1.了解混合调用中的参数设置;
2.掌握混合调用的方法;
二、实验内容
P156第5题。
实验一单指令功能测试实验
一、实验目的
1.会使用DEBUG软件;
2.利用DEBUG单步执行功能测试指令的执行。
二、实验内容
判断从键盘输入的ASCII码数字,若是小于等于5,显示“C”,若是大于5显示“D”。假设输入的只可能是0~9数字。
实验二完整的汇编语言程序设计实验
一、实验目的
1.掌握完整的汇编语言源程序的设计方法;
实验五多模块程序设计实验
一、实验目的
1.掌握汇编段的属性的含义;
2.掌握利用LINK将多模块连接起来的方法;
3.掌握利用库文件将多模块连接起来的方法。
二、实验内容
假设内存单元中有三个字a、b和c,编写一个程序,它可判断它们能否构成一个三角形,若能,显示“Y”,否则,显示“N”;
具体要求:
1.三角形的判断程序为一模块子程序,程序名为:ABC.asm。入口参数:字节变量a、b、c。出口参数:字节变量d=1是三角形,d=0不是三角形。
2.了解COM文件的编程方法及特点;

实验一 汇编语言程序设计EMU8086基础实验

实验一  汇编语言程序设计EMU8086基础实验

实验一汇编语言程序设计EMU8086基础实验1、实验目的和要求:了解使用EMU8086(8086汇编模拟工具)学习汇编的方法。

2、实验内容:编写汇编程序,计算2010H+2011H,并把和存入RESULT单元。

8086汇编模拟工具,结合了一个先进的原始编辑器、汇编器、反汇编器、具除错功能的软体模拟工具(虚拟 PC),还有一个循序渐进的指导工具。

这对刚开始学汇编语言的人会是一个很有用的工具。

它会在模拟器中一步一步的编译程式码并执行,视觉化的工作环境让它更容易使用。

你可以在程式执行当中检视暂存器、标志以及内存。

模拟器会在虚拟 PC 中执行程式,这可以隔绝你的程式,避免它去存取实际硬体,像硬盘、内存,而在虚拟机器上执行汇编程序,这可以让除错变得更加容易。

3、实验仪器与器材:计算机及EMU8086汇编软件等。

4、实验原理:自己总结5、实验过程与测试数据(含电路图/程序框图):A、打开EMU8086 v4.08软件,新建工程,选EXE模板,清屏,编写8086程序代码。

B、保存程序代码为*.asm文件,编译保存为可执行文件.exe,编译保存没有错误则模拟运行。

如果有错误返回修改。

运行有单步运行、全速运行等。

实验一参考程序DATA SEGMENTX DW 2010HY DW 2011HRESULT DW ?DATA ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATASTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV AX,XADD AX,YMOV RESULT,AXRETMAIN ENDPCODE ENDSEND START6、实验分析:自己分析7、实验体会自己总结。

c51汇编程序设计实验

c51汇编程序设计实验

c51汇编程序设计实验C51汇编程序设计实验C51汇编是一种嵌入式系统中常用的汇编语言,广泛应用于单片机的开发和嵌入式系统的设计中。

本文将介绍C51汇编程序设计实验的相关内容,包括实验目的、实验步骤、实验结果及分析等。

一、实验目的C51汇编程序设计实验的目的是通过编写汇编语言程序,实现特定的功能。

通过这个实验,可以加深对C51汇编语言的理解,锻炼编程能力,培养解决问题的能力。

二、实验步骤1. 确定实验要求:首先,需要明确实验的要求和功能。

例如,实验要求设计一个计数器,能够实现从0到9的循环计数。

2. 编写程序:根据实验要求,使用C51汇编语言编写程序。

程序可以包括初始化、计数、显示等功能模块。

3. 调试程序:编写完程序后,需要进行调试,确保程序能够正确运行。

可以使用仿真器或者实际的硬件进行调试。

4. 测试程序:在实验完成后,需要进行程序的测试。

可以输入不同的测试数据,观察程序的输出是否符合预期结果。

5. 分析结果:对于测试结果进行分析,判断程序的运行是否正确。

如果有错误,需要进行错误的定位和修正。

三、实验结果及分析在本次实验中,我们设计了一个计数器程序,能够实现从0到9的循环计数。

经过调试和测试,程序运行正常,实现了预期的功能。

通过这个实验,我们对C51汇编语言的使用有了更深入的了解。

通过编写程序,我们学会了如何使用C51汇编语言实现特定的功能。

同时,我们也锻炼了编程能力和解决问题的能力。

总结:C51汇编程序设计实验是一项很有挑战性的任务,要求我们熟练掌握C51汇编语言的语法和用法。

通过这个实验,我们不仅可以加深对C51汇编语言的理解,还可以培养解决问题的能力。

因此,我们应该认真对待这个实验,认真编写程序,仔细调试和测试,确保程序能够正确运行。

在以后的学习和工作中,C51汇编语言将会是我们经常使用的工具之一。

通过这个实验,我们可以为以后的学习和工作打下良好的基础,提高自己的编程能力和解决问题的能力。

汇编语言程序设计上机实验指导

汇编语言程序设计上机实验指导

汇编语言程序设计上机实验指导一、实验目的1.掌握汇编语言的基本原理和编程技巧。

2.加深对计算机系统结构的理解。

3.培养实验操作和编程能力。

二、实验环境1.所需软件:MARS仿真器。

2.操作系统:任意支持MARS仿真器的操作系统。

三、实验内容1.实验一:编写一个简单的汇编语言程序,实现加法运算。

(1)要求用户输入两个整数。

(2)将两个数相加。

(3)输出两个数的和。

2.实验二:编写一个汇编语言程序,实现乘法运算。

(1)要求用户输入两个整数。

(2)将两个数相乘。

(3)输出两个数的乘积。

3.实验三:编写一个汇编语言程序,实现判断一些数是否为质数。

(1)要求用户输入一个整数。

(2)判断该整数是否为质数。

(3)输出判断结果。

4.实验四:编写一个汇编语言程序,实现打印从1到N之间的所有质数。

(1)要求用户输入一个整数N。

(2)打印出从1到N之间的所有质数。

四、实验步骤1.打开MARS仿真器,创建一个新的程序。

2.按照实验要求,编写汇编语言程序代码。

3.在MARS仿真器中调试和运行程序。

4.检查程序输出结果是否与预期相符。

5.优化程序代码,提高程序的效率和性能。

五、实验注意事项1.确保编写的代码逻辑正确、语法规范。

2.程序设计要遵循模块化设计原则,尽量将程序划分为多个模块,提高程序代码的可读性和维护性。

3. 实验过程中要注意调试程序,排除可能出现的bug。

4.在程序编写过程中,保持良好的编程习惯,合理命名变量和子程序,提高代码的可读性。

六、实验总结1.实验报告中需包含实验的目的、内容、步骤、注意事项等内容。

2.分析并总结实验中遇到的问题和解决方法。

3.对实验过程、结果的合理性进行分析和讨论。

4.提出对实验中存在问题的改进建议。

以上就是一份汇编语言程序设计上机实验指导的内容。

希望这份指导能够帮助学生们更好地进行汇编语言程序设计的实验,提高他们的实践能力和编程水平。

汇编语言程序设计实验报告

汇编语言程序设计实验报告

汇编语言程序设计实验报告汇编语言程序设计实验报告引言:汇编语言是一种底层的计算机语言,通过直接操作计算机的硬件和寄存器来实现程序的功能。

在本次实验中,我们学习了汇编语言的基本语法和编程技巧,并通过实践编写了一些简单的程序。

本报告将对实验过程和结果进行总结和分析。

一、实验目的本次实验的主要目的是让我们掌握汇编语言的基本语法和操作方式,培养我们对计算机底层运行机制的理解能力。

通过编写汇编程序,我们可以更深入地了解计算机的运行原理,并且可以更加高效地编写一些底层程序。

二、实验环境本次实验使用的是Windows操作系统,并且我们使用了MASM汇编器来编译和运行我们的汇编程序。

MASM是一款经典的汇编语言开发工具,具有强大的功能和广泛的应用领域。

三、实验内容在本次实验中,我们完成了以下几个任务:1. 编写一个简单的汇编程序,实现两个数字的相加功能。

2. 编写一个汇编程序,实现对一个字符串进行反转。

3. 编写一个汇编程序,实现对一个数组进行排序。

四、实验步骤1. 首先,我们学习了汇编语言的基本语法和指令集。

了解了汇编语言中的寄存器、指令和内存等概念,并且学会了如何使用它们来编写程序。

2. 接着,我们开始编写第一个程序,实现两个数字的相加功能。

通过学习汇编语言中的加法指令,我们可以将两个数字加载到寄存器中,并且使用相应的指令进行相加操作。

3. 然后,我们编写了第二个程序,实现对一个字符串进行反转。

通过学习汇编语言中的循环和条件判断指令,我们可以逐个字符地读取字符串,并且将它们按照相反的顺序存储到新的内存空间中。

4. 最后,我们编写了第三个程序,实现对一个数组进行排序。

通过学习汇编语言中的比较和交换指令,我们可以对数组中的元素进行排序,并且将排序结果存储到新的内存空间中。

五、实验结果通过以上的实验步骤,我们成功地完成了编写汇编程序的任务,并且得到了正确的结果。

我们的程序可以实现两个数字的相加、字符串的反转和数组的排序功能,并且运行速度较快,效果较好。

合工大(汇编)语言程序设计实验报告

合工大(汇编)语言程序设计实验报告

.合肥工业大学计算机与信息学院实验报告课程:汇编语言程序设计专业班级:****************学号:**********姓名:*****目录实验一··3实验二··7实验三··12实验四··22实验一Debug程序的使用一.实验目的1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。

2、掌握8086/8088的寻址方式及多字节数据的处理方法。

二.实验内容1、利用DEBUG程序中的“E”命令,将两个多字节数“003F1AE7H”和“006BE5C4H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。

2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H 单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中。

要求:本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。

三.实验过程和程序实验内容一:e ds:0200 E7 1A 3F 00e ds:0204 C4 E5 6B 00实验内容二:(1)直接寻址方式MOV AX,[0200]MOV BX,[0202]ADD AX,[0204]ADC BX,[0206]MOV [0208],AXMOV [020A],BX(2)寄存器间接寻址方式MOV SI,0200HMOV DI,0204HMOV BX,0208HMOV AX,[SI]MOV DX,[SI+2]ADD AX,[DI]ADC DX,[DI+2]MOV [BX],AXMOV [BX+2],DX四.实验结果(包括必要的截图)实验内容一:输入数据:显示数据:实验内容二:(1)直接寻址方式程序段编辑:反汇编:运行:结果在DS:0208 单元中为00AB00ABH(2)寄存器间接寻址方式程序段编辑:反汇编:运行:结果高字存放在dx中,低字存放在ax中(结果为00AB00ABh)五.实验体会通过本实验,实践debug程序中的命令,并在debug下调试运行汇编语言源程序。

汇编语言顺序程序设计实验报告

汇编语言顺序程序设计实验报告

实验名称:汇编语言顺序程序设计实验报告实验目的:通过本次实验,学生能够掌握使用汇编语言编写顺序程序的基本方法,理解汇编语言的基本结构和运行机制。

实验内容:1. 汇编语言基础知识1.1 汇编语言的概念1.2 汇编语言的特点1.3 汇编语言的应用领域2. 汇编语言程序设计2.1 程序设计的基本流程2.2 程序设计的基本步骤2.3 汇编语言程序设计的规范与技巧3. 实验步骤3.1 确定实验题目和要求3.2 分析实验任务,设计程序流程图3.3 编写汇编程序3.4 调试程序,确保程序正确运行3.5 编写实验报告4. 实验报告要求4.1 实验题目4.2 实验目的4.3 实验内容和步骤4.4 程序设计思路和实现方法4.5 实验结果分析和讨论4.6 实验心得体会实验过程:1. 确定实验题目和要求本次实验的题目为“汇编语言顺序程序设计”,要求学生使用汇编语言编写一个顺序程序,实现指定的功能要求。

2. 分析实验任务,设计程序流程图在开始编写汇编程序之前,我们首先要明确实验的功能需求,然后设计程序的流程图,规划程序的整体结构。

3. 编写汇编程序在设计好程序流程后,根据汇编语言的语法规则,编写相应的程序代码,并确保程序的逻辑正确,语法无误。

4. 调试程序,确保程序正确运行编写完成程序后,需要对程序进行调试,逐步检查程序运行过程中的各个环节,发现并修复可能存在的错误。

5. 编写实验报告我们需要撰写本次实验的实验报告,详细记录实验的整体过程,包括程序设计思路、程序实现方法、实验结果分析和讨论,以及实验心得体会。

实验结果分析和讨论:经过本次实验,我们掌握了汇编语言顺序程序设计的基本方法和技巧,了解了汇编语言程序设计的规范和要求。

在实验过程中,我们遇到了一些问题和困难,但通过不懈的努力和团队合作,最终成功完成了实验任务,并取得了令人满意的成绩。

实验心得体会:通过本次实验,我们深刻认识到汇编语言在计算机领域中的重要性和应用价值,同时也意识到汇编语言程序设计的复杂性和技术挑战。

汇编语言编程实验报告

汇编语言编程实验报告

汇编语言编程实验报告汇编语言程序设计实验报告(一)汇编语言程序设计实验报告(一)一、预备知识汇编语言程序设计是一门实践性很强的课程。

编写程序、上机调试、运行程序是进一步学习和掌握汇编语言程序设计的必要手段。

二、实验目的1、掌握实验运行汇编语言所用的计算机机型2、熟悉常用编辑程序(行编辑程序EDLIN、全屏幕编辑程序QE及其它用于文件编辑的应用程序。

)3、掌握汇编程序ASM、宏汇编程序MASM1.0以上。

4、LINK连接程序5、DEBUG调试程序三、汇编语言源程序上机操作过程2、编辑源文件根据给定的任务,可编写程序。

如果经过检查认为所编程序无错时,就可在计算机上通过编辑程序建立源程序文件了。

一般在编辑过程中总会有错误产生,因此还要进行人工检查、修改以致重新编辑,直到所编辑的源程序无误为止,然后以一个源程序文件(ASM文件)存盘。

将包含QE文件的工作磁盘插入驱动器A:。

进入QEA\QE进入全屏幕后可以开始编程。

文件名取为Myprog。

asm;Ddisplystring (09H)CODESEGMENTPUBLICASSUME CS:CODE,DS:CODEORG 100HSTART:JMP BEGINMSG DB‘Hi ! This ia a dollar sign terminated string.’,’$’BEGIN:MOV AX,CS ;set up to display messageMOV DS,AXMOV DX,OFFSET,SG ;set up to display messageMOV AH,09H;display string function requestINT 21H ;call DOSMOV AH ,4CH ;terminate propram funct requestINT 21H ;Call DOSCODE ENDS;end of code segmentEND START;strat is the entry point输入完毕后,按ALT---X,存盘返回DOS3、汇编源程序文件(ASM,MASM)由编辑程序所建立的ASM文件只是个文本文件,计算机无法执行。

汇编实验报告

汇编实验报告

《汇编程序设计》实验报告班级网络工程3班姓名院系计算机科学学院学号指导教师郭荣佐计算机科学学院目录实验一Debug命令的使用一,实验目的及要求1,汇编语言调试环境Debug的使用,重点掌握常用命令(A R D E T)的使用,其他指令在以后的学习中逐步掌握。

2,利用Debug命令,调试采用不同寻址方式的指令的执行结果,从实践中加深对寻址方式和MOV指令的理解。

二,实验内容1,Debug程序的调入和退出2,Debug常用调试命令的使用3,MOV.XCHG.XLAT指令的调试三,实验步骤(一)、DOS常用命令练习:1.查看目录下所有的文件:2.键入 CD进入上级目录,再查看的结果:3.用COPY复制一个文件:4.用RENAME重命名一个文件:4.用DEL删除一个文件:(二)、DEBUG练习1,输入代码2,分步执行代码3,显示内存4,修改0100处的指令5,修改2000单元的值四,扩展题1,MOV指令的调试2,XCHG指令的调试3,XLAT指令的调试五、18条指令1。

.2.比较命令3.显示命令D:4.修改命令E:5‘填充内存指令F:6执行命令G:7.十六进制算求算运算指令H:8.断口输入命令I:9.读盘命令L:10.内存搬家命令M:11.命名待读/写文件命令N:12.段口输出命令O:13.结束debug返回DOS命令Q14.显示修改寄存器命令R15.搜索指定寄存器内容命令S16.执行并显示系统环境命令T 17.反汇编命令U18.写盘命令W实验二、基本汇编指令的使用一、实验目的及要求1.继续熟悉汇编语言调试环境Debug的使用,掌握常用调试命令。

2.用基本指令编写的程序段,并在Debug环境中调试,从实践中加深对基本汇编语言指令的执行过程的理解。

3.实验前要做好充分准备,包括汇编程序段清单、调试步骤、调试方法,以及对程序结果的分析等二、实验内容1单步调试一下程序段,给出每条指令执行后AL的值,以及CF、ZF、SF、OF 的状态。

汇编语言程序设计实验报告

汇编语言程序设计实验报告

实验报告实验名称汇编语言程序设计||专业班级:信息安全学号:姓名:实验一汇编语言上机过程和Debug常用调试命令一.实验目的:学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法。

二.实验题目:熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)的使用方法。

在调试过程中,学习及掌握debug程序的各种操作命令。

三.问题描述:试编写一程序:比较两个字符串string1和string2所含的字符是否相同,若相同则显示‘match’; 否则,显示‘no match’。

四.方法说明:a) 使用ws、tc或EDIT编辑程序来建立源文件,然后存盘,使系统返回DOS。

b) 用汇编程序masm(或asm)对源文件汇编产生目标文件obj如:汇编指示出错则需重新调用编辑程序修改错误,直至汇编通过为止。

c) 用连接程序link 产生执行文件EXE.d) 执行程序,可直接从DOS执行程序。

e) 使用debug程序调试程序的方法。

五.实验步骤:1.调用字处理程序EDIT 建立以sample.asm文件datarea segmentstring1 db ‘move the cursor backward.’string2 db ‘move the cursor backward.’mess1 db ‘Match..’,13,10,’$’mess2 db ‘No match!..’,13,10,’$’datarea endsprognam segmentmain proc farassume cs:prognam,ds:datarea,es:datarea start:push dssub ax,axpush axmov ax,datareamov ds,axmov es,axlea si,string1lea di,string2cldmov cx,25repz cmpsbjz matchlea dx,mess2jmp short dispmatch:lea dx, mess1disp:mov ah,09int 21hretmain endpprognam endsend start2.对源文件汇编产生目标文件obj D:\masm 文件名。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.用连接程序生成可执行程序文件 .
在DOS状态下键入以下命令: D:\MASM> LINK EG1 经汇编以后产生的目标程序文件(.OBJ文件) 并不是可执行程序文件,必须经过连接以后,才能 成为可执行文件(即扩展名为.EXE)。
连接过程如下图所示
提示将要产生的可执行文件名,通 提示将要产生的可执行文件名, 常直接按回车键表示使用默认文件 名 内存映象文件的提示,直接按回车键 内存映象文件的提示, 表示不产生此文件。 表示不产生此文件。 内存映象文件的提示,直接按回车键 内存映象文件的提示, 表示不产生此文件。 表示不产生此文件。
汇编语言程序设计 实验
汇编程序开发过程
建立汇编源程序(即:建立 文件名.asm) 使用EDIT.EXE文本编辑器进行输入 编译目标文件(即:编译为.obj 文件) 使用MASM进行汇编 编译不通过,重新修改(错误类型:源程序语句不合法) 依据MASM汇编过程中给出的行号进行修改 连接为可执行文件(即:连接为.exe 文件) 使用LINK进行连接 运行编译好的可执行文件 用调试工具调试,重新修改(逻辑错误)
参考程序:
要显示字符串必须以“$”为结束符 DATA SEGMENT 数据段定义 BUF DB 'Hello, world !$' 堆栈段的定义最后一定要加上STACK DATA ENDS STACK SEGMENT STACK DW 36 DUP(?) 堆栈段定义 STACK ENDS CODE SEGMENT ;段寄存器声明 ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA ;主程序开始 MOV DS,AX MOV DX,OFFSET BUF MOV AH,9 显示字符串的9号DOS功能调用 INT 21H MOV AH,4CH 结束程序的运行,返回DOS INT 21H CODE ENDS ;结束主程序 END START
源程序建立以后,在DOS状态下,采用宏汇编程 序MASM对源程序文件进行汇编,其操作过程如 下图所示。
要求输入目标文件名,[ ]中 要求输入目标文件名, ]中 已经有默认文件名, 已经有默认文件名,通常直 接按回车键予以确认即可, 接按回车键予以确认即可, 其扩展名是.OBJ 其扩展名是.OBJ 默认产生的列表文件名 为空, 为空,直接按回车键即 可。 要求输入交叉引用文件名, 要求输入交叉引用文件名, 默认情况下不产生这个文件, 默认情况下不产生这个文件, 所以直接回车确认即可。 所以直接回车确认即可。
2. 将源程序文件汇编成目标程序文件 .
在DOS状态下键入以下命令: D:\MASM> MASM EG1.ASM MASM宏汇编程序的主要功能有以下3点:
检查源程序中存在的语法错误,并给出错误信息。 若源程序经汇编后没有语法错误,则产生扩展名 为.OBJ的目标程序文件。 若源程序中使用了宏指令,则汇编程序将展开宏指令。
执行过程
在DOS状态下键入以下命令: D:\MASM> EDIT EG1.ASM 此时屏幕的显示状态如下图所示。
EDIT环境操作 环境操作 进入EDIT后,屏幕的第一行是菜单栏。 可以用鼠标激活菜单,在弹出下拉菜单中 选择所需功能,用File主菜单下的“Save” File Save” 存盘功能保存文件。最后通过选择File菜单 下的Exit项退出EDIT编辑环境。
说明
当程序中没有定义堆栈段或虽然定义但不符合要求时, LINK在最后一行会给出类似 “LINK : warning L4021: no stack segment”的警告信息,表示用户程序没有定义堆栈 段。该警告信息不影响可执行程序的生成和正常运行,因 为若用户程序没有定义堆栈段,程序运行时会自动使用系 统提供的默认堆栈。 在连接过程中,如果想让程序使用默认参数,则可以使用 含“;”格式: D:\MASM> LINK EG1;
4.程序的执行 .
当我们建立了正确的可执行文件以后,就可以直 接在DOS状态下执行该程序。 D:\MASM> EG1.EXE
说明
如果使用测试数据均可运行并能看到正确 结果,则说明该程序编写正确。但若得不 到正确结果或结果无法看到(没有结果输 出的情况下),则需要使用调试工具 DEBUG来调试程序了。
使用DEBUG进行反汇编
在DOS状态下键入以下命令: D:\MASM> DEBUG EG1.EXE 在DEBUG环境下输入 u 命令进行反汇编
使用DEBUG的D命令查看内容
实验二
DEBUG主要命令
常用命令
-? 显示 Debug 命令列表 -a 汇编器,从100H开始写程序 -r 显示所有寄存器内容 -g 执行,-g[地址断点],执行到[地址断点]结束 -e101 改101H地址处的内容 -d100 显示内存中的内容;显示机器指令 -u100 机器指令 〉汇编指令 -t 执行一条语句 -q 退出
所有ASCII码的显示
R命令---显示和修改所有寄存器内容 显 示 修 改
G命令---执行
E命令---改内容
D命令---显示内容
U命令---反汇编
U命令将十六进制的机器码反汇编成汇编 指令。每一行右边的汇编指令就被汇编成 相应的机器码。
T命令---跟踪执行
逐条执行 -T [地址] 从指定地址执行一条 未指定,则从当前CS:IP开始执行一条 多条执行
说明
如果汇编过程中有错误产生,则汇编程序将显 示出错行号和错误信息。最后显示的部分是警告 错误及严重错误数。 若汇编过程中,想让汇编程序使用默认参数, 则可以使用带有“;”的格式: D:\MASM> MASM EG1; 此方法,系统将不再提示用户输入文件名等信 息,而是直接编译生成目标文件。
常见出错信息
-T[地址][指令条数n] 从指定地址执行n条
Q命令---退出DEBUG
退出debug,返回DOS环境
作业
练习eg1的汇编程序开发过程,将生成的源程 序、目标程序、可执行程序压缩到一个文 件夹中,文件夹命名为08计应X班-XXX 练习 DEBUG环境下的 ? A R G E D U T 命令,将练习成功时出现的画面保存在 word中,命名为08计应X班-XXX
使用DEBUG的A命令汇编
例1:可以将所有ASCII码显示出来的程序
1. 2. 3.
ቤተ መጻሕፍቲ ባይዱ
4.
输入 DEBUG 输入 A100 输入 MOV CX,0100 ;装入循环次数 MOV DL,00 ;装入第一个ASCII码,随后每次循环装入新码 MOV AH,02 INT 21 INC DL ;递增指令,每次将数据寄存器 DL 内的数值加 1 LOOP 0105 ;循环指令,每执行一次LOOP,CX值减1,并跳到 ;循环的起始地址105,直到CX为0,循环停止 INT 20 输入 G即可显示所有ASCII码
1、Register already defined 汇编内部出现逻辑错误 2、Unknown symbol type 在符号语句的类型中,有些不能识别的东西 3、Symbol is multi-defined 重复定义一个符号 4、Symbol not defined 符号没有定义 5、Syntax error 语句的语法与任何可识别的语法不匹配 6、Symbol is reserved word 企图非法使用一个编程序的保留字 7、Not proper align/combine type SEGMENT参数不正确 8、One operand must be const 这是加法指令的非法使用 9、Operands must be same or 1 abs 这是减法指令的非法使用 10、Already have base register 试图重复基地址 11、Illegal size for item 引用的项的长度是非法的,(如:双字移位) 12、Illegal register value 指定的寄存器值不能放入“reg” 字段 13、Must be AX or AL 某些指令只能用AX或AL 14、Improper use of segment reg 段寄存器使用不合法(如:mov ds,0) 15、Division by 0 or overflow 给出一个用0作除数的表达式 16、value is out of range 数值大于需要使用的 17、CS register illeal usage 试图非法使用CS寄存器 18、DUP is too large for linker DUP嵌套太长,以至于从连接程序不能得到所要的记录
实验准备
将MASM软件存储在D盘的根目录下 打开“开始”菜单,在“附件”中找到 “命令提示符”,单击,进入DOS环境 输入 D: 回车,进入D盘 输入 cd masm 回车,进入masm文件夹
实验一
熟悉上机程序
1.汇编语言源程序的建立 .
程序要求 在屏幕上显示“Hello, world !”。设定 源程序的文件名为EG1.ASM。
?命令--- 显示Debug 命令列表
A命令可以汇编出简单的COM文件
1. 2. 3. 4. 5. 6. 7. 8.
输入 A100 ; 从DS:100开始汇编 输入 MOV DL,1 ; 将数值 01h 装入 DL 寄存器 输入 MOV AH,2 ; 将数值 02h 装入 DL 寄存器 输入 INT 21 ; 调用DOS 21号中断2号功能,用来逐个 显示装入DL的字符 输入 INT 20 ; 调用DOS 20号中断,终止程序,将控制 权交回给 DEBUG 请按 Enter 键 现在已将汇编语言程序放入内存中了,输入 G(运行) 出现结果:输出一个符号。
作业
编写程序,计算多项式x2 + y - 5 的值。
说明:x、y是8位带符号数
编写程序,计算多项式(x*y + y)/4 的值。
说明:x、y是8位带符号数
相关文档
最新文档