计算机汇编上机实验报告

合集下载

上机实验报告(精选11篇)

上机实验报告(精选11篇)

上机实验报告篇1用户名se××××学号姓名学院①实验名称:②实验目的:③算法描述(可用文字描述,也可用流程图):④源代码:(.c的文件)⑤用户屏幕(即程序运行时出现在机器上的画面):2.对c文件的要求:程序应具有以下特点:a可读性:有注释。

b交互性:有输入提示。

c结构化程序设计风格:分层缩进、隔行书写。

3.上交时间:12月26日下午1点-6点,工程设计中心三楼教学组。

请注意:过时不候哟!四、实验报告内容0.顺序表的插入。

1.顺序表的删除。

2.带头结点的单链表的\'插入。

3.带头结点的单链表的删除。

注意:1.每个人只需在实验报告中完成上述4个项目中的一个,具体安排为:将自己的序号对4求余,得到的数即为应完成的项目的序号。

例如:序号为85的同学,85%4=1,即在实验报告中应完成顺序表的删除。

2.实验报告中的源代码应是通过编译链接即可运行的。

3.提交到个人空间中的内容应是上机实验中的全部内容。

上机实验报告篇2一、《软件技术基础》上机实验内容1.顺序表的建立、插入、删除。

2.带头结点的单链表的建立(用尾插法)、插入、删除。

二、提交到个人10m硬盘空间的内容及截止时间1.分别建立二个文件夹,取名为顺序表和单链表。

2.在这二个文件夹中,分别存放上述二个实验的相关文件。

每个文件夹中应有三个文件(.c文件、.obj文件和.exe文件)。

3. 截止时间:12月28日(18周周日)晚上关机时为止,届时服务器将关闭。

三、实验报告要求及上交时间(用a4纸打印)1.格式:《计算机软件技术基础》上机实验报告用户名se××××学号姓名学院①实验名称:②实验目的:③算法描述(可用文字描述,也可用流程图):④源代码:(.c的文件)⑤用户屏幕(即程序运行时出现在机器上的画面):2.对c文件的要求:程序应具有以下特点:a 可读性:有注释。

b 交互性:有输入提示。

汇编语言上机实验内容

汇编语言上机实验内容

实验一上机操作一、实验目的掌握汇编语言程序编辑、汇编、连接、运行以及利用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!”传送到另一段中。

汇编上机实验报告心得体会

汇编上机实验报告心得体会

汇编语言程序设计第一次上机作业1.从键盘上接受一个字符,找出他的前导字符和后继字符,按顺序显示这三个字符。

寄存器分配: AL :存输入值x DL :输出显示 流程图:如右图所示 DA TA SEGMENTA DB 0DA TA ENDSSTACK SEGMENT STACKDB 200 DUP(0) STACK ENDSCODE SEGMENT ASSUME DS:DA TA,SS:STACK,CS:CODE S: MOV AX,DA TAMOV DS,AX MOV AH,1INT 21H INC AL MOV DL,AL MOV AH,2 INT 21HDEC ALMOV DL,AL MOV AH,2 INT 21H DEC AL MOV DL,AL MOV AH,2 INT 21H CODE ENDS END S2.从键盘上输入一个数字字符,如不是,显示‘not odd ’,否则显示‘odd ’。

寄存器分配: AL :存输入值x DL :输出显示流程图:如右图所示 程序代码如下:DA TA SEGMENT A DB 0BUF DB,'NOT ODD$' EA DB,'ODD$' DA TA ENDSSTACK SEGMENT STACK DB 200 DUP(0) STACK ENDSCODE SEGMENTASSUME DS:DA TA,SS:STACK,CS:CODE S: MOV AX,DA TA MOV DS,AX MOV AH,1 INT 21H CMP AL,'0' JNGE B CMP AL,'9' JGE B LEA DX,EA MOV AH,9 INT 21H JMP CB: LEA DX,BUF MOV AH,9 INT 21HC: MOV AH,4CH INT 21H CODE ENDS END S第二次上机作业1.将以H为首地址的字节存储区中的技能被3整除又能被13整除的无符号整数的个数(假定<=9)显示出来;同时对应的显示它们分别对应的地址偏移量。

