汇编语言上机实验报告
计算机汇编上机实验报告

实验报告、实验编号:二、实验题目:顺序程序设计三、实验类型:必做四、实验目的: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七、实验总结:通过本次试验,我有很多收获。
汇编语言上机实验内容

实验一上机操作一、实验目的掌握汇编语言程序编辑、汇编、连接、运行以及利用DEBUG调试程序的方法。
二、实验设备PC机及相应的软件。
三、实验内容及步骤1、编辑一个指定的汇编语言源程序,并对其进行汇编、连接和运行。
2、利用DEBUG进行程序调试,掌握常用命令的使用方法,观察运行结果。
3、汇编语言上机操作,见图1-1 汇编语言上机操作流程。
上机操作过程:开始输入cmd 确认后显示:C:\Documents and setting\Administrator>-输入 cd c:\masm 后显示:c:\masm>-c:\masm>EDIT ABC.asmc:\masm>MASM ABC;若有语法错,回EDIT下改该程序c:\masm>LINK ABC;若有错,回EDIT下改程序c:\masm>ABC若运行结果错,回EDIT下改程序或在DEBUG下调试,找原因。
c:\masm>DEBUG ABC.exe手写源程序图 1-1 汇编语言上机操作流程汇编语言程序举例例1:将BL寄存器的内容按二进制形式显示出来。
设:(BL)=01010011B分析:采用2号功能调用,分别输出30 31 30 31 30 30 31 31显示:01010011参考程序:CODE SEGMENTASSUME CS: CODESTART:MOV CX ,8 ;显示字符个数为8MOV BL ,53HNEXT:SHL BL ,1 ;将显示位移至CF中JC ONE ;CF=1?MOV DL ,30H ;CF=0,将0的ASCII放在DL中JMP EXITONE:MOV DL ,31H ;CF=1,将1的ASCII放在DL中EXIT:MOV AH ,2INT 21H ;调用DOS功能显示DEC CX ;循环次数减1JNZ NEXT ;判断是否结束MOV AH,4CH ;返回DOSINT 21HCODE ENDSEND START上机操作:c:\masm>EDIT ShowBL.asm ;编辑源程序c:\masm>MASM ShowBL ;汇编成ShowBL.objMicrosoft (R) Macro Assembler Version 5.10Copyright (C) Microsoft Corp 1981,1988. All rights reserved.48912 + 447243 Bytes symbol space free0 Warning Errors0 Severe Errorsc:\masm>LINK ShowBL ;连接成ShowBL.exeMicrosoft (R) Overlay Linker Version 3.61Copyright (C) Microsoft Corp 1983-1987. All rights reserved.LINK : warning L4021: no stack segmentc:\masm>ShowBL ;装载并执行ShowBL.exe 01010011 ;屏幕显示c:\masm>-在DEBUG下查看ShowBL.exe的装入情况:c:\masm>DEBUG ShowBL.exe- R ;查看当前寄存器内容AX=0000 BX=0000 CX=001B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B51 ES=0B51 SS=0B61 CS=0B61 IP=0000 NV UP EI PL NZ NA PO NC B353 MOV BL,53- U CS:0 ;查看程序0B61:0000 B353 MOV BL,530B61:0002 B90800 MOV CX,00080B61:0005 D0E3 SHL BL,10B61:0007 7205 JB 000E…….0B61:0017 B44C MOV AH,4C0B61:0019 CD21 INT 21…….-G ;执行程序01010011Program terminated normally-例2:将某段中的字符串“Hello!”传送到另一段中。
《汇编语言》实验报告

《汇编语言》实验报告实验名称:汇编语言实验报告实验目的:通过实验了解汇编语言的基本概念、语法结构和程序设计方法,掌握汇编语言的编写方法。
实验时间:2024年1月1日实验地点:实验室一、实验背景汇编语言是计算机硬件和软件之间的桥梁,通过汇编语言可以直接操作计算机的底层硬件。
汇编语言是一种低级语言,使用汇编语言可以实现对计算机内存、寄存器等硬件资源的直接操作,从而实现程序的功能。
本实验通过编写汇编语言程序,加深对汇编语言的理解。
二、实验过程1. 确定实验环境:使用DOSBox模拟DOS环境进行汇编程序编写和调试。
2. 编写第一个汇编程序:编写一个简单的汇编程序,将字符串“Hello, World!”输出到屏幕上。
3.程序分析:a.定义要输出的字符串,将字符串存储在数据段中。
b.设置段寄存器,将数据段地址加载到DS寄存器中。
c.设置显示模式和光标位置。
d.将字符串逐个字符输出到屏幕上。
e.关闭显示模式。
4. 编译运行:使用汇编语言的编译器将汇编程序转换成机器码,并在DOSBox中运行程序。
5.调试程序:根据程序运行结果和分析,调试程序中存在的错误,并进行改正。
三、实验结果与分析经过多次编写和调试,我们成功实现了将字符串“Hello, World!”输出到屏幕上的功能。
通过程序分析和调试过程,加深了对汇编语言的理解和掌握。
四、实验总结通过本次实验,我们深入了解了汇编语言的基本概念、语法结构和程序设计方法。
通过实际编写汇编语言程序,对汇编语言的编写方法有了更加深入的认识。
同时,通过调试程序的过程,我们也提高了自身的问题解决能力和分析能力。
在今后的学习和工作中,我们将继续学习和深入研究汇编语言,提高自己的编程能力和创新思维能力。
总体而言,本次实验给我们带来了很大的收获,我们以后将更加努力地学习汇编语言,提高自己的编程水平,为以后的学习和工作做好充分的准备。
南昌大学汇编语言实验报告

