汇编指令实验报告

合集下载

汇编语言指令及伪指令练习的实验报告总结(范文)

汇编语言指令及伪指令练习的实验报告总结(范文)

汇编语言指令及伪指令‎练习的实验报告总结‎汇编语言指令及伪指令‎练习的实验报告总结‎‎篇一:汇‎编语言实验报告福建‎农林大学金山学院课‎程名称:姓‎名:系:‎专业:‎年级:学‎号:指导教师‎:职称:‎ (程序设计类‎课程) 实验报告汇‎编语言 201X~2‎01X学年第二学期‎实验项目列表福建农‎林大学金山学院实验报‎告系:专‎业:年级:‎姓名:‎学号:‎实验课程:‎汇编语言实验室号:‎_ _1#6‎05 实验设备号:‎ I3 实验时‎间:201‎X.4.25‎指导教师签字:‎成绩:‎实验一汇编程序的‎汇编及运行1‎.实验目的和要求‎ (1)熟悉汇编程‎序的汇编、连接、执行‎过程;(2)‎生成LST文件,查看‎L ST文件;‎(3)生成BJ文件,‎修改语法错误;‎(4)生成EXE文‎件;(5)执‎行程序。

2.‎实验环境 IBM—P‎C机及其兼容机;实‎验的软件环境是:‎操作系统:‎ DS2.‎0以上;调试程序:‎ DEBUG.C‎M;文本编程程序:‎ EDIT.EX‎E、PS.EXE;宏‎汇编程序:M‎A SM.EXE(或A‎S M .EXE);连‎接装配程序:‎L INK .EXE;‎交叉引用程序:‎CREF.EXE(‎可有可无)。

‎3.实验内容及实验数‎据记录(1)‎将数据段输入,取名‎ 1.txt,保存‎在MASM文件夹下。

‎生成LST文件,(不‎必连接、运行)用ED‎I T查看1.L‎S T文件。

试回答:‎ DA1,DA2‎的偏移量分别是多少?‎C UNT的值为多少?‎DATA SEGM‎E NT RG 20H‎NUM1=8 NU‎M2=NUM1+10‎H DA1 DB ‘‎I BM PC’ CU‎N T EQU $-D‎A1 DATA EN‎D S DA2 DB ‎0AH, 0DH E‎N D(2)输‎入有错误的文件,修改‎错误语句。

(MASM‎没有出现错误即可。

不‎必连接、运行。

)‎D ATA SEGME‎N T VAR1 DB‎0, 25, DH‎,300 VAR2‎DB 12H, A‎4H, 6BH VA‎R3 DB ’ABC‎D EF’ VAR4 ‎D 1H, 5678‎H VAR5 D 1‎0H DUP(?) ‎D ATA ENDS ‎C DE SEGMEN‎T ASSUME C‎S: CDE, DE‎: DATA MV ‎D S, AX LEA‎SI, VAR5 ‎M V BX, FFS‎E T VAR2 MV‎[SI], 0AB‎H MV AX, V‎A R1+2 MV [‎B X], [SI] ‎M V VAR5+4,‎VAR4 MV A‎H, 4CH INT‎21H ENDS ‎E ND START ‎B EING MV A‎X, DATA CD‎E(3)输入‎正确的程序,汇编、连‎接、运行 STACK‎S SEGMENT ‎S TACK D 12‎8DUP(?) E‎N DS SEGMEN‎T ENDS SEG‎M ENT ASSUM‎E CS: CDES‎,DS: DATA‎S STACKS D‎A TAS DATAS‎CDES STRI‎N G DB ‘ELC‎M E!’, 13, ‎10, ‘$’ ST‎A RT: M‎V AX, DATA‎S MV DS, A‎X LEA DX, ‎S TRING MV ‎A H, 9 INT ‎21H MV AH,‎4CH INT 2‎1H CDES EN‎D S END STA‎R T4.算法‎描述及实验步骤 1)‎首先,用记事本输入‎各段程序,并储存成源‎程序,保存在MASM‎目录下。

实验二用机器指令和汇编指令编程实验总结

实验二用机器指令和汇编指令编程实验总结

实验二用机器指令和汇编指令编程实验总结下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!实验二用机器指令和汇编指令编程实验总结1. 引言在本实验中,我们学习了使用机器指令和汇编指令编程的基本概念和技能。