汇编上机实验报告

汇编上机实验报告

汇编上机实验报告实验目的:通过进行汇编语言上机实验,掌握汇编语言的基本语法和编程技巧,培养汇编程序设计能力。

实验内容:实验一:汇编程序的简单输入输出1.编写一个汇编程序,要求从键盘输入两个整数,然后将其相加,并将结果输出到屏幕上。

2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。

实验二:汇编程序的条件跳转1.编写一个汇编程序,要求从键盘输入一个整数,判断其是否大于10,若是,则将其打印到屏幕上;否则,将其乘以5并打印到屏幕上。

2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。

实验三:汇编程序的循环1.编写一个汇编程序,要求计算1到10的累加和,并将结果打印到屏幕上。

2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。

实验四:汇编程序的数组操作1.编写一个汇编程序,要求定义一个长度为10的数组,并将数组中的值初始化为0,然后利用循环将数组中的每一个元素加1,并将每个元素的值打印到屏幕上。

2. 利用调试器(如DOSBox或emu8086)执行并调试程序,观察程序运行过程和实际输出结果。

实验结果:实验一:汇编程序的简单输入输出编写的汇编程序通过键盘输入两个整数,实现了相加并将结果输出到屏幕上的功能。

程序运行正常,输出结果与预期一致。

实验二:汇编程序的条件跳转编写的汇编程序通过键盘输入一个整数,根据条件判断,实现了将输入数大于10时打印在屏幕上,否则将其乘以5并打印在屏幕上的功能。

程序运行正常,输出结果与预期一致。

实验三:汇编程序的循环编写的汇编程序通过循环计算1到10的累加和,并将结果打印在屏幕上。

程序运行正常,输出结果与预期一致。

实验四:汇编程序的数组操作编写的汇编程序通过定义一个长度为10的数组,并将数组中的值初始化为0,利用循环将数组中的每一个元素加1,并将每个元素的值打印到屏幕上。

计算机汇编语言实验报告

计算机汇编语言实验报告

计算机汇编语言实验报告一、实验目的本实验旨在通过编写计算机汇编语言程序,加强对计算机组成原理和汇编语言的理解,同时熟悉实际编写和调试过程。

二、实验内容1.用汇编语言编写一个简单的计算器程序,实现加法和减法操作。

2.编译并运行程序,测试其功能的正确性。

3.运用调试工具进行程序的调试,检查代码的运行流程。

三、实验步骤1.确定程序功能和设计思路:本次实验的目标是编写一个计算器程序,能够对两个数进行加法和减法操作。

我们可以通过定义一些操作码来表示不同的操作,再通过输入不同的操作码来执行相应的操作。

2.编写汇编语言程序:首先,需要定义一些变量和常量来存储输入的数和操作码。

然后,使用汇编语言的运算指令和控制指令来实现加法和减法操作,并将结果存储到指定的变量中。

最后,使用输出指令来显示结果。

3.编译并运行程序:将汇编语言程序编译为机器码,并通过计算机的指令集执行程序。

4.调试程序:利用调试工具,逐步执行程序,检查代码的运行流程和结果的正确性。

如有错误,进行适当的修改和调试。

5.测试功能和性能:使用不同的数和操作码进行测试,验证程序的功能和正确性。

四、实验结果经过编写、编译和调试,我们成功实现了一个简单的计算器程序。

程序能够根据输入的操作码,对两个数进行加法和减法操作,并将结果显示出来。

经过多次测试,程序的功能、正确性和性能都符合预期要求。

五、实验感想通过本次实验,我们对计算机组成原理和汇编语言有了更深入的理解。

在编写程序的过程中,我们发现汇编语言相比高级语言更加底层,需要考虑更多的细节和机器指令的使用。

同时,我们也意识到了调试的重要性,调试工具能够帮助我们分析和修正代码的错误,提高程序的质量。

六、实验总结通过本次实验,我们对计算机汇编语言的应用有了更深入的了解。

