实验五 熟悉汇编语言环境及建立汇编的过程00
《汇编语言》实验报告
《汇编语言》实验报告实验名称:汇编语言实验报告实验目的:通过实验了解汇编语言的基本概念、语法结构和程序设计方法,掌握汇编语言的编写方法。
实验时间:2024年1月1日实验地点:实验室一、实验背景汇编语言是计算机硬件和软件之间的桥梁,通过汇编语言可以直接操作计算机的底层硬件。
汇编语言是一种低级语言,使用汇编语言可以实现对计算机内存、寄存器等硬件资源的直接操作,从而实现程序的功能。
本实验通过编写汇编语言程序,加深对汇编语言的理解。
二、实验过程1. 确定实验环境:使用DOSBox模拟DOS环境进行汇编程序编写和调试。
2. 编写第一个汇编程序:编写一个简单的汇编程序,将字符串“Hello, World!”输出到屏幕上。
3.程序分析:a.定义要输出的字符串,将字符串存储在数据段中。
b.设置段寄存器,将数据段地址加载到DS寄存器中。
c.设置显示模式和光标位置。
d.将字符串逐个字符输出到屏幕上。
e.关闭显示模式。
4. 编译运行:使用汇编语言的编译器将汇编程序转换成机器码,并在DOSBox中运行程序。
5.调试程序:根据程序运行结果和分析,调试程序中存在的错误,并进行改正。
三、实验结果与分析经过多次编写和调试,我们成功实现了将字符串“Hello, World!”输出到屏幕上的功能。
通过程序分析和调试过程,加深了对汇编语言的理解和掌握。
四、实验总结通过本次实验,我们深入了解了汇编语言的基本概念、语法结构和程序设计方法。
通过实际编写汇编语言程序,对汇编语言的编写方法有了更加深入的认识。
同时,通过调试程序的过程,我们也提高了自身的问题解决能力和分析能力。
在今后的学习和工作中,我们将继续学习和深入研究汇编语言,提高自己的编程能力和创新思维能力。
总体而言,本次实验给我们带来了很大的收获,我们以后将更加努力地学习汇编语言,提高自己的编程水平,为以后的学习和工作做好充分的准备。
北京理工大学汇编实验五实验报告概要
本科实验报告实验名称:子程序设计实验实验五子程序设计实验(设计性实验)一、实验要求和目的1.熟悉汇编语言程序设计结构;2.熟悉汇编语言子程序设计方法;3.熟悉利用汇编语言子程序参数传递方法;4.熟悉汇编语言字符串处理基本指令的使用方法;5.掌握利用汇编语言实现字符串的输入输出程序设计方法;6.掌握数制转换程序实现方法。
二、软硬件环境1、硬件环境:计算机系统windows;2、软件环境:装有MASM、DEBUG、LINK、等应用程序。
三、实验涉及的主要知识A)子程序知识要点:1、掌握子程序的定义语句;过程名PROC [near/far] 过程体RET过程名ENDP2.子程序结构形式一个完整的子程序一般应包含下列内容:1. )子程序的说明部分在设计了程序时,要建立子程序的文档说明,使用户能清楚此子程序的功能和调用方法.说明时,应含如下内容:.子程序名:命名时要名中见意..子程序的功能:说明子程序完成的任务;.子程序入口参数:说明子程序运行所需参数及存放位置;.子程序出口参数:说明子程序运行结果的参数及存放位置;.子程序所占用的寄存器和工作单元;.子程序调用示例;2、)掌握子程序的调用与返回在汇编语言中,子程序的调用用CALL,返回用RET指令来完成。
.段内调用与返回:调用子程序指令与子程序同在一个段内。
因此只修改IP;.段间调用与返回:调用子程序与子程序分别在不同的段,因此在返回时,需同时修改CS:IP。
3.)子程序的现场保护与恢复保护现场:在子程序设计时,CPU内部寄存器内容的保护和恢复。
一般利用堆栈实现现场保护和恢复的格式:过程名PROC[NEAR/FAR]PUSH AXPUSH BX..PUSH DX...POP DX...POP AXRET过程名ENDP4.子程序的参数传递方法1.寄存器传递参数这种方式是最基本的参数传递方式。
2.存储器单元传(变量)递参数这种方法是在主程序调用子程序前,将入口参数存放到约定的存储单元中;子程序运行时到约定存储位置读取参数;子程序执行结束后将结果也放在约定存储单元中。
《汇编语言》实验报告_搭建开发环境
《汇编语言》实验报告得分:2、添加添加Irvine32.inc等所在的目录到include files中;3. 将masm32中的ml.exe和ml.err拷贝到VC的Microsoft Visual Studio\VC98\Bin 目录中二、创建与配置project:2.编辑教材85页不带输出的程序代码如下:.386.model flat,stdcall.stack 4096ExitProcess PROTO, dwExitCode:DWORD DumpRegs PROTO.dataRval SDWORD ?Xval SDWORD 26Yval SDWORD 30Zval SDWORD 40.codemain PROCmov ax,1000hinc axdec axmov eax,Xvalneg eaxmov ebx,Zvaladd eax,ebxmov Rval,eaxmov cx,1sub cx,1mov ax,0FFFFhinc axmov cx,0sub cx,1mov ax,7FFFhadd ax,2mov al,0FFhadd al,1mov al,+127add al,1mov al,-128sub al,1call DumpRegsINVOKE ExitProcess,0main ENDPEND main结果:3.输出各寄存器的值。
DumpRegs PROTO程序最后加入调用DumpRegs过程的语句call DumpRegs输出结果如下:4.单步执行的方式调试该程序,查看每步结果,并解释每步结果,并写成注释。
(特别注意对标志位的影响)1、按F10进行调试、alt+F5调出寄存器的变化信息框。
程序及标志位解读如下:.386.model flat,stdcall.stack 4096ExitProcess PROTO, dwExitCode:DWORDDumpRegs PROTO.dataRval SDWORD ?Xval SDWORD 26Yval SDWORD 30Zval SDWORD 40.codemain PROCmov ax,1000h //ax 4096 ;bx 57344;inc ax //ax 4097;bx 57344(实现自增)dec ax////ax 4096;bx 57344(实现自减)mov eax,Xval //把Xval复制给eaxneg eax //ax 26;bx 57344(取反令ax=-26)mov ebx,Zvalv //ax 65510 ;bx 40 ;cx(把Zval的40赋给ebx)add eax,ebx // ax 14 ;bx 40 (求和eax=ebx+eax=14)mov Rval,eax//把eax复制给Rvalmov cx,1 //ax=14;bx=40;cx=1sub cx,1mov ax,0FFFFhinc ax//ax 65535;bx=10;cx=0;mov cx,0sub cx,1mov ax,7FFFhadd ax,2 //ax 32767 bx=40 cx =65535mov al,0FFh//ax 32769add al,1 //ax 33023add al,1 //ax 32768mov al,-128 //ax 32895sub al,1 //ax 32896call DumpRegs //ax 32895INVOKE ExitProcess,0 //结束退出程序main ENDPEND main。
汇编语言开发过程详解
汇编语言开发过程详解汇编语言是一种低级别的编程语言,通过它可以直接控制计算机硬件,实现底层功能。
在这篇文章中,我们将详细介绍汇编语言开发的过程,包括环境搭建、代码编写和调试等。
一、环境搭建为了进行汇编语言开发,我们需要在计算机上搭建相应的开发环境。
首先,我们需要安装一个汇编器,如MASM(Microsoft Macro Assembler)或NASM(Netwide Assembler)。
这些汇编器可以将汇编语言代码转换成机器代码,并生成可执行程序。
其次,我们需要一个文本编辑器,用于编写汇编语言代码。
常用的文本编辑器有Notepad++、Sublime Text和Visual Studio Code等。
选择一个你熟悉且适合的编辑器,确保能够正确显示和保存汇编语言代码。
二、代码编写在开始编写汇编语言代码之前,我们需要了解目标计算机的体系结构和指令集。
不同的计算机体系结构有不同的指令格式和寄存器,因此编程时需要根据具体的体系结构进行相应的调整。
在编写汇编语言代码时,需要掌握汇编语言的语法和指令集。
汇编语言有不同的指令,如数据传输指令、算术逻辑指令、控制指令等,可以根据需要选择并使用相应的指令。
以下是一个简单的汇编语言代码示例,用于将两个数相加并将结果保存到一个变量中:```section .datanum1 dw 10 ; 定义变量num1并赋初值10num2 dw 20 ; 定义变量num2并赋初值20result dw ? ; 定义变量resultsection .textglobal _start_start:mov ax, [num1] ; 将变量num1的值加载到寄存器ax中add ax, [num2] ; 将变量num2的值与寄存器ax中的值相加mov [result], ax ; 将结果保存到变量result中mov eax, 1 ; 准备退出程序的系统调用号xor ebx, ebx ; 返回值(错误码)设置为0int 0x80 ; 调用系统中断```三、调试和测试完成汇编语言代码的编写后,我们需要对代码进行调试和测试,以确保程序的正确性和可靠性。
汇编语言程序设计的实验环境及实验步骤
汇编语言程序设计的实验环境及实验步骤1、汇编语言源程序编写好以后,必须经过下列几个步骤才能在机器上运行:(1) 编辑源程序(生成.ASM文件)(2) 汇编源程序(.ASM → .OBJ)(3) 连接目标程序(.OBJ → .EXE )(4) 调试可执行程序(使用调试程序Debug调试生成的.EXE文件)(5) 运行程序输出结果。
2、Windows环境下的汇编语言集成编程环境的使用实验一 DOS环境下的汇编语言编程环境使用(基础与验证型)实验要求和目的1、掌握汇编语言程序设计的基本方法和技能;2、熟练掌握使用全屏幕编辑程序EDIT编辑汇编语言源程序;3、熟练掌握宏汇编程序MASM的使用;4、熟练掌握连接程序LINK的使用。
实验涉及的主要知识单元1、编辑源程序例如,编写程序,可以在DOS模式下用编辑程序edit.exe建立汇编语言源程序文件Hello.asm,注意文件名的扩展名必须是.asm。
也可以在Windows 2000或者在Windows XP环境下鼠标单击“开始”→“运行”,在“运行”中输入“cmd”进入DOS模式,运行edit软件,例如:C:> edit hello.asm2、汇编语言源程序的汇编过程汇编程序调入后,首先显示版本号,然后出现三个提示行。
第一个提示行为:Object filename [HELLO.OBJ]:询问目标程序文件名,方括号内为机器规定的默认的文件名,通常直接按回车键,表示采用默认的文件名(如上所示)。
第二个提示行为:Source listing [NUL.LST]:询问是否建立列表文件。
若不建立,直接回车;若要建立,可以输入文件名hello再回车。
列表文件中同时列出源程序和机器语言程序清单,并给出符号表,有利于程序调试。
第三个提示行为:Cross-reference [NUL.CRF]:询问是否要建立交叉索引文件。
若不建立,则直接回车;若要建立,可以输入文件名。
汇编语言程序设计的实验环境及上机步骤
汇编语言程序设计上机实验指导书电子信息工程学院工业自动化教研室2008年4月15日汇编语言程序设计的实验环境及上机步骤一、实验环境汇编语言程序设计的实验环境如下:1. 硬件环境微型计算机(Intel x86系列CPU)一台2. 软件环境Windows98/2000/XP操作系统任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等)汇编程序(MASM.EXE或TASM.EXE)连接程序(LINK.EXE或TLINK.EXE)调试程序(DEBUG.EXE或TD.EXE)文本编辑器建议使用EDIT或NOTEPAD,汇编程序建议使用MASM.EXE,连接程序建议使用LINK.EXE,调试程序建议使用DEBUG.EXE。
二、上机实验步骤1.确定源程序的存放目录建议源程序存放的目录名为MASM中,MASM子目录在C盘或D盘的根目录下。
2.建立ASM源程序建立ASM源程序可以使用EDIT或NOTEPAD(记事本)文本编辑器。
下面的例子说明了用EDIT文本编辑器来建立ASM源程序的步骤(假定要建立的源程序名为HELLO.ASM),用NOTEPAD(记事本)建立ASM源程序的步骤与此类似。
在Windows中点击桌面左下角的“开始”按钮→选择“运行”→在弹出的窗口中输入“”,屏幕上出现EDIT的编辑窗口。
窗口标题行显示了EDIT程序的完整路径名。
紧接着标题行下面的是菜单行,窗口最下面一行是提示行。
菜单可以用Alt键激活,然后用方向键选择菜单项,也可以直接用Alt-F 打开File文件菜单,用Alt-E打开Edit编辑菜单,等等。
如果键入EDIT命令时已带上了源程序文件名(C:\ASM\HELLO.ASM),在编辑窗口上部就会显示该文件名。
如果在键入EDIT 命令时未给出源程序文件名,则编辑窗口上会显示“UNTITLED1”,表示文件还没有名字,在这种情况下保存源程序文件时,EDIT会提示输入要保存的源程序的文件名。
汇编语言实验报告
汇编语言实验报告
1. 实验简介
本次实验是针对汇编语言的学习和实践,在实验中,我们将学习如何使用汇编语言编写程序、调试程序,并通过一系列实例来练习和巩固所学知识。
2. 实验目的
(这一部分可以根据实际情况来写,列举实验的具体目的和要求)
3. 实验环境及工具
(介绍实验所使用的软件环境和工具,如:编译器、调试器)
4. 实验步骤
(根据实验内容具体描述实验步骤,可以分为多个小节)
4.1 准备工作
在开始实验之前,需要进行一些准备工作,包括安装编译器、创建工作环境等。
4.2 实验一:简单的汇编程序
本实验通过编写一个简单的汇编程序来熟悉汇编语言的基本语法和指令集,包括数据传送、算术运算、逻辑运算等。
4.3 实验二:汇编程序的调试
在实验二中,我们将学习如何使用调试器对汇编程序进行调试,包括设置断点、查看变量值、单步执行等操作。
4.4 实验三:汇编程序的优化
本实验将通过优化代码来提高程序的执行效率,包括减少指令的使用、优化循环结构等。
5. 实验结果与分析
(对实验的结果进行总结和分析,可以包括程序的输出结果、性能分析等)
6. 实验总结
(针对本次实验的收获和心得体会进行总结,可以包括对汇编语言的理解、解决问题的思路等)
7. 实验感想
(对本次实验的感想和建议,如实验过程中遇到的困难、改进的方向等)
8. 参考文献
(列出本报告中所引用的参考文献)
注:该文章只是按照题目提示给出了一个大致的框架和构思,实际根据具体的实验内容和要求来编写每个小节的详细内容。
希望对你有所帮助!。
汇编实验报告(适合初学者)
汇编实验报告(适合初学者)汇编语言程序设计一、实验目的与要求1.熟悉汇编语言运行、调试环境及方法。
2.掌握简单汇编语言程序的设计方法。
3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。
二、实验内容根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。
1.若X、Y、R、W是存放8位带符号数字节单元的地址,Z是16位字单元的地址。
试编写汇编程序,完成Z<-((W-X)/5-Y)某(R+2)①.程序算法流程图。
开始初始化AL=(W-X)AL=(W-X)/5CL=(W-X)/5-YAL=(R+2)Z=((W-X)/5-Y)某(R+2)结束②.源程序清单。
DATASEGMENTXDB1H;数据定义YDB0HRDB3HWDB6HZDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;段寄存器定义MOVAL,WSUBAL,X;求(W-X)CBW;字节转换为字MOVCL,5IDIVCL;(W-X)/5MOVCL,ALMOVAL,Y;(W-X)/5-YSUBCL,ALMOVAL,RADDAL,2;(R+2)IMULCL;((W-X)/5-Y)某(R+2)MOV[Z],AXADDAL,30H;输出结果MOVDL,AL;MOVAH,2INT21HMOVAH,4CHINT21HCODEENDSENDSTART③.程序运行结果。
④.调试过程中遇到的问题和解决的方法。
还未能实现动态的输入数据,对指令的不熟悉,以至于在程序中经常性出错,得掌握固定的程序功能。
2.试编写一个程序,测试数是否是奇数。
如该数是奇数,则把DL的第0位置1,否则将该位置0。
①.程序算法流程图。
开始AL=XAL右移一位得CF否CF==1是DL与000000001B相或DL与11111110B相与结束②.源程序清单。
DATASEGMENTXDB9H;数据定义DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;段寄存器定义MOVAL,XSHR AL,1;利用右移一位得到cf值,JB判断 JB NEXT;为1则为奇数ANDDL,11111110B;偶数DL第一个数置为0JMPEXITNEXT:ORDL,000000001B;奇数DL第一个数置为1EXIT:MOVAH,4CHINT21HCODEENDSENDSTART③.程序运行结果。
熟悉emu8086汇编语言调试环境实验报告
熟悉emu8086汇编语言调试环境实验报告=======================1. 实验目的-------本次实验的主要目的是熟悉并掌握emu8086汇编语言调试环境的使用,了解汇编语言的基本原理和编程方法,提升对计算机硬件和程序运行的理解。
2. 实验原理-------emu8086是一款用于学习和实验的8086微处理器模拟器。
它提供了一个集成开发环境(IDE),可以在此环境中编写、编译、调试和运行8086汇编语言程序。
3. 实验步骤-------以下是我们进行实验的具体步骤:步骤一:安装emu8086模拟器。
从官方网站下载并安装emu8086模拟器,确保正确安装并能够正常运行。
步骤二:打开模拟器并创建一个新项目。
在模拟器的IDE中,选择“文件”->“新建”->“项目”,然后为项目命名并选择存储位置。
步骤三:编写汇编语言程序。
在项目中创建一个新的汇编文件,使用8086汇编语言编写一个简单的程序。
例如,可以编写一个程序来输出“Hello, World!”到屏幕上。
步骤四:编译程序。
在模拟器的IDE中,选择“编译”->“编译全部”,将汇编文件编译成机器码。
步骤五:运行程序。
在模拟器的IDE中,选择“运行”->“运行”,或者直接按下F9键,来运行程序。
步骤六:调试程序。
如果程序运行出现问题,可以使用emu8086的调试功能来查找和修复错误。
在模拟器的IDE中,选择“调试”->“开始调试”,然后使用调试工具来检查程序的状态、寄存器和内存。
4. 实验结果-------通过本次实验,我们成功地编写、编译、运行并调试了一个简单的8086汇编语言程序。
我们实现了在屏幕上输出“Hello, World!”的目标,并且深入了解了emu8086模拟器的使用方法和8086汇编语言的编程技巧。
5. 实验分析-------通过本次实验,我们深入了解了8086汇编语言的编程方法和计算机硬件的基本原理。
汇编语言程序设计实验报告
汇编语言程序设计实验报告汇编语言程序设计实验报告一、实验目的:(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。
汇编语言上机实验汇总
汇编语言上机实验汇总汇编语言是计算机的低级语言,主要用于编写底层程序和驱动程序。
在学习汇编语言的过程中,学生通常需要进行一定数量的上机实验。
下面是一个汇编语言上机实验的汇总。
1.实验一:环境搭建-目标:搭建汇编语言开发环境2.实验二:基本语法-目标:学习汇编语言的基本语法和指令格式-内容:编写一个简单的汇编程序,包括数据段、代码段和堆栈段,以及常用指令(例如MOV、ADD、SUB、JMP等)的使用。
3.实验三:寄存器和内存操作-目标:熟悉汇编语言中的寄存器和内存的操作-内容:编写一个汇编程序,通过MOV指令将数据从内存中加载到寄存器中,然后进行运算,并将结果存储回内存。
4.实验四:条件分支和循环-目标:掌握汇编语言中的条件分支和循环结构-内容:编写一个汇编程序,使用条件分支指令(例如CMP、JE、JNE 等)实现一个简单的判断语句;然后使用循环指令(例如LOOP)实现一个简单的循环结构。
5.实验五:子程序和参数传递-目标:学习如何创建和调用子程序,并传递参数-内容:编写一个汇编程序,其中包含一个子程序,该子程序接受两个参数并返回它们的和。
然后在主程序中调用该子程序,并输出结果。
6.实验六:中断和异常处理-目标:了解中断和异常处理机制,并在汇编程序中处理中断或异常-内容:编写一个汇编程序,其中包含一个中断处理程序,当发生特定的中断时,该处理程序将执行一些特定的操作。
7.实验七:串操作和文件操作-目标:学习汇编语言中的串操作和文件操作-内容:编写一个汇编程序,使用串操作指令(例如MOVS、LODS、STOS等)操作字符串;然后使用文件操作指令(例如OPEN、READ、WRITE 等)读取或写入文件。
8.实验八:图形和音频处理-目标:了解汇编语言中的图形和音频处理- 内容:编写一个汇编程序,使用图形库(例如BGI、OpenGL、DirectX)绘制简单的图形或运行一个音频文件。
这些上机实验可以帮助学生逐步掌握汇编语言的基本知识和技能,并为以后的高级汇编语言编程打下基础。
汇编语言程序设计的实验环境及上机步骤
第1章汇编语言程序设计实验1.1 汇编语言程序设计的实验环境及上机步骤1.1.1 实验环境汇编语言程序设计的实验环境如下。
1.硬件环境微型计算机(Intel x86系列 CPU)1台。
2.软件环境·Windows 98/XP/Me/2000操作系统;·任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等);·汇编程序(MASM.EXE或TASM.EXE);·链接程序(LINK.EXE或TLINK.EXE);·调试程序(DEBUG.EXE或TD.EXE)。
本书建议文本编辑器使用EDIT或NOTEPAD,汇编程序使用MASM.EXE,链接程序使用LINK.EXE,调试程序使用TD.EXE。
1.1.2 上机步骤汇编语言程序设计的实验2和实验3仅使用TD.EXE,关于TD.EXE的使用方法请参见附录B。
下面介绍的上机实验步骤适用于除实验2和实验3的所有实验(包括硬件接口部分的全部实验)。
1.确定源程序的存放目录建议源程序存放的目录名为ASM,并放在C盘或D盘的根目录下。
如果没有创建过此目录,请用如下方法创建。
通过Windows的资源管理器找到C盘的根目录,在C盘的根目录窗口中单击右键,弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。
请把MASM5文件夹下的所有文件及TD.EXE都复制到此目录中。
2.建立ASM源程序建立*.ASM源程序可以使用记事本文本编辑器。
注意:保存时扩展名必须ASM。
设建立的源文件为HELLO.ASM3.用MASM.EXE汇编源程序产生OBJ目标文件源文件HELLO.ASM建立后,要使用汇编程序对源程序文件汇编,汇编后产生二进制的目标文件(.OBJ文件)。
具体操作如下:方法一:在Windows中操作用资源管理器打开源程序目录C:\ASM,把HELLO.ASM拖到MASM.EXE程序图标上。
汇编语言程序设计的实验环境及上机步骤
汇编语言程序设计的实验环境及上机步骤一、实验环境汇编语言程序设计的实验环境如下:1.硬件环境微型计算机(Intel x86系列CPU)一台2.软件环境⏹Windows98/2000/XP操作系统⏹任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等)⏹汇编程序(MASM.EXE)⏹连接程序(LINK.EXE)⏹调试程序(DEBUG.EXE)文本编辑器建议使用EDIT或NOTEPAD,汇编程序建议使用MASM.EXE,连接程序建议使用LINK.EXE,调试程序建议使用DEBUG.EXE。
二、上机实验步骤1.确定源程序的存放目录建议源程序存放的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。
如果没有创建过此目录,请用如下方法创建:通过Windows的资源管理器找到C盘的根目录,在C盘的根目录窗口中点击右键,在弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。
请把MASM.EXE、LINK.EXE、DENUG.EXE和TD.EXE都拷贝到此目录中。
2.建立ASM源程序在步骤1中建立的目录下新建一个名为1.ASM的文本文档,然后编写源代码,检查,保存。
注意,汇编语言源程序文件的扩展名最好起名为.ASM,这样能给后面的汇编和连接操作带来很大的方便。
3.用MASM.EXE汇编源程序产生OBJ目标文件源文件1.ASM建立后,要使用汇编程序对源程序文件汇编,汇编后产生二进制的目标文件(.OBJ文件)。
具体操作如下:方法一:在Windows中操作用资源管理器打开源程序目录C:\ASM,把1.ASM拖到MASM.EXE程序图标上。
方法二:在DOS命令提示符窗口中操作选择“开始”→“程序”→“附件”→“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入MASM命令:I:>C:<回车>C:>CD \ASM<回车>C:\ASM>MASM 1.ASM<回车>操作时的屏幕显示如图1所示。
实验五汇编语言程序设计实验(一)
实验五汇编语言程序设计实验(一)一、实验目的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 为首地址的缓冲区,其中如有大写字母,要求用子程序转换成小写字母,字符串以回车键作为结束。
写出操作步骤,程序清单,程序注释,实验现象。
《汇编语言上机环境及基本步骤》实验报告
汇编语言上机环境及基本步骤一、实验目的:1.掌握编写汇编源程序的基本格式。
2.熟悉汇编语言上机环境。
3.掌握汇编源程序的编辑和修改,熟悉EDIT或记事本的使用方法。
4.掌握汇编源程序编译、连接成可执行文件的过程,熟悉MASM,LINK的使用方法。
二、实验内容:在屏幕上显示并打印字符串“This is a sample program.”三、实验仪器微机一台四、实验步骤:1.在某盘如E盘,以自己的名字的汉语拼音建立一个工作目录(文件夹,名称不要太长,不超过8个字符比如zhangsan),将文件MASM.EXE,LINK.EXE等复制到该目录下,编辑的源文件也保存到该目录下。
从WINDOWS进入DOS环境:C:\>2.用EDIT编辑SW1.ASM源文件。
(1). 从当前目录进入自己的目录下,C:\>E: 回车E:\> CD zhangsan ↙回车键入EDIT并回车:E:\ zhangsan>EDIT根据菜单提示进行各种操作。
(2)进入EDIT编辑------EDIT是一种全屏幕编辑软件,可输入、编辑、修改、保存、另存源程序非常方便。
说明:也可在WIDNDOWS环境下用记事本编辑源文件,在保存时,保存类型应选择所有文件,不能选择文本文件(*.txt),否则在编译时会找不到源文件的。
(3).编辑新文件:a、在EDIT编辑器中输入汇编源程序。
b、检查输入有无错误。
c、打开文件菜单FILE→选择另存为SA VE AS┅→输入文件名为:SW1.ASM→保存。
注意:保存到你自己的文件夹中d、若需要修改此文件,用FILE菜单→选择打开OPEN→输入文件名SW1.ASM,即可修改。
修改后注意重新再存盘。
(4).编辑汇编源程序a、在EDIT(或记事本)中输入源程序。
b、检查。
c、存盘。
可保存为SW1.ASM3.用汇编程序MASM将SW1.ASM文件汇编,生成SW1.OBJ目标文件。
(1).一般简单程序只需生成.OBJ文件,可键入简化命令:E:\zhangsan>MASM SW1;↙若有错误,则显示错误行号及错误性质,如:SW1.ASM(5):error A2006:undefined symbor:xxxx(2).若有错重新进入EDIT进行修改。
汇编 实验报告
汇编实验报告汇编实验报告引言:汇编语言是一种低级语言,用于编写计算机程序。
在计算机科学领域中,汇编语言是一门重要的学科,它可以帮助我们更深入地了解计算机的内部工作原理。
本实验报告将介绍我在学习汇编语言过程中的实验经历和所学到的知识。
实验一:汇编语言的基本概念在本实验中,我首先学习了汇编语言的基本概念。
汇编语言是一种用于编写机器指令的低级语言,它直接操作计算机的硬件。
通过学习汇编语言,我了解了计算机内存、寄存器、指令和数据的存储方式,并学会了如何编写简单的汇编程序。
实验二:汇编语言的数据表示在这个实验中,我学习了汇编语言中的数据表示方法。
汇编语言中的数据可以用不同的方式表示,例如二进制、十进制和十六进制。
我还学习了如何使用数据寄存器和内存寻址来处理不同类型的数据。
实验三:汇编语言的指令集在本实验中,我学习了汇编语言的指令集。
汇编语言中的指令可以分为数据传送指令、算术运算指令、逻辑运算指令和控制指令等多种类型。
通过学习不同类型的指令,我可以编写更加复杂和功能强大的汇编程序。
实验四:汇编语言的程序设计在这个实验中,我学习了如何使用汇编语言进行程序设计。
通过学习汇编语言的程序设计技巧,我可以编写出高效、精确和可靠的程序。
我还学习了如何使用子程序、循环和条件语句等控制结构来实现不同的功能。
实验五:汇编语言的调试和优化在本实验中,我学习了如何调试和优化汇编语言程序。
调试是指在程序运行过程中发现并修复错误的过程,而优化则是指对程序进行性能提升的过程。
通过学习调试和优化技巧,我可以提高程序的效率和可靠性。
结论:通过这些实验,我对汇编语言有了更深入的了解。
汇编语言虽然复杂,但它可以帮助我们更好地理解计算机的内部工作原理,并且可以编写出高效、精确和可靠的程序。
通过学习汇编语言,我不仅提升了自己的编程能力,还对计算机科学有了更全面的认识。
我相信,在今后的学习和工作中,汇编语言将会发挥重要的作用。
汇编实验报告
实验一(1)熟悉汇编语言程序调试环境及顺序程序设计一、实验目的及要求:1.学习及掌握汇编语言源程序的书写格式和要求,明确程序中各段的功能和相互之间的关系。
2.学会使用EDIT、MASM、LINK、DEBUG等软件工具。
3.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。
二、熟悉汇编语言程序调试环境1.汇编语言源程序的建立本例中给出的程序是要求从内存中存放的10个无符号字节整数数组中找出最小数,将其值保存在AL寄存器中。
设定源程序的文件名为ABC。
DATA SEGMENTBUF DB 23H,16H,08H,20H,64H,8AH,91H,35H,2BH,7FHCN EQU $-BUFDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: PUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV BX,OFFSET BUFMOV CX,CNDEC CXMOV AL,[BX]INC BXLP: CMP AL,[BX]JBE NEXTMOV AL,[BX]NEXT: INC BXDEC CXJNZ LPMOV AH,4CHINT 21HCODE ENDSEND START键入以下命令:C:\>EDIT ABC.ASM此时屏幕的显示状态如图1所示。
图1 用EDIT编辑ABC.ASM程序窗口程序输入完毕后一定要将源程序文件存入盘中,以便进行汇编及连接,也可以再次调出源程序进行修改。
2.将源程序文件汇编成目标程序文件一般情况下,MASM汇编程序的主要功能有以下3点:(1)检查源程序中存在的语法错误,并给出错误信息。
(2)源程序经汇编后没有错误,则产生目标程序文件,扩展名为.OBJ。
(3)若程序中使用了宏指令,则汇编程序将展开宏指令。
源程序建立以后,在DOS状态下,采用宏汇编程序MASM对源程序文件进行汇编,其操作过程如图2所示。
计算机熟悉汇编语言环境及建立汇编的过程精品文档
计算机熟悉汇编语言环境及建立汇编的过程精品文档计算机熟悉汇编语言环境及建立汇编的过程计算机汇编语言是一种底层语言,它和人类使用的自然语言有着明显的区别。
然而,对于计算机专业的学生或从事相关工作的人来说,熟悉汇编语言是很重要的。
本文将介绍计算机熟悉汇编语言环境及建立汇编的过程,帮助读者更好地理解和应用汇编语言。
一、汇编语言及其重要性汇编语言是一种低级编程语言,直接操作计算机的硬件,具有较高的执行效率。
与高级编程语言相比,汇编语言更接近计算机硬件的操作方式,可以更好地优化代码。
同时,汇编语言也是学习计算机体系结构和机器指令的基础,对于理解计算机内部工作原理有着重要的帮助。
二、熟悉汇编语言的必要条件在学习汇编语言之前,有几个先决条件是必要的。
首先,了解基本的计算机体系结构和机器指令是必要的。
其次,具备良好的编程基础和逻辑思维能力。
最后,对计算机底层原理有一定的了解。
具备这些基础,能够更好地理解和应用汇编语言。
三、建立汇编语言环境建立汇编语言环境是熟悉汇编语言的第一步。
以下是建议的步骤:1.选择适合的汇编语言工具选择适合的汇编语言工具是非常重要的,常用的汇编语言工具有MASM、NASM和TASM等。
这些工具根据不同的操作系统和架构提供了相应的编译器和调试器。
2.安装汇编语言工具根据选择的汇编语言工具,按照相应的安装步骤进行安装。
安装完成后,将汇编语言工具的路径添加到系统环境变量中,以便在任何位置都能够使用。
3.编辑和编写汇编代码使用文本编辑器或集成开发环境(IDE)编写汇编代码。
汇编语言与其他编程语言相比,语法较为简单,但也有一些特殊的语法规则需要遵守。
在编写代码时,需要注意代码的可读性和可维护性。
4.编译和链接汇编代码使用汇编语言工具提供的编译器将汇编代码编译成目标文件。
然后使用相应的链接器将目标文件与库文件链接生成可执行文件。
在这个过程中,需要指定适当的编译选项和链接选项,以充分发挥汇编语言的优势。
汇编语言程序设计的试验环境及实验步骤
汇编语言程序设计的实验环境 及实验步骤
实验环境
• 1、硬件环境:微机CPU 486以上,500MB以上 硬盘,32M以上内存; • 2、软件环境:装有MASM 5.0、DEBUG、 LINK、EDIT、CREF.EXE和EXR2BIN.EXE等 应用程序。
在PC系统上运行汇编语言源程序的过程如下
• (1) 用编辑软件建立或修改扩展名为.ASM的源文件程序 (注意:扩展名必须为.ASM)。 • (2) 用宏汇编程序MASM将.ASM文件汇编(.ASM → .OBJ)汇编所得目标代码的存放地址并不是可执 行的绝对地址,以此,需要链接之后才能调试和运行。 • (3) 用链接程序LINK将.OBJ文件链接(.OBJ → .EXE ) • (4) 使用调试程序Debug调试.EXE文件 • (5) 运行程序输出结果。
• 若汇编没有用到.LIB和.DEF文件,也不建立.MAP,简 化命令 • LINK HELLO; • 如果一个程序由三个模块组成 SUM.OBJ DUMP.OBJ MAX.OBJ,需要将它们链接在一起生成可执行文件 SUM.EXE • LINK SUM+DUMP+MAX;
Байду номын сангаас 4.EXE文件的运行
• 输入文件名(可以不输入扩展名.EXE),回车
• 若只生成.OBJ ,简化命令-• MASM HELLO;
3.目标文件的链接
• 由汇编程序生成的目标文件必须经过链接程序(LINK) 以后才能成为可执行文件。 • 链接程序可以把若干个模块链接在一起,这些模块可以 是汇编程序生成的目标文件,也可以是其他高级语言的 编译程序生成的目标文件
.EXE可执行文件 .MAP地址分配文件 .LIB库文件 .DEF模块定义文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五熟悉汇编语言环境及建立汇编的过程
一实验目的
1.熟悉汇编语言环境。
2.掌握汇编语言的上机过程。
3.了解汇编语言程序的编程格式。
4.学习数据传送和算术运算指令的用法。
5.熟悉在PC机上建立汇编链接调试和运行汇编语言程序的过程。
二实验要求
1.通过一个小程序的编写达到以上的实验目的。
2.并完成两个多位十进制数相加的实验。
三实验原理
1.汇编语言程序的上机过程
用汇编语言编写的程序称为源程序,源程序也不能由机器直接执行,而必须翻译成机器代码组成的目标程序,这个翻译过程称为汇编。
在微型机中,当前绝大多数情况下,汇编过程是通过软件自动完成的,用来把汇编语言编写的程序自动翻译成目标的软件叫汇编程序,汇编过程如下:
2.汇编、连接过程
将两个多位十进制数相加。
要求加数和被加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。
3.ADC 带进位相加指令的功能和指令格式
AAA 、DAA、 AAS、 DAS指令的功能和指令格式
4.伪指令SEGMENT 、ENDS、 ASSUME、MACRO、ENDM的使用
子程序的定义(PROC NEAR/FAR ENDP),以及子程序调用和返回指令:CALL、RET的使用
5.循环指令LOOP的格式以及退出循环的条件
6.中断指令的使用
四实验步骤
(一)学习汇编过程
1.打开编辑环境
2.输入程序
CODE SEGMENT
ASSUME CS:CODE
START:MOV AL,01H
MOV BL,40H
ADD AL,BL
MOV DL,AL
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
3.保存源程序,以.ASM为扩展名。
C:\MASM\1.ASM
4.建立汇编过程
(1)用宏汇编程序汇编源程序C:\MASM>MASM 1.ASM
汇编程序有3个输出文件【.obj】文件,【.LST】文件,【.CRF】文件,.OBJ 文件是我们所需要的文件。
汇编程序还有另外一个重要功能:可以给出源程序中的错误信息。
(2)用连接程序将OBJ文件转换为可执行的EXE文件C:\MASM>LINK 1.OBJ
4.执行程序:C:\MASM>1.EXE
(二)完成两个多位十进制数的加法
1.程序框图(如下图所示)
2.实验原理实验参考程序
CRLF MACRO ;建立回车换行宏
MOV DL,0DH
MOV AH,02H
INT 21H
MOV DL,0AH
MOV AH,02H
INT 21H
ENDM
DATA SEGMENT ;数据段
DATA1 DB 33H,39H,31H,37H,34H ;第一个数据(作为加数)DATA2 DB 36H,35H,30H,38H,32H ;第二个数据(作为被加数)DATA ENDS
CODE SEGMENT ;代码段
ASSUME CS:CODE,DS:DATA,ES:DATA
START: MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET DATA2
MOV BX,05
CALL DISPL ;显示被加数
CRLF
MOV SI,OFFSET DATA1
MOV BX,05
CALL DISPL ;显示加数
CRLF
MOV DI,OFFSET DATA2
CALL ADDA ;加法运算
MOV SI,OFFSET DATA1
MOV BX,05
CALL DISPL ;显示结果
CRLF
MOV AX,4C00H
INT 21H
DISPL PROC NEAR ;显示子程序段
DS1: MOV AH,02H
MOV DL,[SI+BX-1] ;显示字符串中的一个字符
INT 21H
DEC BX ;修改偏移量
JNZ DS1
RET
DISPL ENDP
ADDA PROC NEAR
MOV DX,SI
MOV BP,DI
MOV BX,05
AD1: SUB BYTE PTR[SI+BX-1],30H ;将ASCII码表示的数字串SUB BYTE PTR[DI+BX-1],30H ;转化位十六进制的字符串
DEC BX
JNZ AD1
MOV SI,DX
MOV DI,BP
MOV CX,05 ;包括进位位共5位
CLC ;清进位位
AD2: MOV AL,[SI]
MOV BL,[DI]
ADC AL,BL ;带进位相加
AAA ;非组合BCD码的加法调整
MOV [SI],AL ;结果送加数区
INC SI
INC DI ;指向下一位
LOOP AD2 ;循环
MOV SI,DX
MOV DI,BP
MOV BX,05
AD3: ADD BYTE PTR[SI+BX-1],30H;十六进制的数字串转化ADD BYTE PTR[DI+BX-1],30H ;为ASCII码表示的数字串DEC BX
JNZ AD3
RET
ADDA ENDP
CODE ENDS
END START
3.汇编连接程序生成可执行文件
4.执行程序观察结果
六拓展练习
编写程序完成两个多位十进制数相减。
要求显示结果格式为:被减数
减数
相减结果。