【实验】汇编实验报告

【实验】汇编实验报告

【关键字】实验实验一汇编程序的汇编及运行1.实验目的和要求(1)熟悉汇编程序的汇编、连接、执行过程(2)生成LST文件,查看LST文件(3)生成OBJ文件,修改语法错误(4)生成EXE文件(5)执行2.实验环境IBM—PC机及其兼容机实验的软件环境是:操作系统:DOS 2.0以上;调试程序:;文本编程程序:EDIT.EXE、WPS.EXE;宏汇编程序:MASM.EXE(或ASM .EXE);连接装配程序:LINK .EXE;交叉引用程序:CREF.EXE(可有可无)。

3.实验内容及实验数据记录(1)将数据段输入,取名1.txt,保存在MASM文件夹下。

生成LST文件,(不必连接、运行)用EDIT查看1.LST文件。

试回答:DA1,DA2的偏移量分别是多少?COUNT的值为多少?DA TA SEGMENTORG 20HNUM1=8NUM2=NUM1+10HDA1 DB ‘IBM PC’DA2 DB 0AH, 0DHCOUNT EQU $-DA1DATA ENDSEND(2)输入有错误的文件,修改错误语句。

(MASM没有出现错误即可。

不必连接、运行。

)DA TA SEGMENTV AR1 DB 0, 25, ODH, 300V AR2 DB 12H, A4H, 6BHV AR3 DB ’ABCDEF’V AR4 DW 1234H, 5678HV AR5 DW 10H DUP(?)DATA ENDSCODE SEGMENTASSUME CS: CODE, DE: DA TABEING MOV AX, DA TAMOV DS, AXLEA SI, V AR5MOV BX, OFFSET V AR2MOV [SI], 0ABHMOV AX, V AR1+2MOV [BX], [SI]MOV V AR5+4, V AR4MOV AH, 4CHINT 21HCODE ENDSEND START(3)输入正确的程序,汇编、连接、运行STACKS SEGMENT STACKDW 128 DUP(?)STACKS ENDSDATAS SEGMENTSTRING DB ‘WELCOME!’, 13, 10, ‘$’DATAS ENDSCODES SEGMENTASSUME CS: CODES, DS: DATAS START:MOV AX, DA TASMOV DS, AXLEA DX, STRINGMOV AH, 9INT 21HMOV AH, 4CHINT 21HCODES ENDSEND START 1.算法描述及实验步骤1.(1)生成1.st文件(2)用EDIT查看文件2.修改后正确算法:DATA SEGMENTV AR1 DB 0, 25, 0DH, 30V AR2 DB 12H, 0A4H, 6BHV AR3 DB 'ABCDEF'V AR4 DW 1234H, 5678HV AR5 DW 10H DUP(?)DATA ENDSCODE SEGMENTASSUME CS: CODE, DS: DATA BEING: MOV AX, DATAMOV DS, AXLEA SI, V AR5MOV BX, OFFSET V AR2MOV byte ptr[SI], 0ABHMOV AL, V AR1+2MOV AX, [SI]MOV [BX], AXMOV AX, V AR4MOV V AR5+4, AXMOV AH, 4CHINT 21HCODE ENDSEND BEING5.调试过程1.程序没有错误,结果:2.程序运行出现错误:问题及改正:(1). 2.asm(2): error A2009: Symbol not defined: ODH 表示没有定义ODH;出错语句VAR1 DB 0, 25, ODH, 300,这里的 ODH应该为 16进制数的0DH。

汇编实验报告1

汇编实验报告1

实验一汇编语言程序设计上机及debug的使用一、实验目的及要求1.学会使用EDIT、MASM、LINK、DEBUG等软件工具。

2.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。

二、实验内容一,.编辑一个源程序经汇编,链接成可执行程序,然后debug,练习各种指令的用法;编辑源程序:开始汇编如图:执行程序:DEBUG:采用执行过程命令P进行调试,g输出结果;二,,DEBUG的使用;1.进入DEBUG,使用A命令将源程序写入内存并汇编,然后使用G命令执行程序,接着用D命令观察运算结果后,再用U命令反汇编,用Q命令退出DEBUG,返回DOS提示符。

