汇编语言上机实验报告
- 格式:doc
- 大小:53.50 KB
- 文档页数:4
实验一、汇编语言程序的上机过程及调试<i>汇编程序调试过程</i>实验一、汇编语言程序的上机过程及调试<i>汇编程序调试过程</i>一、实验目的熟练掌握汇编语言上机汇编、连接和装入运行。
学会使用调试程序DEBUG或TD来进行程序调试。
<i>汇编程序调试过程</i>二、实验内容(一)汇编程序建立过程a.建立汇编源程序─通过b.编译为目标文件d.连接为可执行文件c.不通过,重新修改(语句错误)f.不正确,用调试工具调试,重新修改(逻辑错误)e运行正确g.完成<i>汇编程序调试过程</i>汇编语言的源程序需要编译和连接后才能在计算机上执行。
汇编语言源程序扩展名规定为.ASM。
用MASM编译源程序后,将产生源程序的目标程序文件,其扩展名为.OBJ。
再经过连接程序(LINK)把目标程序文件与库文件或其他目标文件连接在一起形成可执行文件(扩展名为.EXE)。
这时就可以运行该程序了。
DOS下可直接键入可执行程序的文件名从而运行该程序。
<i>汇编程序调试过程</i>(二)过程详细说明步骤a: 建立汇编源程序如果现在的根目录不是E盘,写入E :然后回车,再打入cd *** (***是你新建的文件夹名),例如电气031班的同学,现在你的DOS界面根目录为:E\dq031 。
打入edit然后回车,EDIT的操作画面便会出现在屏幕上,alt键可以控制工具栏操作,←↑→↓箭头控制阴影选择的上下移动。
我们现在按alt键,选中flie, 按↓选中open,回车,找到刚刚拷贝的asm 文件,回车。
选择存盘并给你输入的文件起一个文件名,形式:*** . asm ;然后回到dos环境。
<i>汇编程序调试过程</i>步骤b: 编译目标文件在DOS提示符下键入MASM *** .asm回车,(其中***为你刚才在*****RE a 中建立的文件名)这时汇编程序的输出文件可以有三个(分别:.obj .lst .crf),便会出现三次提问,在这可以一路回车即可。
实验报告、实验编号:二、实验题目:顺序程序设计三、实验类型:必做四、实验目的:1.了解汇编语言的程序结构。
2.理解汇编语言中由源程序文件到可执行文件的过程。
五、实验内容和步骤:1、实验内容:编程实现:当 X=5 时,求 Y=3X4+5X3+6X2+4X+2.2、实验步骤:(1)首先对al.asm进行汇编连接生成 a1.exe文件。
(2)进行DEBUG程序并装入要调试的程序 a1.exe女口: DEBUG a1.exe ;进入 DEBUG 并装配 a1.exe(3)反汇编,确定每条指令的地址。
-U ;从当前地址进行反汇编—U200 ;从CS: 200处开始反汇编反汇编可以确定断点地址,如:把断点地址设置在0120H处,则可以打入以下命令(4)G命令来设置断点。
—G120此时程序在0120H处停下,并显示出所有寄存器以及各标志位的当前值,在最后一行还给出下一条将要执行的指令的地址、机器语言和汇编语言,程序员可以从显示的内容来以解程序运行是否正确。
(5)观察数据段的内容,即观察内存的内容—D DS: 0000 ;从数据段的0单元开始显示128个字节。
—D DS: 0000 0001;从数据段的0单元、1单元显示2个字节。
(6)退出DEBUG命令—Q六、实验结果:145A:001E 83C002 ADD AX,+02-u145A:0021 A30100 MOV [0001],AX145A:0024 B44C MOV AH,4C145A:0026 CD21 INT 21145A:0028 7509 JNZ 0033145A:002A E83F26 CALL 266C145A:002D 8946E8 MOV [BP-18],AX145A:0030 E80D97 CALL 9740145A:0033 F6065C3601 TEST BYTE PTR [365C],01145A:0038 7405 JZ 003F145A:003D EB05 JMP 0044145A:003F E82A26 CALL 266C-g 145A:0021AX=0A70 BX=0005 CX=0038 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=1459 ES=1449 SS=1459 CS=145A IP=0021 NV UP EI PL NZ AC PO NC145A:0021 A30100 MOV [0001],AX DS:0001=0000-tAX=0A70 BX=0005 CX=0038 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=1459 ES=1449 SS=1459 CS=145A IP=0024 NV UP EI PL NZ AC PO NC145A:0024 B44C MOV AH,4C-d ds:0001 00021459:0000 70 0A七、实验总结:通过本次试验,我有很多收获。
微机原理与接口技术实验报告姓名:周娟学号 10200207 班级:电子信息专业 2010 级 2 班指导教师:张开洪微机原理与接口技术实验报告实验项目名称:汇编语言程序的上机过程实验日期:2012-5-2 实验成绩:实验评定标准:1)实验结果及分析是否合理A()B()C()2)实验程序流程图是否正确A()B()C()3)实验报告是否按照规定格式A()B()C()一、实验目的1)熟悉汇编语言源程序上机的一般过程及方法。
2)掌握宏汇编程序MASM5.1和连接程序LINK3.6的使用方法。
3)了解DEBUG调试汇编语言源程序的过程及方法。
二、实验器材计算机一台三、实验内容查找求2n:在起始地址为array的15个字单元中连续2的整数次幂,作为2的n次方表,通过查找计算2的次幂,并把结果存储到pwr字单元中。
程序如下:.model small.dataArray dw 1,2,4,8,16,32,64,128,256,512Dw 1024,2048,4096,8192,16384X db 11Pwr dw ?.codeMain proc farPush dsSub ax,axPush axMov ax,@dataMov ds,axMov bh,0Mov bl,xShl bx,1Mov ax,array[bx]Mov pwr,axRetMain endpEnd main四、实验程序流程图五、利用文本编辑器完成以上程序的编辑利用宏汇编程序MASM5.1对源程序进行汇编生成目标文件test2.obj利用连接程序LINK3.6对目标程序进行连接生成可执行文件test2.exe运行程序,由于程序中没有显示功能,所以看不到计算结果在DEBUG下运行程序,并查看计算结果六、运行结果1、进入命令提示符,把文件夹所在盘设置为当前盘,输入文件夹名:2、在光标提示处输入MASM xxxx.asm,回车,进行汇编,连接,生成.exe文件:3.由于结果无法直接观察到,则需返回到DEBUG中进行查看,用q命令查看运行进度:用d命令查看结果,用q命令返回DOS命令:。
汇编语言实验报告(实验一)一.实验目的1.掌握汇编语言程序的上机步骤;(1)用编辑程序(如EDIT、记事本等)编辑汇编语言源程序(建立.ASM文件)。
(2)用MASM程序产生OBJ文件。
(3)用LIINK程序产生EXE文件。
(4)程序的运行(用DEBUG或在DOS下直接运行)。
2.掌握DEBUG的使用方法。
二.程序说明1.在数据段DATA中有两个数据X和Y,假设X=1122H,Y=3344H,编程求两个字的和,结果存放到Z单元中。
2.从SOURCE_BUFFER单元开始存放了20个字母A,编程将这个20个字母A 的字符串传送到DEST_BUFFER开始的单元中。
3.从SOURCE_BUFFER单元开始存放了20个字母A,编程将这个20个字母A 的字符串向下移10个单元。
三.设计思想1、将1122H和3344H分别存放在双字x,y中,定义双字Z,x,y带进位相加放入Z中。
2、定义数据段source_buffer,把数据段地址放入ds寄存器,定义附加段extra_buffer,把附加段地址放入es寄存器,移动整个字符串。
3、定义数据段附加段,先移高位,这样要移20次。
四.程序代码1、DATA SEGMENTX DW 1122HY DW 3344HZ DW ?DATA ENDS ;数据段定义结束STACK SEGMENT ;堆栈段定义开始DW 40 DUP(0)STACK ENDS ;堆栈段定义结束CODE SEGMENT ;代码段定义结束ASSUME CS:CODE,SS:STACK,DS:DATASTART: MOV AX,DATAMOV DS,AX ;设置数据段的开始地址MOV DX,XADC DX,YMOV Z,DXMOV AH,4CH ;返回DOCINT 21HCODE ENDSEND START2、DATA SEGMENT ;定义数据段SOURCE_BUFFER DB 20 DUP(‘a’) ;定义个小写a DATA ENDSEXTRA SEGMENT ;定义附加段DEST_BUFFER DB 20 DUP(?)EXTRA ENDSCODE SEGMENT ;定义代码段MAIN PROC FARASSUME CS:CODE,DS:DATA,ES:EXTRASTART:PUSH DSSUB AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV AX,EXTRAMOV ES,AXLEA SI,SOURCE_BUFFERLEA DI,DEST_BUFFERCLDMOV CX,20REP MOVSB ;移动整个串RET ;返回到DOSMAIN ENDPCODE ENDSEND START3、DATA SEGMENT ;定义数据段SOURCE_BUFFER DB 20 DUP(‘a’) ;定义个小写a DATA ENDSEXTRA SEGMENT ;定义附加段DEST_BUFFER DB 20 DUP(?)EXTRA ENDSCODE SEGMENT ;定义代码段MAIN PROC FARASSUME CS:CODE,DS:DATA,ES:EXTRASTART:PUSH DSSUB AX,AXPUSH AXMOV AX,DATAMOV DS, AXMOV AX, EXTRAMOV ES, AXLEA SI, SOURCE_BUFFERLEA DI,DEST_BUFFERCLDMOV CX,20REP MOVSB ;移动整个串RET ;返回到DOSMAIN ENDPCODE ENDSEND START五.结果分析并回答:1.设计的程序包含了几个段第1段包含数据段、堆栈段、代码段第2、3个包含数据、附加段、代码段2.你的代码经过编译和连接之后,总共占用多少个字节第1、2个占30个字节,第3个占32个字节3.调用DEBUG进行反汇编,查看程序的第一条指令的地址码是多少?最后一条指令的地址码是多少?程序1第一条指令:1454:000 BB4B14 MOV AX,144B最后一条指令:1451:001E 807F0400 CMP BYTE PTR [BX+04],00程序2第一条指令:1450:0000 1E PUSH DS最后一条指令:1450:001E 8B0? MOV AX,[BX]程序3第一条指令:144D:0000 1E PUSH DS最后一条指令:144D:0020 8B5702 MOV DX,[DX+02]。
计算机汇编语言实验报告一、实验目的本实验旨在通过编写计算机汇编语言程序,加强对计算机组成原理和汇编语言的理解,同时熟悉实际编写和调试过程。
二、实验内容1.用汇编语言编写一个简单的计算器程序,实现加法和减法操作。
2.编译并运行程序,测试其功能的正确性。
3.运用调试工具进行程序的调试,检查代码的运行流程。
三、实验步骤1.确定程序功能和设计思路:本次实验的目标是编写一个计算器程序,能够对两个数进行加法和减法操作。
我们可以通过定义一些操作码来表示不同的操作,再通过输入不同的操作码来执行相应的操作。
2.编写汇编语言程序:首先,需要定义一些变量和常量来存储输入的数和操作码。
然后,使用汇编语言的运算指令和控制指令来实现加法和减法操作,并将结果存储到指定的变量中。
最后,使用输出指令来显示结果。
3.编译并运行程序:将汇编语言程序编译为机器码,并通过计算机的指令集执行程序。
4.调试程序:利用调试工具,逐步执行程序,检查代码的运行流程和结果的正确性。
如有错误,进行适当的修改和调试。
5.测试功能和性能:使用不同的数和操作码进行测试,验证程序的功能和正确性。
四、实验结果经过编写、编译和调试,我们成功实现了一个简单的计算器程序。
程序能够根据输入的操作码,对两个数进行加法和减法操作,并将结果显示出来。
经过多次测试,程序的功能、正确性和性能都符合预期要求。
五、实验感想通过本次实验,我们对计算机组成原理和汇编语言有了更深入的理解。
在编写程序的过程中,我们发现汇编语言相比高级语言更加底层,需要考虑更多的细节和机器指令的使用。
同时,我们也意识到了调试的重要性,调试工具能够帮助我们分析和修正代码的错误,提高程序的质量。
六、实验总结通过本次实验,我们对计算机汇编语言的应用有了更深入的了解。
我们掌握了汇编语言程序的基本结构和语法规则,学会了使用汇编语言指令进行计算和控制。
同时,我们也提升了调试和测试的能力,加深了对计算机组成原理和汇编语言的理解。
计算机专业类课程实验报告课程名称:汇编程序语言设计学院:计算机科学与工程专业:计算机科学与技术学生姓名:林*学号:*************指导教师:胡*日期:2014年12 月15 日电子科技大学计算机学院实验中心电子科技大学实验报告实验一1、实验名称:汇编源程序的上机调试操作基础训练2、实验学时:43、实验内容和目的:实验内容:1.DEBUG命令的使用2.程序的调试与运行1.编写程序计算以下表达式: Z=(5X+2Y-7)/2设X、Y的值放在字节变量VARX、VARY 中,结果存放在字节单元VARZ中。
实验目的:1.掌握DEBUG的基本命令及其功能2.学习数据传送和算术运算指令的用法3.熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。
4、实验原理:1.编辑源程序,建立一个以后缀为.ASM的文件.2.汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。
无错时继续第3步。
3.连接目标程序,产生可执行程序。
4.用DEBUG程序调试可执行程序,记录数据段的内容。
5、实验器材(设备、元器件)pc、window7平台、masm5开发环境6、实验步骤:1、在数据段中分别用两个单元varx和vary存放变量x 和y;另一个单元varz用来存放运算结果Z;2、由于是字节变量,所以用al 存放变量x的值,然后将al 左移两位得到4*x,再把al加上x,进而得到5*x;3、再用bl存放变量y 的值,用add命令得到2*y,之后把al 与bl相加,再用sub命令减去7,得到(5*x+2*y-7)的值,并保存到al中;4、最后将al右移一位,得到最后的z=(5*x+2*y-7)/2,并把al 的值送入varz单元;5、运行程序,使用-d 命令查看内存单元的信息;7、实验数据及结果分析:实验代码如下:电子科技大学计算机学院实验中心实验结果如下图:1、编译连接后执行程序:2、查看内存单元变量的值varx=05h,vary=07h,(5x+2y-7)/2=(25d+14d-7d)/2d=16d=10h可以看到上图中内存单元的值与手工计算的结果相符,说明程序是正确的。
实验一汇编语言程序上机过程以及调试(1)一、预习内容1.工具软件MASM、LINK的使用2.常用DEBUG命令的使用: G,D,R,T,U,Q3.完整程序设计方法的格式。
二、目的要求1.掌握常用工具软件MASM、LINK的使用2.掌握常用DEBUG命令: G,D,R,T,U,Q 能灵活使用这些命令调试程序3.掌握完整程序设计方法的格式,能正确书写数据段,代码段等。
三、实验内容比较两个字符串string1和string2所含的字符是否相同,如果相同则显示’Match'否则显示’No match’.请读程序,并将程序补充完整。
DSEG SEGMENTstring1 db 'Move the cursor backward.'string2 db 'Move the cursor backward.'mess1 db 'Match.',13,10,'$'mess2 db 'No match.',13,10,'$'DSEG ENDSCSEG SEGMENTassume cs:CSEG, ds:DSEG, es:DSEG,MAIN PROC FARstart: mov ax, dsegmov ds, axmov es, axlea si ,string1①cld②repz cmpsbjz matchlea dx,mess2jmp short dispmatch:lea dx,mess1disp: mov ah,09hint 21hmov ax, 4c00hint 21hMAIN ENDPCSEG ENDSend start实验步骤:1)用文字编辑工具(记事本或EDIT)将源程序输入完整后保存在d:\masm下,注意保存时将文件扩展名改为.asm(如test1.asm)。
2)屏幕左下角”开始”–“运行”输入cmd ,进入dos命令操作,先用d: 和cd mas m 命令改变路经,接着用”masm + 文件名” (如masm test1,这里文件名可以不带扩展名)对源文件进行汇编,产生.obj文件和.LST文件。
汇编语言上机实验汇总汇编语言是计算机的低级语言,主要用于编写底层程序和驱动程序。
在学习汇编语言的过程中,学生通常需要进行一定数量的上机实验。
下面是一个汇编语言上机实验的汇总。
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)绘制简单的图形或运行一个音频文件。
这些上机实验可以帮助学生逐步掌握汇编语言的基本知识和技能,并为以后的高级汇编语言编程打下基础。
微机原理技术与接口实验报告学院:专业:班级:姓名:学号:汇编语言程序的上机过程实验目的通过简单地操作了解汇编语言程序的基本内容,体会汇编语言的运行,为以后的实验打下一定的基础。
实验原理及操作步骤一、上机环境❖要运行调试汇编语言程序,至少需要以下程序文件:▪编辑程序:或其他文本编辑工具软件,用于编辑源程序。
▪汇编程序:MASM.EXE,用于汇编源程序,得到目标程序。
▪连接程序:LINK.EXE,用于连接目标程序,得到可执行程序。
▪调试程序:DEBUG.EXE,用于调试可执行程序。
二、上机过程❖汇编语言程序上机操作包括:编辑、汇编、连接和调试几个阶段。
1.编辑源程序❖用文本编辑软件创建、编辑汇编源程序。
常用编辑工具有:、记事本、Word等。
❖无论采用何种编辑工具,生成的文件必须是纯文本文件,所有字符为半角,且文件扩展名为.asm(文件名不分大小写,由1~8个字符组成)。
2.汇编❖用汇编工具对上述源程序文件(.asm)进行汇编,产生目标文件(.obj)等文件。
❖汇编程序的主要功能是:检查源程序的语法,给出错误信息;产生目标程序文件;展开宏指令。
❖汇编过程如下:❖在DOS状态下,输入命令:MASM MYFILE.ASM(回车),即启动了汇编程序。
❖此命令执行后,会出现下面的3行信息,依次按回车键(即选择默认值)即可建立3个输出文件,其扩展名分别为:.OBJ(目标文件),.LST(列表文件)和.CRF(交叉引用文件)。
Object Filename [MYFILE.OBJ]:Source Listing [Nul.LST]:Cross Reference [Nul.CRF]:依次按回车键,进行选择后,汇编程序就对汇编源程序进行汇编。
如果汇编过程中发现有语法错误,则屏幕上会显示出错语言的位置和出错的类型。
此时,需要进行修改,然后再进行汇编。
❖如此进行,直至汇编无错误,得到目标文件为止。
3.连接❖汇编产生的目标文件(.obj)并不是可执行的程序,还要用连接程序把它转换为可执行的EXE文件。
1
实验一 汇编语言上机基本操作
一、实验目的
1.学习及掌握汇编语言源程序的书写格式和要求。
2.学会使用EDIT、TASM、TLINK等软件工具。
3.熟练掌握在计算机上编辑、汇编、连接及运行汇编语言程序的方法。
二、实验内容
1.汇编语言源程序的建立
程序要求是:在屏幕上显示“Hello, world !”。设定源程序的文件名为ABC.ASM。
DATA SEGMENT
BUF DB 'Hello, world !$'
DATA ENDS
STACK SEGMENT STACK '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
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
在DOS状态下键入以下命令:
C:\MASM> EDIT ABC.ASM
程序输入完毕后一定要将源程序文件存盘,以便进行汇编及连接,也可以再次调出源程
序进行修改。
2. 将源程序文件汇编成目标程序文件
输入命令:Tasm abc;
出现:0 Warning Errors
0 Severe Errors
如果Severe Errors不为0,就要对语法错误进行分析,找出原因和问题,调用屏幕编辑程
序EDIT对源程序加以修改并再重新汇编,一直到汇编时无语法错误为止。
3.用连接程序生成可执行程序文件
输入命令:Tlink abc;
连接程序开始连接,没有错误,连接以后,便可以产生可执行程序文件(.EXE文件)。
4.程序的执行
输入命令 abc
2
显示结果:Hello world!
结果是预期的结果,程序无问题。
3
实验二 DEBUG调试程序的应用
一、实验目的
1. 学习及掌握DEBUG调试程序的常用命令。
2. 学习及掌握在DEBUG环境下建立和汇编程序。
二、实验内容
1.源文件,命名为filab.asm
DATA SEGMENT
A DB 0
B DB 0
C DB 30,40,50
DATA ENDS
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov al,c+1
add al,c
mov a,al
mov al,c+1
add al,c+2
mov b,al
add c,10
add c+1,20
add c+2,30
EXIT: mov ah,4ch
int 21h
code ends
end start
用edit filab.asm 编写源文件。
2. 汇编 masm filab.asm; 无错误进入3,有错误用edit改。
3. 连接 link filab; 无错误进入4,有错误用edit改重新再来。
4. 调试 debug filab.exe
(1) 反汇编
U
4
16F9:0000 B8F816 MOV AX,16F8
16F9:0003 8ED8 MOV DS,AX
16F9:0005 A00300 MOV AL,[0003]
16F9:0008 02060200 ADD AL,[0002]
16F9:000C A20000 MOV [0000],AL
16F9:000F A00300 MOV AL,[0003]
16F9:0012 02060400 ADD AL,[0004]
16F9:0016 A20100 MOV [0001],AL
16F9:0019 800602000A ADD BYTE PTR [0002],0A
16F9:001E 8006030014 ADD BYTE PTR [0003],14
再输入 U
16F9:0023 800604001E ADD BYTE PTR [0004],1E
16F9:0028 B44C MOV AH,4C
16F9:002A CD21 INT 21
找到 mov ah,4c 前对应在偏移地址 0028
(2)执行
G =0 28
AX=165A BX=0000 CX=003C DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=16F8 ES=16E8 SS=16F8 CS=16F9 IP=0028 NV UP EI PL NZ AC PE NC
16F9:0028 B44C MOV AH,4C
(3)查看结果
d 0 L5
16F8:0000 46 5A 28 3C 50 FZ(
结果是正确的
(4)退出调试环境
Q