汇编语言程序设计综合设计实验项目
实验一 汇编语言程序设计的实验环境及上机步骤

实验一熟悉汇编语言程序设计的实验环境及上机步骤一、实验目的: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、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间: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).输出使用子程序实现。
实验结果参考。