用A 指令写入程序,用E命令将0102H, 0304H分别写入 0120H和0122H单元如图:用G执行程序,用D输出结果:用U命令反汇编程序和用Q退出程序如图:2.进入DEBUG,先显示200H处开始的一片单元,接着用E命令将一段机器代码指令写入200H~208H,然后用G命令执行,再用U命令反汇编。

具体操作如下:(1)首先进入DEBUG,接着显示200H处开始的一片单元(如果不指明显示范围,则默认显示128个存储单元),如图12所示。

_d 200(2)用E命令将机器代码指令写入200H开始的内存单元,如图13所示。

接着观察由200H开始的单元,确实写入的机器指令代码,如图14所示。

(3)用G命令从200H处开始执行程序,如图15所示。

执行结果是在屏幕上显示字符“3”。

(4)用U命令反汇编,显示200H处存放的程序,如图:3.进入DEBUG,用A命令写入程序,接着用R命令显示状态,并用T命令单条执行,注意在执行命令的同时观察相应寄存器的状态。

具体操作如下:(1)进入DEBUG,用A命令写入汇编源程序,Ctrl+C退出A命令,如图:(2)用R命令显示寄存器状态,可以只显示AH和AL寄存器状态,也可以显示所有寄存器状态,如图18和图19所示。

由图中可以看出,在没有执行指令之前,AH和AL寄存器没有被赋值,其值为0。

汇编实验报告_wwb

汇编实验报告_wwb

汇编第一次集中实验报告要求:实验一:汇编语言运行环境及方法、简单程序设计1、绘制程序流程图2、结合你的调试过程,整理其中用到的debug命令的使用方法和效果截图,并解释每一步骤的结论Debug中常用到的指令有:用—g命令来运行程序;用—u命令来显示程序;用—d查看数据段情况;用—e或—f命令来修改需要改正的部分;用—t指令来逐步执行程序;用—r指令来查看寄存器和修改器的值;用—q命令用来退出debug程序。

在这些命令的后面加上地址,可以将命令执行到相应的地方。

实验代码:DSEG SEGMENTSTRING1 DB 'move the cursor backward'STRING2 DB 'move The cursor backward'MESS1 DB 'Match!',0DH,0AH,'$'MESS2 DB 'No match!',13,10,'$'DSEG ENDSCSEG SEGMENTMAIN PROC FARASSUME CS:CSEG,DS:DSEG,ES:DSEGSTART:PUSH DSSUB AX,AXPUSH AXMOV AX,DSEGMOV DS,AXMOV ES,AXLEA SI,STRING1LEA DI,STRING2CLDMOV CX,24REPZ CMPSBJZ MATCHLEA DX,MESS2JMP SHORT DISPMATCH:LEA DX,MESS1DISP:MOV AH,9INT 21HRETMAIN ENDPCSEG ENDSEND STAR-g命令运行程序:-用u命令显示程序:将端点设置在程序的主要部分以前。

-g0b:根据其中指示的ds寄存器内容查看数据段的情况如下:-d0可用可用e命令修改数据区的字符串,操作如下:由图可知,已把0020行中backward改为了forward了。

汇编实验报告(详细版)

汇编实验报告(详细版)

计算机组成与汇编语言(实验报告)内容: 实验一、六、七、八院系专业:计算机学院计算机科学与技术姓名:xxxxxxxxx学号:*******xxxxx完成时间:2012年12月1日计算机组成与汇编语言实验报告printf("输入的二进制数不正确!!");break;}}}if(a[15]=='1')s++;for(i=1;i<16;i++){if(a[15-i]=='1')s+=(1<<i);}printf("二进制: ");puts(a);printf("对应的十进制为: ");printf("%d\n",s);}程序1运行结果:实验情况与体会:运行过程中出现过不能判断是否输错的情况以及权位判断有误等情况,经过思考和修改后修改正确,说明理解好二进制与十进制之间的转换过程很重要。

编程过程中主要碰到的问题是,不够十六位的时候要在前面补零。

转换方法主要是除二求余的方法。

注:篇幅不够,可以另外附页。

计算机组成与汇编语言实验报告姓名xxxx 学号2011004xxxx 计分专业软件工程班级xxxxx 实验日期2012年 12 月 1日实验名称实验六分支结构程序设计实验目的●熟悉有符号定点数的表示。

