汇编语言程序设计综合设计实验项目
实验一 汇编语言程序设计的实验环境及上机步骤
实验一熟悉汇编语言程序设计的实验环境及上机步骤一、实验目的:1、掌握文本编辑程序EDIT的基本使用方法。
2、熟练掌握汇编语言上机操作的基本步骤,学会汇编语言程序的编辑、汇编、连接、运行等操作方法。
二、上机实验指导(一)实验环境1.硬件环境微型计算机(Intel x86系列CPU)一台2. 软件环境⏹Windows98/2000/XP操作系统⏹文本编辑器(NOTEPAD(记事本))⏹汇编程序(MASM.EXE)⏹连接程序(LINK.EXE)(二)上机实验步骤上机步骤总结如下:1.把汇编程序拷贝到 C:\ASM\2.用记事本建立ASM源程序,保存为C:\ASM\HELLO.ASM3.汇编 C:\ASM>MASM HELLO.ASM<回车>4.链接C:\ASM>LINK HELLO.OBJ<回车>5.执行C:>ASM>HELLO〈回车〉下面详细介绍上机步骤:1.确定源程序的存放目录建议源程序存放的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。
创建方法:找到C盘的根目录,在C盘的根目录窗口中点击右键,在弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。
请把MASM.EXE、LINK.EXE都拷贝到此目录中。
2.建立ASM源程序使用NOTEPAD(记事本)文本编辑器建立ASM源程序。
打开记事本,输入源程序后,保存为后缀为.ASM的文件,保存路径为C:\ASM\HELLO.ASM。
3.用MASM.EXE汇编源程序产生OBJ目标文件具体操作如下:在DOS命令提示符窗口中操作选择“开始”→“程序”→“附件”→“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入MASM命令:C:\Documents and Settings>cd..(回车,退回到上一级根目录)C:>CD ASM<回车>C:\ASM>MASM HELLO.ASM<回车>操作时的屏幕显示如图2所示。
汇编语言程序设计实验报告
汇编语言程序设计实验报告汇编语言程序设计实验报告引言:汇编语言是计算机中最基本的语言,通常用于处理硬件相关问题。
在这个实验中,我们学习了汇编语言的基础知识和编程技巧,并实践了用汇编语言编写程序的方法和技巧。
以下是我们的实验报告。
正文:1. 实验环境我们使用的实验环境是Intel 8086微处理器与高级汇编语言。
微处理器使用的是PCB-512主板,而高级汇编语言是MASM。
2. 实验目的我们的实验目的主要是学习汇编语言的基础知识和编程技巧,包括了汇编语言的寄存器、指令、内存管理等方面的知识。
我们的另一个目的是掌握汇编语言的常用编程技巧,能够独立完成一些简单的汇编程序。
3. 实验内容我们的实验内容主要包括以下几点:(1)学习汇编语言的基础知识,包括寄存器、指令、内存管理等方面的知识。
(2)掌握汇编语言的常用编程技巧,包括数据输入输出、运算、跳转等基本操作。
(3)实践用汇编语言编写程序,如计算器、菜单等实用程序。
(4)了解8086微处理器的结构和原理。
4. 实验过程在这个实验过程中,我们完成了以下几个程序:(1)计算器计算器是一个简单的程序,主要用于实现两个数之间的加、减、乘、除等基本运算。
我们通过输入输出指令、存储指令等指令实现了这个程序的功能。
(2)菜单菜单是一个实用程序,主要用于展示一个简单的菜单并实现用户选择相关功能的功能。
我们使用了汇编语言中的跳转指令、输入输出指令等实现了这个程序。
5. 实验结果在我们的实验中,我们成功完成了上述两个程序。
我们通过输入输出指令、存储指令等指令实现了这个程序的功能。
6. 实验总结在这个实验过程中,我们学习汇编语言的基础知识和编程技巧,并实践了用汇编语言编写程序的方法和技巧。
我们通过编写计算器和菜单等简单实用程序,加深了对汇编语言的理解和认识。
我们认为这个实验对我们今后的学习和工作都有很大的帮助。
结论:通过这个实验,我们学习了汇编语言的基础知识和编程技巧,并实践了用汇编语言编写程序的方法和技巧。
《汇编语言程序设计》实验报告(一)
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. 掌握建立、汇、链接、运行汇编语言程序的过程。
汇编语言程序设计实验报告一
汇编语言程序设计实验报告(一)一、实验目的1. 掌握顺序程序设计方法2. 掌握分支程序的结构及分支程序的设计,调试方法3. 学习数据传送及算术和逻辑运算指令的用法4. 熟悉在PC 机上建立、汇编、连接、调试和运行汇编语言程序的过程二、实验内容1. 从键盘上接收一位十进制数X ,计算Y 值,并以十六进制形式显示出来,Y 按下列公式计算。
⎪⎪⎩⎪⎪⎨⎧===-=+=)6(2/)5()4(2)3(2222X X X X X X X X X X Y 2. 从键盘上接收两个一位十六进制数X 和Y ,然后再输入一个A-D 之间的字符,按下列要求计算。
A )当输入字符为A ,则计算X+Y ,并以十六进制形式显示出来B )当输入字符为B ,则计算|X-Y|,并以十六进制形式显示出来C )当输入字符为C ,则计算X*Y ,并以十六进制形式显示出来D )当输入字符为D ,则计算X/Y ,并以十六进制形式显示出来三、实验结果1、结果截图2、结果截图四、源代码1、代码DATA SEGMENTX DB ?TABLE DW L1,L2,L3,L4DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DATAMOV DS,AXMOV AH,1INT 21HCMP AL,33HJB L0CMP AL,36HJA L0AND AL,0FHMOV X,ALSUB AL,3SHL AL,1XOR AH,AHMOV BX,OFFSET TABLEADD BX,AXJMP [BX]L1:MOV AL,XMUL ALADD AL,XJMP L7MUL ALSUB AL,XSUB AL,XJMP L7L3:MOV AL,XMUL ALJMP L7L4:MOV AL,XMUL ALMOV CL,2DIV CLJMP L7L7:MOV BL,ALMOV CL,4SHR AL,CLCMP AL,9JLE L5ADD AL,7L5:ADD AL,30HMOV DL,ALMOV AH,2INT 21HAND BL,0FHCMP BL,9JLE L6ADD BL,7L6:ADD BL,30HMOV DL,BLMOV AH,2INT 21HL0:MOV AH,4CHINT 21HCODE ENDSEND START2、代码DA TA SEGMENTX DB ?Y DB ?Z DB ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA START:MOV AX,DATAXOR AX,AXMOV AH,1INT 21HMOV X,ALMOV AH,1INT 21HMOV Y,ALMOV AH,1INT 21HMOV Z,ALMOV AL,XMOV BL,YMOV AH,ZCMP AL,39HJBE M1SUB AL,7M1:SUB AL,30H MOV X,ALCMP BL,39HJBE M2SUB BL,7M2:SUB BL,30H MOV Y,BLMOV AL,XMOV BL,YCMP AH,41HJE L1CMP AH,42HJE L4CMP AH,43HJE L6CMP AH,44HJE L7L1:ADD AL,BLJMP L5L4:CMP AL,BLJA L8SUB BL,ALMOV AL,BLJMP L5L8:SUB AL,BLJMP L5L6:MOV AL,XMUL BLJMP L5L7:XOR AX,AXMOV AL,XDIV BLL5:MOV BH,ALMOV CL,4SHR AL,CLCMP AL,9JLE L2ADD AL,7L2:ADD AL,30HMOV DL,ALMOV AH,2INT 21HAND BH,0FHCMP BH,9JLE L3ADD BH,7L3:ADD BH,30HMOV DL,BHMOV AH,2INT 21HL0:MOV AH,4CHINT 21HCODE ENDSEND START五、实验心得通过本次实验,我对汇编语言程序设计的方法和特点有了一点理解,并有以下心得体会。
汇编语言程序设计综合实践
汇编语言程序设计综合实践
汇编语言程序设计综合实践是一门综合应用汇编语言的课程,旨在通过实际编写汇编语言程序,加深学生对汇编语言的理解和应用能力。
本文档将介绍汇编语言程序设计综合实践的目标、内容和要求,以及研究该课程的一些建议。
目标:
- 培养学生对汇编语言程序设计的兴趣和热情。
- 提升学生对计算机底层原理的理解和应用能力。
- 培养学生解决实际问题的能力,并通过实践加深对汇编语言的掌握。
内容:
- 汇编语言基础知识:研究汇编语言的基本语法、指令和寄存器等基础知识。
- 汇编语言程序设计实践:通过编写实际的汇编语言程序,加深对汇编语言的理解和应用能力。
- 实践项目:完成一些实际的汇编语言程序设计项目,如简单的计算器、迷宫游戏等。
要求:
- 完成指定的课程作业和实践项目。
- 参与课堂讨论和实验室实践,积极与同学交流合作。
- 熟练掌握汇编语言的基本语法和常用指令。
- 能够独立思考并解决遇到的问题。
- 具备一定的计算机底层原理和数据结构的基础知识。
建议:
- 提前准备:在研究该课程之前,可以预一些汇编语言相关的教材或视频资料,做好知识准备。
- 多实践:在研究过程中,要多动手编写代码,通过实际操作加深对汇编语言的理解。
- 多交流:与同学们一起讨论和交流,共同解决问题,提高研究效果。
- 多思考:在编写程序的过程中,要多思考算法和逻辑,提升自己的编程能力。
通过汇编语言程序设计综合实践,学生能够深入了解汇编语言的特点和应用场景,提升自己的计算机底层编程能力。
希望本文档对学生们的学习有所帮助。
《汇编语言程序设计》实验教学大纲
《汇编语言程序设计》实验教学大纲实验教学大纲《汇编语言程序设计》一、实验目的1.学习并掌握汇编语言程序设计的基本原理和方法。
2.培养学生的计算机底层编程能力,提高其对计算机工作原理的理解。
二、实验内容1.汇编语言程序的基本语法和指令2.数据传送、算术运算和逻辑运算指令的使用3.条件分支和循环控制指令的应用4.子程序和函数的设计与调用5.实践中的程序调试和测试技巧三、实验环境和工具1.计算机硬件:至少一台支持汇编语言开发的计算机2. 操作系统:Windows、Linux等3.汇编语言开发工具:MASM、NASM等4.调试工具:调试器、PE浏览器等四、实验要求1.按照实验指导书的要求,独立完成实验任务。
2.熟悉并掌握相关的汇编指令和程序设计技巧。
3.理解并掌握调试工具的使用方法。
4.根据实验结果进行思考和总结,撰写实验报告。
五、实验流程1.实验前:预习相关课程内容,了解实验任务的要求和目标。
2.实验中:按照实验指导书的要求,完成实验任务,同时理解和掌握相关的理论知识,尽量独立思考解决问题。
3.实验后:总结和归纳实验中遇到的问题和解决方法,撰写实验报告。
六、实验内容详述1.实验一:汇编语言程序的基本语法和指令-学习汇编语言程序的基本结构和语法规则-掌握汇编指令的书写和使用方法2.实验二:数据传送、算术运算和逻辑运算指令的使用-学习数据传送指令的使用方法,实现变量的读写和数据传递-学习算术运算指令的使用方法,实现数值的加减乘除等操作-学习逻辑运算指令的使用方法,实现条件判断和逻辑运算3.实验三:条件分支和循环控制指令的应用-学习条件分支指令的使用方法,实现条件判断和跳转-学习循环控制指令的使用方法,实现循环操作和计数4.实验四:子程序和函数的设计与调用-学习子程序的设计和调用方法,实现程序代码的模块化和复用-学习函数的设计和调用方法,实现特定功能的封装和调用5.实验五:实践中的程序调试和测试技巧-学习程序调试技巧,如断点调试、单步执行等-学习程序测试技巧七、实验评分1.实验报告的撰写质量:20分2.实验任务的完成程度:60分3.实验中的操作和程序编写能力:20分八、参考教材1.《汇编语言程序设计》,李文娟编著,高等教育出版社,2024年2.《汇编语言程序设计教程》,汪金平编著,清华大学出版社,2024年以上是《汇编语言程序设计》实验教学大纲的内容,旨在帮助学生全面了解实验的目的、内容和要求,明确学习的流程和方式。
汇编语言程序设计实验报告
汇编语言程序设计实验报告汇编语言程序设计实验报告引言汇编语言是一种低级语言,用于编写计算机的底层程序。
在计算机科学与技术领域,汇编语言程序设计是一门重要的课程。
本篇实验报告将介绍我在汇编语言程序设计实验中所学到的知识和经验。
实验目的本次实验的目的是通过编写汇编语言程序,加深对计算机底层原理的理解,并掌握汇编语言的基本语法和编程技巧。
实验环境在实验中,我使用了一台运行Windows操作系统的计算机,并安装了MASM 汇编语言开发工具。
实验内容1. 汇编语言基础知识在实验开始前,我先学习了汇编语言的基础知识。
汇编语言使用助记符来代表机器指令,与机器指令一一对应。
了解了寄存器、内存和指令的概念,并学会了如何使用它们来编写汇编程序。
2. 汇编语言程序设计在实验中,我编写了一些简单的汇编语言程序,以加深对汇编语言的理解和应用。
例如,我编写了一个计算两个数之和的程序,通过将两个数存储在寄存器中,并使用加法指令进行运算,最后将结果保存到指定的内存位置。
3. 汇编语言程序调试在编写汇编语言程序时,我遇到了一些错误和问题。
为了解决这些问题,我学会了使用调试工具来定位错误。
通过逐步执行程序,并观察寄存器和内存的变化,我能够找到程序中的错误并进行修正。
4. 汇编语言程序优化在实验中,我也尝试了对汇编语言程序进行优化,以提高程序的性能和效率。
通过减少指令的数量和使用更高效的算法,我成功地改进了程序的执行速度。
实验心得通过本次实验,我深刻体会到了汇编语言程序设计的重要性和挑战性。
汇编语言虽然复杂,但它能够直接操作计算机的硬件,提供了更高的灵活性和效率。
通过编写汇编语言程序,我不仅加深了对计算机底层原理的理解,还提高了问题解决和调试能力。
总结汇编语言程序设计实验是一门重要的课程,它为我们提供了学习计算机底层原理和编程技巧的机会。
通过实验,我掌握了汇编语言的基本知识和技巧,并成功编写和优化了汇编语言程序。
这次实验不仅加深了我的理论知识,还培养了我的实际操作能力。
实验二 汇编语言程序设计综合实验
实验二 汇编语言程序设计综合实验班级:电气类06 姓名:吴静 学号:1304200624说明:本实验所用软件和源程序均在路径:E:\Assembly 下,源程序名为ME2.asm,可执行文件名ME2.exe,源代码见文档末,运行的平台为dosbox 。
上机实验过程如下1. 编辑源程序2. 汇编源程序,连接目标程序(路径E:\Assembly 挂载在C 盘下)编译链接程序无错误,一次通过3. 运行可执行程序程序的基本功能已经完成,将十进制数转化为十六进制数4.添加按Esc键退出程序的功能从程序的运行结果可以看到,无论从什么时候按下Esc键,程序都会退出。
它的实现原理是:每次从键盘输入一个字时,就立即检测是否为1BH(Esc的Ascll码)。
如下如果是就跳到标号ESCEXIT(如下,具体见源代码)结束程序的运行。
5. 添加检查错误的功能(错误就是从键盘输入的数不是0~9或者13(Enter键的十进制Ascll码),检测到错误后就另起一行输出’Input Error’字符,显示可以重新输入十进制数)。
先观察一下程序执行的结果:接下来,就解释这个功能是如何实现的(重点,也是心血!)。
①添加一个可以显Input Error 的名为IERROR 的子程序(右图),它的数据在程序的开始段。
②当输入的字符不是0~9时,这里就修改一下,不是跳到EXIT,而是跳到INPUTE(右图),从而执行IERROR 子程序。
③在执行这个程序之前,已经判断输入的不为0~9,但是还要判断输入的是否为Enter 键(即13)。
所以加入一个判断的语句(左图),NEXT 就是继续运行程序。
这里我将SUB AL,30H 放在了后面,是为方便判断AL 是否为13。
从程序的运行结果可以看到,如果我们输入的是Enter(图中1234后面输入的就是Enter),那么程序正常执行,输出04D2;在我们输入数的过程中如果出现除0~9和13以外的数,那么程序就会输出Input Error,并且在另一行要求重新输入,并不会退出程序。
汇编语言程序设计实验报告
汇编语言程序设计实验报告汇编语言程序设计实验报告一、实验目的:(1)熟悉汇编语言运行环境和方法;(2)了解如何使用汇编语言编制程序;(3)熟悉DEBUG有关命令的使用方法;(4)利用DEBUG掌握有关指令的功能;(5)利用DEBUG 运行简单的程序段。
二、实验内容:1.学会输入,编辑汇编语言程序;2.学会习汇编语言程序进行汇编,连接和运行;3.进入和退出DEBUG程序;4.学会DEBUG中的D命令,E命令,R命令,T命令,A命令,G命令等的使用。
对于U命令,N命令,W命令等,也应试一下。
三、实验准备:1.仔细阅读有关汇编语言环境的内容,实现准备好使用的例子。
2.准备好源程序的清单,设计好调试的步骤,测试方法,对运行结果额分析。
3.编写一个程序:比较两个字符串所含的字符是否相同,若相同则显示’Match’。
否则显示’No match!’。
4.仔细阅读有关DEBUG命令的有关内容,对有关命令,都要事先准备好使用的例子。
四、实验步骤:1.在DOS提示下进入MASM目录。
2.在MASM目录下启动EDIT编辑程序,输入源程序,对其进行汇编,链接和运行。
(1)调用edit输入,编辑源程序并保存在指定目录中。
例: Edit abc.asin(2)用汇编程序masin对源程序汇编产生目标文件obj;例:不断修改错误,直至汇编通过为止。
(3)用连接程序link产生执行文件exe。
例:link abc(4)执行程序:可直接从DOS执行程序,即在DOS环境中,输入文件名即可。
3.详细记录每一步所用的命令,以及查看结果的方法和具体结果。
五、实验方法:比较字符串sle。
试编写一个程序:比较字符串string1和string2所含的字符是否相同。
若相同则显示’match ‘,否则则显示’No match’可以用串比较指令来完成程序所有要求的功能。
上机过程:1.调用字处理程序wordstar建立asm文件。
使用非文本文件方式(n命令)建立以sle.asm为文件名的源文件如下,然后用CTRLKX命令存入磁盘,并使用系统返回DOS。
汇编语言程序设计实验报告
二、实验内容
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文件的编程方法及特点;
实验六 汇编语言程序综合设计
实验六汇编语言程序综合设计一、实验目的1.熟练掌握汇编语言程序调试的方法。
二、实验内容(自选2-4 个程序实现)1.编程计数1+2+…+199+200,将结果存入SUM 单元。
2.编写程序统计BUF单元开始的长度为20 的字符串中包含字符‘A’的个数。
(字符串可以先由键盘输入)3.内存BUF单元开始存放20 个字节数,编程将按从小到大的顺序排列,并存放在原存储区中。
4. 在数据段中变量WEEK存储星期一至星期日的英文缩写(MON、TUE、WED、THU、FRI、SAT、SUN),DAY 单元中用数1~7 分别表示星期一到星期日,编程根据DAY的内容显示对应的英文缩写。
5. 在包含100 个字符的字符串中寻找第一个回车符CR,找到后保留地址,显示“Y”,否则显示“N”。
具体内容:1.编程计数1+2+…+199+200,将结果存入SUM 单元。
(1)程序:DA TA SEGMENTCNT DB 200SUM DW ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DATAMOV DS,AXMOV AX,0MOV CL,CNTMOV BX,0NEXT: ADD AX,BXINC BXLOOP NEXTMOV SUM,AXMOV AH,4CHINT 21HCODE ENDSEND START(2)过程分析:CB的16位进制数为200,而BC 4D的高四位是4D,他们的16位为19900 刚好等于(0+199)*200/2=19900(3)实验结果(截屏)(42.编写程序统计BUF单元开始的长度为20 的字符串中包含字符‘A’的个数。
(字符串可以先由键盘输入)(1) 程序:DATA SEGMENTBUF DB 'ADNBSDJKNABABDEAEBEB',0DHCOUNT DB 0DATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART: MOV AX,DATAMOV DS,AXLEA BX,BUFMOV CL,0LOP: INC BXMOV AL, [BX-1]CMP AL, 0DHJZ EXITCMP AL, 41HJNZ LOPINC CLJMP LOPEXIT: MOV COUNT,CLMOV AH,4CHINT 21HCODE ENDSEND START(2)调试过程:'ADNBSDJKNABABDEAEBEB'中有四个A(3)实验结果(截屏)3.内存BUF单元开始存放20 个字节数,编程将按从小到大的顺序排列,并存放在原存储区中。
实验五汇编语言程序设计实验(一)
实验五汇编语言程序设计实验(一)一、实验目的1、了解和掌握汇编语言子程序和主程序的设计。
2、掌握循环程序的设计。
3、掌握汇编语言主程序与子程序的调用和参数传递。
4、进一步熟悉在PC机上建立,汇编,链接,调试和运行8086、8088汇编语言程序的过程。
二、实验内容1、复习汇编语言源程序的上机过程:2、编写一个完整程序(包含循环设计和子程序设计)在以strg为首地址的缓冲区中存放着1个字符串,以-1作为结束标志,编程统计字符串长度,并将结果存入lenth单元。
要求统计字符串用子程序完成。
data segmentstrg db ‘abcd’,-1lenth dw ?data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axlea dx,strgcall scountmov lenth,bxmov ah,4chint 21hscount proc nearpush sixor bx,bxmov si,dxnext:cmp byte ptr[si],-1jz overinc bxinc sijmp nextover:pop siretscount endpcode endsend start三、实验器材IBM PC 微机一台四、实验要求1、正确理解本次实验的目的,内容和原理。
2、能编写相应的程序五、实验报告要求完成下面任务:从键盘输入1个长度小于100的字符串,存入以buff 为首地址的缓冲区,其中如有大写字母,要求用子程序转换成小写字母,字符串以回车键作为结束。
写出操作步骤,程序清单,程序注释,实验现象。
汇编语言程序设计实验报告
汇编语言程序设计实验报告汇编语言程序设计实验报告引言:汇编语言是一种底层的计算机语言,通过直接操作计算机的硬件和寄存器来实现程序的功能。
在本次实验中,我们学习了汇编语言的基本语法和编程技巧,并通过实践编写了一些简单的程序。
本报告将对实验过程和结果进行总结和分析。
一、实验目的本次实验的主要目的是让我们掌握汇编语言的基本语法和操作方式,培养我们对计算机底层运行机制的理解能力。
通过编写汇编程序,我们可以更深入地了解计算机的运行原理,并且可以更加高效地编写一些底层程序。
二、实验环境本次实验使用的是Windows操作系统,并且我们使用了MASM汇编器来编译和运行我们的汇编程序。
MASM是一款经典的汇编语言开发工具,具有强大的功能和广泛的应用领域。
三、实验内容在本次实验中,我们完成了以下几个任务:1. 编写一个简单的汇编程序,实现两个数字的相加功能。
2. 编写一个汇编程序,实现对一个字符串进行反转。
3. 编写一个汇编程序,实现对一个数组进行排序。
四、实验步骤1. 首先,我们学习了汇编语言的基本语法和指令集。
了解了汇编语言中的寄存器、指令和内存等概念,并且学会了如何使用它们来编写程序。
2. 接着,我们开始编写第一个程序,实现两个数字的相加功能。
通过学习汇编语言中的加法指令,我们可以将两个数字加载到寄存器中,并且使用相应的指令进行相加操作。
3. 然后,我们编写了第二个程序,实现对一个字符串进行反转。
通过学习汇编语言中的循环和条件判断指令,我们可以逐个字符地读取字符串,并且将它们按照相反的顺序存储到新的内存空间中。
4. 最后,我们编写了第三个程序,实现对一个数组进行排序。
通过学习汇编语言中的比较和交换指令,我们可以对数组中的元素进行排序,并且将排序结果存储到新的内存空间中。
五、实验结果通过以上的实验步骤,我们成功地完成了编写汇编程序的任务,并且得到了正确的结果。
我们的程序可以实现两个数字的相加、字符串的反转和数组的排序功能,并且运行速度较快,效果较好。
汇编语言程序设计实验报告
《汇编语言程序设计》实验报告院系专业年级学号姓名目录实验1 Masm6.11的使用方法............................................ 错误!未定义书签。
实验2 比较两个字符串的大小 . (9)实验3 求学生名次 (16)实验4 求员工年工作量 (29)实验5 子程序和主程序之间的参数传递 (37)实验6 C语言和汇编语言混合编程下的排序算法 ......................................... .42实验7 采用汇编语言对C语言函数调用的方法求平均数.. (46)实验一 Masm6.11的使用方法一、实验目的1、创建一个新的汇编语言程序,熟练掌握汇编语言开发工具的使用方法,并对开发环境中一些坏境变量进行设置。
2、创建一个工程文件,对该工程文件进行编译,连接,并运行;3、对建立的工程文件进行调试,在运行过程中查看各个寄存器的值,内存单元的值等。
二、实验环境该试验包括的硬件和软件条件如下:1、硬件环境(1)Intel i5 3317U(2)内存4G2、软件环境(1)Window XP Professor(2)MASM6.11开发软件三、实验步骤1、将Masm6.11安装程序拷贝到D盘根目录下,并执行d:\Masm611目录下Setup.exe文件,按照安装提示将程序安装到C盘根目录。
2、将C:\masm611\Bin目录下的所有文件拷贝到C:\Masm611\binr目录下,将C:\Masm611\help目录下的所有文件拷贝到c:\Masm61\binr目录下。
3、执行C:\Masm611\Binr目录下的pwb.exe文件,打开开发环境。
4、在PWB编辑窗口中输入实验1.1中的程序,并保存为test.asm文件。
5、执行Project菜单下New Project子菜单创建一个新的工程文件,并命名为test.mak,将test.asm文件加入到该工程文件中。
汇编语言程序设计实验
实验二、统计学生成绩一、实验内容设有20个学生成绩分别56、78、67、40、87、99、63、51、74、100,90,80,68、88、55、66、84、96、45、73分。
编写程序实现统计低于60分、60-69分、70-79分、80-89分、90-99分及100分的人数,并分别存放在s5、s6、s7、s8、s9、s10单元中。
(最后在屏幕中输出)二、实现方法(算法)data segmentscoredb56,78,67,40,87,99,63,51,74,100,90,80,68,88,55,66,84,96, 45,73s5 db 0 ;存放低于60分的个数。
s6 db 0 ;存放60与70之间的数。
s7 db 0 ;存放70与80之间的数。
s8 db 0 ;存放80与90之间的数。
s9 db 0 ;存放90与100之间的数。
s10 db 0 ;等于100。
data endscode segmentassumecs: code, ds: datastart:movax,datamovds,axmov si,0mov cx,20lop1:cmp score[si],60jb step1cmp score[si],70jb step2cmp score[si],80jb step3cmp score[si],90jb step4cmp score[si],100jb step5inc [s10]jmp exitstep1:inc [s5]jmp exitstep2:inc [s6]jmp exitstep3:inc [s7]jmp exitstep4:inc [s8]jmp exitstep5:inc [s9]exit:incsiloop lop1mov al,s5 ; 显示s5 add al,48movdl,almov ah,02int 21hmov dl,' ' ;输出分隔符mov ah,02int 21hmov al,s6 ; 显示s6 add al,48movdl,almov ah,02int 21hmov dl,' ' ;输出分隔符mov ah,02int 21hmov al,s7 ; 显示s7 add al,48movdl,almov ah,02int 21hmov dl,' ' ;输出分隔符mov ah,02int 21hmov al,s8 ; 显示s8 add al,48movdl,almov ah,02int 21hmov dl,' ' ;输出分隔符mov ah,02int 21hmov al,s9; 显示s9 add al,48movdl,almov ah,02int 21hmov dl,' ' ;输出分隔符mov ah,02int 21hmov al,s10 ; 显示s10 add al,48movdl,almov ah,02int 21hmov ah,4chint 21hcode endsend start三、软件框图(visio流程图)四:实验过程具体调试如下:装入后直接运行:由图可知,低于60分、60-69分、70-79分、80-89分、90-99分及100分的人数分别为:5人,4人,3人,4人,3人,1人,通过人工计算可知运行正确,我们还可以用d命令查看内存看是否正确,结果如下:0014为20的16进制,0B3D:0014内存单元即为s5的地址,其内容为05.以后的分别为,04,03,04,03,01.也就是分数段的人数。
汇编语言顺序程序设计实验报告
实验名称:汇编语言顺序程序设计实验报告实验目的:通过本次实验,学生能够掌握使用汇编语言编写顺序程序的基本方法,理解汇编语言的基本结构和运行机制。
实验内容: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. 编写实验报告我们需要撰写本次实验的实验报告,详细记录实验的整体过程,包括程序设计思路、程序实现方法、实验结果分析和讨论,以及实验心得体会。
实验结果分析和讨论:经过本次实验,我们掌握了汇编语言顺序程序设计的基本方法和技巧,了解了汇编语言程序设计的规范和要求。
在实验过程中,我们遇到了一些问题和困难,但通过不懈的努力和团队合作,最终成功完成了实验任务,并取得了令人满意的成绩。
实验心得体会:通过本次实验,我们深刻认识到汇编语言在计算机领域中的重要性和应用价值,同时也意识到汇编语言程序设计的复杂性和技术挑战。
南通大学汇编语言综合设计实验
5.2心得
5.2.1深的难点,进一步感受到汇编语言中DEBUG调试工具的重要性。
二、环境(软、硬件平台)
2.1软件环境:window10家庭版、Dosbox、MASM
2.2硬件平台:RAM:8.00GB
CPU:Intel(R) Celeron(R) CPU 3215U @17.0GHz 1.70 GHz
三、内容及步骤(包括程序流程及说明)
3.1根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。
3.1.3在第2题程序的基础上进行修改。将显示表格的行、列数由固定的
15行16列改为由用户从键盘输入。然后,按用户输入的行列值进行显示。
3.2实验源程序
3.2.1实验一源程序
3.2.2实验二源程序
四、运行结果
4.1实验一运行结果
4.1.1编译结果
4.1.2反编译
4.1.3编译运行
4.2实验二运行结果
4.2.1编译结果
4.2.2反编译
4.2.3编译运行
五、问题及心得
5.1遇到问题
5.1.1在做实验一、三时,需要由用户从键盘输入两个值进行行号列号的展现,但是在用户输入这一块较为薄弱。
5.1.2在实验三的输入方面,忘记将数据段写入代码的定义之中,导致编译时一直出现block nesting error。
南通大学计算机科学与技术学院上机实验报告
课程名称:汇编语言程序设计
年级:17级
上机日期:2019.12.20
姓名:沈**
学号:1713*****
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言程序设计创新实验项目
1. 编写一个完整的程序:根据零件的数量和总价格,计算出零件的单价。
主程序MAINPRO允许用户在键盘上输入零件数量和总价格;
子程序SUBCONV 把从键盘输入的ASCII 码转化为二进制;
子程序SUBCALC 计算出零件的单价;
子程序SUBDISP 把二进制表示的单价转化为十进制数并显示出结果。
要求:在程序设计时要求使用顺序、分支、循环、子程序和宏汇编等多种方法解决程序设计问题,对于较大的子程序最好使用子程序嵌套,程序中如有多次重复的代码最好使用重复汇编。
2.编写一个完整的程序,分别输入有一个班学生的百分制成绩,根据学生百分制成绩转换出五级分数制。
如低于60分为E,60-69为D、70-79为C、80-89为B、90-99为A。
并统计该班学生人数。
要求:1、学生成绩从键盘接收;
2、本程序可以重复运行,自行设计退出程序的方法;
3、程序具有可操作性,如,应该有提示语句和判断非法操作的方法和处理方式。
3. 编写一个完整的程序,在屏幕上显示如图所示数字拼成的形状。
0123456789
1234567890
2345678901
3456789012
4567890123
5678901234
6789012345
7890123456
8901234567
9012345678
4、按要求编写一个完整的程序。
要求:1、自BUFFER开始的内存单元中,存有一个ASCII码字符串。
查找已知字符串中含有多少个子字符串‘AB’的个数,将统计结果以十进制形式显示输出。
2、在查找到子字符串‘AB’后添加空格字符。
5、按要求编写一个完整的程序。
要求:1、编写子程序SORT,将内存中10个无符号字数据由小到大排序。
2、编写子程序FIND,在上述已排好的数据区里查找某一个数,若找到,显示
其在数据区的位置,否则显示‘N’字符。
3、编写调用程序,完成排序及检索任务。
6、试编写一程序,要求根据用户键入的月份在终端上显示该月的英文缩写名。
7、试编写一程序,要求接收从键盘输入的一个班的学生成绩,并存放于30字的grade数组中,其中grade+1保存学号为了i+1的学生的成绩。
然后根据grade中的学生成绩,把学生
名次填入30字的rank数组中,其中rank+1的内容是学号为i+1学生的名次,再按学号顺序把名次从终端上显示出来。
8、试编写一程序实现以下功能:使一个特定字符从左下角上升到右上角,然后回到左下角,再上升到右上角,重复运行,直到按任意键时退出。
(利用bios中断int 10h)程序思路为:显示某图形、延时、清除该图形、修改图形显示位置,如没有键按下,则重复以上过程,如有键按下则退出。
9、编写程序,在屏幕10行20~24列处显示五朵梅花,颜色各异,且要求中间一朵能够闪烁。
(利用bios中断int 10h)
10、猜数字游戏
计算机要求第一个人输入一个数字,数字输入后清屏;然后另一个人来猜这个数字,每猜测一次,计算机都提示是“太大了”还是“太小了”,或者是“答对了”。
猜对之后,猜过的数字的数目会显示在屏幕上,并询问时候要开始下一次游戏。
运行结果如下图。
11、显示九九乘法表
实验要求:显示下三角格式如下图所示,也可以上三角格式显示。
九九乘法表
1*1=1
2*1=22*2=4
3*1=33*2=63*3=9
4*1=44*2=84*3=124*4=16
5*1=55*2=105*3=155*4=205*5=25
6*1=66*2=126*3=186*4=246*5=306*6=36
7*1=77*2=147*3=217*4=287*5=357*6=427*7=49
8*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=64
9*1=99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=81
提示:
(1)建立一个双重循环,外循环控制显示各行,内循环显示每行中的各列,其中外循环循环次数为9,内循环循环次数等于当前的行数。
(2)每次显示项可以由以下几部份组成:
当前行数值‘*’当前列数值‘=’当前行数值×当前列数值
每行所有项显示完成后显示空行串(回车符和换行符)。
12、利用INT 1CH(大约每秒中断18.2次)编写一个中断驻留程序,要求在屏幕的右上角显示计算机中当前系统时间,显示格式为
时:分:秒:1/100秒
13、数据处理程序设计
要求:(1)设计一个包括:键盘输入、显示、排序、转换、退出程序的主菜单。
(2)从键盘输入10个字符型带符号数。
(3)把10个带符号十进制数转换成二进制数。
(4)把10个二进制数按照从小到大的顺序排序
(5)把10个带符号二进制数转换成十进制数。
(6)把最大数用十进制数的形式显示在屏幕上。
14、完成Word型二进制,十进制和十六进制的相互转换,包括从键盘输入和屏幕输出功能。
要求:
(1).功能选择。
(2).转换使用子程序实现,且:二进制到十进制和十六进制转换使用内存传
递参数;十进制到二进制和十六进制转换使用寄存器传递参数;十六进制到二进制和十进制转换使用堆栈传递参数。
(3).输出使用子程序实现。
实验结果参考。