我们掌握了汇编语言程序的基本结构和语法规则,学会了使用汇编语言指令进行计算和控制。

同时,我们也提升了调试和测试的能力,加深了对计算机组成原理和汇编语言的理解。

汇编语言程序设计上机实验报告(实验三)-循环程序设计

汇编语言程序设计上机实验报告(实验三)-循环程序设计

汇编语言程序设计上机实验报告(实验三)一、实验题目、内容及要求:一、实验题目、内容及要求:题目:循环程序设计内容:编写一程序,要求从键盘接收一个4位十六进制数,在终端上显示与它等值的二进制数。

二进制数。

要求:实验前要作好充分准备,包括程序清单、调试步骤、调试方法,对程序结果的分析等。

本实验要求在EDIT 下编写完整的汇编语言程并生成可执行文件运行。

下编写完整的汇编语言程并生成可执行文件运行。

二、实验时间及地点二、实验时间及地点日期:日期: 2011/11/21 节次:节次: 7.8 地点:地点:电子实验楼二楼电子机房电子实验楼二楼电子机房 三、实验目的三、实验目的通过本实验掌握DOS 系统功能调用功能,掌握循环程序设计的方法;学会编写循环结构程序。

构程序。

简述在实验过程中遇到的问题和解决的方法:简述在实验过程中遇到的问题和解决的方法:1、问题:遇到死循环解决方法:程序显示disp 中发现执行int int 21h 21h 会修改al 的值,避免这种情况的方法就是使用堆栈段。

2、问题:调试中出现no data segment 解决方法:start 开始时没有将数据段的IP 地址赋给dx 。

data segment 3、问题:可执行,结果为乱码解决方法:数据划分比较的粗,没有系统的将数据系统划分。

系统划分:<30h other 30h-39h num 39h-41h other 41h-46h big zi mu 46h-61h other 61h-67h small zi mu >67h other 运行结果:(要求用“抓图软件”抓程序的运行结果)(要求用“抓图软件”抓程序的运行结果)结果分析及实验体会:结果分析及实验体会:1、结果0001001000110100是十六进制数1234转化而来。

十六进制数通过ASCII码对照转换为二进制数。

A~F----- -57hA~ f----- -57h0~9 ------ -37h2、学习应用了循环指令并了解了其特点:A、循环指令不影响标志位B、其功能为使寄存器CX的值减1,如果结果不等于0,则循环至标号,否则顺序执行。

汇编语言上机实验汇总

汇编语言上机实验汇总

汇编语言上机实验汇总汇编语言是计算机的低级语言,主要用于编写底层程序和驱动程序。

在学习汇编语言的过程中,学生通常需要进行一定数量的上机实验。

下面是一个汇编语言上机实验的汇总。

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)绘制简单的图形或运行一个音频文件。

这些上机实验可以帮助学生逐步掌握汇编语言的基本知识和技能,并为以后的高级汇编语言编程打下基础。

汇编语言程序上机实验

汇编语言程序上机实验

设置断点
在需要调试的代码行设置断点,以便在程 序运行时暂停执行。
分析程序的输出结果
运行可执行文件
在实验环境中运行可执行文件,观察 程序的输出结果。
分析结果
根据程序的输出结果,分析程序的逻 辑和功能是否正确实现。如果输出结 果与预期不符,检查源代码和调试过 程,找出问题所在并进行修正。
04
实验内容
根据实验需求选择合适的硬件设备是实验成功的关键,需要 考虑设备的性能、兼容性和可扩展性等因素。
03
实验步骤
编写汇编语言源代码
确定实验题目和要求
根据实验指导书的要求,明确实验目的和任务,确定需要编写的 汇编语言程序。
编写代码
使用汇编语言编写源代码,实现程序的功能。注意语法和指令的 正确性,确保程序逻辑正确。
编写一个简单的汇编语言程序
总结词
了解汇编语言的基本语法和结构
详细描述
编写一个简单的汇编语言程序,如输出“Hello, World!”的程序,了解汇编语言的指令、寄存器、数据和程序结 构等基本概念。
实现一个简单的计算器程序
总结词
掌握汇编语言的算术运算指令
详细描述
编写一个可以进行加、减、乘、除运 算的简单计算器程序,通过汇编语言 的算术指令实现。
了解汇编语言程序的 基本结构,如程序头、 数据段、代码段等。
熟悉子程序和中断服 务程序的编写和使用。
掌握汇编语言程序的 流程控制结构,如顺 序、分支、循环等。
掌握汇编语言的程序调试方法
熟悉汇编语言程序的调试工具, 如调试器、反汇编器等。
掌握调试工具的基本使用方法, 如设置断点、单步执行、查看 寄存器值等。
调试程序并运行可执行文件
打开调试器
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