●掌握原码、补码、反码之间的相互转换程序设计。

实验内容说明:该程序中X=23,Y=45,他们之差的绝对值为22,用16进制表示为0016H,即图中显示的结果2.调试程序2:DATA SEGMENTADD AL, 07HLP4: ADD AL, 30H ;将低四位转化为相应的ASCII码并以字符形式输MOV DL, ALMOV AH, 2INT 21HMOV AH, 4CHINT 21HCODE ENDSEND START上机运行该程序并检查运行结果是否正确。

上机实验过程:说明:求出三个数里面的最大数73;3. 编写程序1:编程实现从键盘输入一位数字,判断其奇偶性,并在屏幕上输出一个标志,若为奇数,则输出1,否则输出0。

汇编语言编程实验报告

汇编语言编程实验报告

汇编语言编程实验报告学号:姓名:成绩:目录一、实验一: ................................................... 错误!未定义书签。

二、实验二: (4)三、实验三: (8)四、实验四: (10)五、实验五: ................................................... 错误!未定义书签。

六、实验六: (19)七、汇编实验总结 (23)实验一一.实验题目【汇编语言补充作业T20】编写完整程序,利用DOS系统功能调用,从键盘输入一个字符串,并将该字符串从屏幕上换行后并输出。

二.程序流程及思路实现字符串输入,需要分成三个步骤:1、在数据段中定义一个缓存区为存放字符串做准备;2、DOS系统功能调用0AH号子功能,(DS:DX)= 输入缓冲区首址;3、在输入的字符串尾加上‘$’字符,以作为输出结束条件。

实现字符串输出,则需要注意的问题是:1、缓冲区第三个字节才开始存放输入的字符,前两个字节分别存放缓冲区长度和字符串实际字符数;2、输出回车换行可利用字符串:CR DB 0AH,0DH,’$’。

三.源程序清单DATA SEGMENTN EQU 50MAXLEN DB N ;缓冲区字符的最大长度ACTLEN DB ? ;实际字符个数STRING DB N DUP(?) ;字符空间CR DB 0AH,0DH,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXLEA DX,MAXLENMOV AH,0AHINT 21H ;字符串输入MOV AH,09HLEA DX,CRINT 21H ;回车换行MOV BL,MAXLEN+1 ;取实际的字符长度MOV BH,0LEA SI,MAXLEN+2 ;取字符开始的首地址MOV BYTE PTR [SI+BX],'$' ;输出结尾要加上$MOV DX,SI ;把开始存放字符的首地址赋给DX MOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START四.结果拷屏实验二一. 实验题目【汇编语言补充作业T23】假设CX:BX中存放了4为非压缩的BCD码表示的十进制数4386,请编写完整程序将这个数转化成2进制数并存放到DI寄存器中。

汇编实验报告

汇编实验报告

实验一汇编程序一、实验目的1.掌握DEBUG常用命令的使用方法2.熟悉汇编源程序编辑、汇编、连接和调试过程3.练习汇编源程序编写二、实验内容及步骤(一)学习DEBUG常用命令的使用方法1.进入DEBUG;2.用DEBUG的R命令查看、改变CPU寄存器的内容;a)用R命令查看各寄存器的内容并纪录;b)用R命令修改寄存器BX、SI、BP的值。

3.用DEBUG的D命令查看内存中的内容(以下内容分别使用不同的D命令);a)用D命令查看从1000:0开始的128个内存单元的内容并纪录;b)用D命令查看从2000:8开始的128个内存单元的内容并纪录;c)用D命令查看从3000:0开始的10个内存单元的内容并纪录;4.用DEBUG的E命令改写内存中的内容;用E命令将内存1000:0—1000:9单元中的内容改写为0、1、2、3、4、5、6、7、8、9,并进行验证。

5.用DEBUG的U命令将内存中的机器指令翻译成汇编指令;用E命令从1000:0单元开始写入如下机器码,然后用U命令将内存中的机器指令翻译成汇编指令,并分析实验结果各部分的含义。

机器码对应的汇编指令b80100 mov ax,0001b90200 mov cx,000201c8 add ax,cx6.用DEBUG的T命令执行机器指令;用T命令单步执行上题程序段的每条指令并纪录结果。