.实验报告实验课程:IBM-PC 汇编语言程序设计学生姓名:刘兴隆学号:7101310013专业班级:电气信息类III101 班2021年12月15日...汇编语言实验指导前言汇编语言是计算机专业的一门重要的专业根基课,主要介绍汇编语言程序设计的根来源理和方法。
汇编语言是一门理论性和实践性较强的课程,协助讲堂教课的实验有助于帮助学生理解汇编语言的根来源理,锻炼学生的着手能力,提升学生的综合应用知识的能力。
本实验指导依照汇编语言程序设计的教课大纲领求编写。
依照顺序渐进、由浅入深的规律,经过实例复习牢固所学知识,借助实例展开汇编语言程序设计。
经过这类既拥有结构性又拥有创建性的学习活动,更便于初学者的理解和掌握,经过上机实验,并在实验后达成实验报告,又能进一步加深和拓宽所学知识。
为了帮助老师和学生展开实验,我们特编了这本实验指导,希望能对我校的?汇编语言?教课工作有所帮助。
本实验指导全部实例均在PC机上浮试经过。
..目录〔1〕利用DEBUG调试汇编语言程序段〔2〕初级程序的编写与调试实验〔一〕〔3〕初级程序的编写与调试实验〔二〕〔4〕汇编语言程序上机过程〔5〕分支程序实验〔6〕循环程序实验〔7〕子程序实验..实验1 利用DEBUG调试汇编语言程序段一.实验目的1.熟习DEBUG相关命令的使用方法;2.利用DEBUG掌握相关指令的功能;3.利用DEBUG运转简单的程序段。
二.实验内容1.进入和退出DEBUG程序;1)开始—运转,输入cmd,点确立进入命令窗口2)在命令窗口中输入dubug进入debug程序..3)进入debug窗口后,输入q命令退出debug2.学会DEBUG中的1〕D命令〔显示内存数据D段地点:偏移地点〕例1:-D100 ;显示DS段,0100开始的128个字节内容说明:指定要显示其内容的内存地区的开端和结束地点,或开端地点和长度。
① D SEGREG[开端地点][L 长度];显示SEGREG段中(缺省内默以为DS),以[开端地点](缺省内为目前的偏移地点),开始的[L长度](缺省内默以为128)个字节的内容.DSEGREG[段地点:偏移地点];显示SEGREG段中(缺省内默以为DS),[段地点:偏移地点]开始的[L长度](缺省内默以为128)个字节内容-D;默认段寄存器为DS,目前偏移地点(刚进入debug程序偏移地点为0100H) ......如要改正,可输入新数据;空格键显示下一个单元内容并可改正,减号键显示上一个单元内容并可改正;如不改正,可直接按空格键或减号键;回车键结束命令。
汇编语言的上机运行

微机原理与接口技术实验报告姓名:周娟学号 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命令:。
汇编第一次上机报告

汇编语言第一次实验报告计算机44班2140505089王文瑞验结果 (1)RETF 时,可见AX=16H=22D ,符合数组最大值22(2)输入为112345234,统计结果为:02,02,02,02,011—1:;--------------------------------------------------------------------------DSEG SEGMENTn EQU 10 ;假设n=10DATA DW ?M DW 1,2,3,4,5,6,7,8,9,22ADDR DW ? ;M+2n单元DSEG ENDS ;M+2(n+1)单元;--------------------------------------------------------------------------CSEG SEGMENTMAIN PROC FARASSUME CS: CSEG, DS: DSEGSTART: PUSH DS ;设置返回DOSSUB AX, AXPUSH AXMOV AX, DSEGMOV DS, AX ;给DS赋值BEGIN: MOV CX, n ;循环计数器LEA DI, MMOV AX, [DI] ;取第一个数MOV ADDR, DI ;记下绝对值最大的数的地址CMP AX, 0 ;此数是正数吗?JNS ZHENG ;是正数,即为绝对值,转去判断下一个数NEG AX ;不是正数,变为其绝对值ZHENG: MOV BX, [DI]CMP BX, 0 ;此数是正数吗JNS COMP ;是正数,即为绝对值,转去比较绝对值大小NEG BX ;不是正数,变为其绝对值COMP: CMP AX, BX ;判断绝对值大小JAE ADDRESSMOV AX, BX ;(AX)<(BX),使(AX)中为绝对值最大的数MOV ADDR, DI ;记下绝对值最大的数的地址ADDRESS: ADD DI, 2LOOP ZHENGMOV DATA, AX ;记下此数RETMAIN ENDPCSEG ENDS ;以上定义代码段;--------------------------------------------------------------------------END START1-2:data segmentcount db 5 dup(0)data endscode segmentmain proc farassume ds:data,cs:code start:push dssub ax,axpush axmov ax,datamov ds,axbegin:mov ah,1int 21hcmp al,0dhjz oversub al,30hmov ah,00hdec axmov si,axadd count[si],1jmp beginprint:mov dl,count[0]add dl,30hmov ah,02int 21hmov dl,count[1]add dl,30hmov ah,02int 21hmov dl,count[2]add dl,30hmov ah,02int 21hmov dl,count[3]add dl,30hmov ah,02int 21hmov dl,count[4]add dl,30hmov ah,02int 21hover:retmain endpcode endsend start。
汇编语言实验报告一.doc