我已经熟练掌握如何在Dos 环境下运行汇编程序,并熟练掌握“ DEBUG ”、“-u”、“-g”、“-t”命令的使用,并对汇编语言的程序结构有了深刻的了解。

在编写程序过程中,我已经掌握了汇编一些基本指令,如:ADD 、MUL 、TEST 、JZ/JNZ等的使用方法。

实验报告2二、实验题目:分支程序设计三、实验类型:必做四、实验目的:1.掌握分支程序设计结构。

五、实验内容和步骤:1、实验内容:二路分支结构程序设计。

编程实现:从键盘输入一位数字,判断其奇偶性,并在屏幕输出一个标志,若为奇数,则输出1,否则输出0。

保存为a2.asm分析:输入采用DOS中断的1号功能调用,键入的一位数字的ASCII码在AL中,此时只需用TEST AL,01H,由结结果是否为0即可确定输入数字的奇偶性。

输出采用DOS中断的2 号功能调用。

2、实验步骤:(1)首先对a2.asm进行汇编连接生成a2.exe文件。

(2)进行DEBUG程序并装入要调试的程序a2.exe。

女口:DEBUG a2.exe ;进入DEBUG 并装配a2.exe(3)进入a2.exe对程序进行验证。

(4)验证无误,退出DOS环境。

六、实验结果:G:\0040WU~1r2.exe11G:\0040WU~1r2.exe2G:\0040WU~1r2.exe31G:\0040WU~1r2.exe11七、实验总结:通过本次试验,我已经掌握如何在Dos环境下运行汇编程序,并熟练掌握“DEBUG ”、“ -u”、“ -g ”、“-t ”命令的使用,以及如何实现掌握分支程序设计结构。

在编写程序过程中,我已经掌握了汇编一些基本指令,如:ADD、MUL、TEST、JZ/JNZ等的使用方法。

实验报告、实验编号:二、实验题目:顺序程序设计三、实验类型:必做四、实验目的:1.掌握分支程序设计结构。

五、实验内容和步骤:1、实验内容:多路分支结构程序设计。

编程实现:任意给定的x值(—128W x< 127),求以下符号函数y的值。

保存为a3.asm^1 当x > 0y= £ o 当x=o.-1 当X V 0分析:假定x=—18,且存放在x单元中,函数值y存放在y单元。

2、实验步骤:(1)首先对a3.asm进行汇编连接生成a3.exe文件。

(2)进行DEBUG程序并装入要调试的程序a3.exe。

女口:DEBUG a3.exe ;进入DEBUG 并装配a3.exe(3)反汇编,确定每条指令的地址。

—U ;从当前地址进行反汇编—U200 ;从CS: 200处开始反汇编反汇编可以确定断点地址。

(4)G命令来设置断点。

—G 145A: 0018此时程序在145A:0018H处停下,并显示出所有寄存器以及各标志位的当前值,在最后一行还给出下一条将要执行的指令的地址、机器语言和汇编语言,程序员可以从显示的内容来以解程序运行是否正确。

(5)T命令来找到AX的值。

(6)D命令可以直接找到Y的值,并显示。

(7)退出DOS环境。