7.用DEBUG的A命令以汇编指令的格式在内存中写入机器指令用A命令将下面的程序段写入内存,用U命令翻译成机器指令,逐条执行,观察每条指令执行后,CPU中相关寄存器中内容的变化。

MOV AX,4E20HADD AX,1416HMOV BX,2000HADD AX,BXMOV BX,AXADD AX,BXMOV AX,001AHMOV BX,0026HADD AL,BLADD AH,BLADD BH,ALMOV AH,0ADD AL,BLADD AL,9CH(二)掌握汇编程序编辑、汇编、连接及调试的方法设首地址为BUFFER的内存缓冲区中有20H个字节数据,试将数据区中的正数(包括0)存放至起始地址为PLUS的缓冲区,负数存入起始地址为MINUS的缓冲区。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汇编指令实验报告
汇编指令实验报告
汇编指令是计算机中非常重要的一部分,它们直接操作着计算机的硬件,实现各种功能。

在本次实验中,我们学习了汇编指令的基本知识,并通过实践掌握了它们的使用方法。

本文将对我们的实验过程进行详细的总结和分析。

实验一:汇编指令的基本概念和使用方法
在实验的第一部分,我们首先了解了汇编指令的基本概念和使用方法。

汇编指令是一种低级语言,它直接操作计算机的寄存器和内存单元。

我们通过学习不同的指令集和指令格式,了解了如何使用汇编指令来实现各种功能。

在实验中,我们使用了一款常见的汇编语言工具,例如MASM(Microsoft Macro Assembler)和NASM(Netwide Assembler)。

通过这些工具,我们可以将汇编代码转换成可执行的机器码,并在计算机上运行。

实验二:汇编指令的应用实例
在实验的第二部分,我们通过一些实际的应用实例,进一步加深了对汇编指令的理解和掌握。

我们学习了如何使用汇编指令来实现字符串处理、数学运算、条件判断等常见的功能。

例如,我们学习了如何使用汇编指令来实现字符串的反转功能。

通过对字符串的每个字符进行逆序排列,我们可以实现字符串的反转。

这个实例不仅帮助我们理解了汇编指令的基本操作,还锻炼了我们的逻辑思维能力。

实验三:汇编指令的性能优化
在实验的第三部分,我们探讨了如何通过优化汇编指令来提升程序的性能。

通过对程序的瓶颈进行分析,我们可以找到一些可以改进的地方,并通过修改和
优化汇编指令来提升程序的执行效率。

例如,我们学习了如何通过使用SIMD(Single Instruction Multiple Data)指令集来实现并行计算。

通过同时对多个数据进行操作,我们可以大大提高程序的运行速度。

这个实例不仅帮助我们理解了汇编指令的高级应用,还培养了我们的优化思维能力。

实验四:汇编指令的错误处理和调试技巧
在实验的第四部分,我们学习了如何处理汇编指令中的错误,并掌握了一些常用的调试技巧。

在编写和调试汇编程序时,我们经常会遇到各种错误,例如语法错误、逻辑错误等。

通过学习如何定位和解决这些错误,我们可以提高程序的可靠性和稳定性。

例如,我们学习了如何使用调试器来跟踪程序的执行过程,并通过设置断点和查看寄存器的值来定位错误。

这个实例不仅帮助我们掌握了调试技巧,还培养了我们的问题解决能力。

总结与展望
通过本次实验,我们深入学习了汇编指令的基本概念、使用方法和应用技巧。

我们不仅掌握了汇编指令的基本操作,还学会了如何优化程序的性能和处理错误。

这些知识和技能对我们今后的学习和工作都具有重要的意义。

同时,我们也意识到汇编指令的学习是一个长期的过程,需要不断地实践和探索。

我们希望通过今后的学习和实践,进一步提高自己的汇编指令编程能力,并将其应用到更广泛的领域中。

总之,本次实验为我们提供了一个很好的机会来学习和掌握汇编指令的基本知识和应用技巧。

通过实践和实验,我们不仅加深了对汇编指令的理解,还提高
了自己的编程能力。

相信在今后的学习和工作中,我们能够更好地应用和发展汇编指令。

相关文档
最新文档