汇编语言实验报告(实验一)一.实验目的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.测试功能和性能:使用不同的数和操作码进行测试,验证程序的功能和正确性。
四、实验结果经过编写、编译和调试,我们成功实现了一个简单的计算器程序。
程序能够根据输入的操作码,对两个数进行加法和减法操作,并将结果显示出来。
经过多次测试,程序的功能、正确性和性能都符合预期要求。
五、实验感想通过本次实验,我们对计算机组成原理和汇编语言有了更深入的理解。
在编写程序的过程中,我们发现汇编语言相比高级语言更加底层,需要考虑更多的细节和机器指令的使用。
同时,我们也意识到了调试的重要性,调试工具能够帮助我们分析和修正代码的错误,提高程序的质量。
六、实验总结通过本次实验,我们对计算机汇编语言的应用有了更深入的了解。
我们掌握了汇编语言程序的基本结构和语法规则,学会了使用汇编语言指令进行计算和控制。
同时,我们也提升了调试和测试的能力,加深了对计算机组成原理和汇编语言的理解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言上机实验报告
实验时间:XXXX年XX月XX日
实验课程:XXXXX
实验室地点:XXXXX
一、实验目的:
1.熟悉汇编语言的基本语法和指令格式;
2.掌握汇编语言程序的编写和调试方法;
3.理解汇编语言与计算机硬件之间的关系。
二、实验设备与环境:
1.实验设备:个人计算机或计算机终端;
2. 实验环境:汇编语言开发工具,如Masm、TASM等。
三、实验内容:
本实验通过编写汇编语言程序,实现以下功能:
1.输入两个整数,求出其和并输出;
2.输入一个正整数,判断其是否为素数并输出结果;
3.输入一段字符串,判断其中是否存在一些字符,并输出字符的位置。
四、实验原理与方法:
1.汇编语言基本语法:包括数据定义、指令格式、寄存器、标志位等;
2.输入输出操作:通过中断调用实现从键盘输入、向屏幕输出;
3.常用指令:包括数据传送指令、算术运算指令、逻辑运算指令等;
4.判断与分支:通过条件判断指令实现程序流程控制。
五、实验步骤:
1. 打开汇编语言开发工具,新建文件,并保存为.asm文件;
2.编写程序,包括数据定义、指令编写等;
3.进行程序调试,检查程序的正确性和运行结果;
4.运行程序,查看程序的输出结果;
5.对程序进行优化,确保程序的效率和稳定性;
6.编写实验报告,记录实验过程和结论。
六、实验结果与数据分析:
1.第一个功能的结果:输入两个整数进行相加并输出;
2.第二个功能的结果:输入一个正整数,判断是否为素数并输出结果;
3.第三个功能的结果:输入一段字符串,判断是否存在一些字符,并
输出字符的位置。
七、实验总结:
通过本次实验,我对汇编语言的基本语法和指令格式有了更深入的了解,掌握了汇编语言程序的编写和调试方法,加深对汇编语言与计算机硬
件之间关系的理解。
在实验过程中,我遇到了一些困难和问题,但通过不
断学习和尝试,最终解决了这些问题。
通过实验,我对汇编语言的应用有
了更深入的认识,并体会到了编程的乐趣和挑战。
实验完成后,我深刻感
受到了汇编语言的底层性能和灵活性,同时也意识到了其编码复杂和调试
困难的一面。
通过这次实验,我对汇编语言有了更深入的认识,为以后的
学习和应用奠定了坚实的基础。
八、改进意见:
在今后的学习中,我将进一步熟悉和掌握汇编语言的各种指令和技巧,提高程序的效率和可读性。
另外,我也会加强与计算机硬件相关知识的学习,进一步理解和掌握汇编语言与计算机硬件之间的关系,为后续的学习
和实践打下更加扎实的基础。
同时,我会不断提高自己的编程能力和调试
能力,通过多实践、多思考和多交流,不断提升自己的技术水平和创新能力。