六、实验结果:F:\0040WU~1>debug a3.exe-u1457:0000 B85614 MOV AX,14561457:0003 8ED8 MOV DS,AX1457:0005 A00000 MOV AL,[0000]1457:0008 3C00 CMP AL,001457:000A 7D04 JGE 00101457:000C B3FF MOV BL,FF1457:000E EB08 JMP 00181457:0010 7404 JZ 00161457:0012 B301 MOV BL,011457:0014 EB02 JMP 00181457:0016 B300 MOV BL,001457:0018 881E0100 MOV [0001],BL1457:001C B44C MOV AH,4C1457:001E CD21INT21-g 1457:0018AX=14E7 BX=00FF CX=0030 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=1456 ES=1446 SS=1456CS=1457 IP=0018NV UP EI NG NZ NAPE NC1457:0018 881E0100 -tMOV[0001],BLDS:0001=00AX=14E7 BX=00FF CX=0030 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=1456 ES=1446 SS=1456CS=1457 IP=001CNV UP EI NG NZ NAPE NC1457:001C B44C MOVAH,4C-d ds:0001 0001 1456:0000 FF七、实验总结:熟练掌握“DEBUG ”、“-u ”、“-g ”、“-t ”命令的使用,以及如何实现掌握分支程序设计结构。

在编写程序过程中,我已经掌握了汇编一些基本指令,如: 等的使用方法。

通过本次试验,我有很多收获。

我已经熟练掌握如何在Dos 环境下运行汇编程序,并ADD 、MUL 、TEST 、JZ/JNZ实验报告、实验编号:二、实验题目:循环程序设计三、实验类型:必做四、实验目的:1.掌握循环分支程序设计结构。

五、实验内容和步骤:1、实验内容:(1 )复习循环程序的组成。

(2)单重循环。

编程实现:从X单元开始的30个连续单元中存入有30个无符号数,从中找出最大者送入Y单元中。

保存为a4.asm分析:可把第一个数先送入AL寄存器中,将AL中的数与后面的29个数逐个进行比较,如果AL中的数较小,则两数交换位置;如果AL中的数大于等于相比较的数,则两数不交换位置,在比较过程中,AL中始终保持较大的数,比较29次,则最大者必在AL中,最后把AL中的数(最大者)送入Y单元。

2、实验步骤:(1)首先对a4.asm进行汇编连接生成a4.exe文件。

(2)进行DEBUG程序并装入要调试的程序a4.exe。

女口:DEBUG a4.exe ;进入DEBUG 并装配a4.exe(3)反汇编,确定每条指令的地址。

-U ;从当前地址进行反汇编—U200 ;从CS: 200处开始反汇编反汇编可以确定断点地址。

(4)G命令来设置断点。

—G 1458:0018此时程序在1458:0018处停下,并显示出所有寄存器以及各标志位的当前值,在最后一行还给出下一条将要执行的指令的地址、机器语言和汇编语言,程序员可以从显示的内容来以解程序运行是否正确。

(5)T命令来找到AX的值。

(6)D命令可以直接找到Y的值,并显示。

(7)退出DOS环境。

六、实验结果:F:\0040WU~1>debug a4.exe-u1458:0000 B85614 MOV AX,14561458:0003 8ED8 MOV DS,AX 1458:0005 A00000 MOV AL,[0000] 1458:0008 BB0000 MOV BX,0000 1458:000B B91D00 MOV CX,001D 1458:000E 43 INC BX1458:000F 3A07 CMPAL,[BX]1458:0011 7302 JNB00151458:0013 8A07 MOV AL,[BX]1458:0015 49 DEC CX1458:0016 75F6 JNZ 000E1458:0018 A21E00 MOV [001E],AL1458:001B B44C MOV AH,4C1458:001D CD21 INT 211458:001F E8E80D CALL 0E0A-g 1458:0018AX=1463 BX=001D CX=0000 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=1456 ES=1446 SS=1456 CS=1458 IP=0018 NV UP EI PL ZR NA PE NC1458:0018 A21E00-tMOV [001E],AL DS:001E=00AX=1463 BX=001D CX=0000 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=1456 ES=1446 SS=1456 CS=1458 IP=001B NV UP EI PL ZR NA PE NC1458:001B B44CMOV AH,4C-d ds:001e 001f1456:0010 63 00 c. 七、实验总结:通过本次试验,我有很多收获。

相关文档
最新文档