计算机汇编上机实验报告

合集下载

上机实验报告(精选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!”传送到另一段中。

汇编语言第四次上机实验报告

汇编语言第四次上机实验报告

汇编语言第四次上机实验报告时间: 2013/5/10 7:00-9:30 地点:南一楼803实验人员:计科10班王涛学号: U201114445一、题目1、用三种方式获取中断类型码10H对应的中断处理程序的入口地址。

(1)直接运行调试工具(TD.EXE),观察中断矢量表中的信息,指出中断类型码10H 对应的中断处理程序的入口地址。

(使用TD观看即可)。

使用TD观看时,在调试工具下调入以前编好的运行程序,跟踪执行INT 21H(即进入中断处理程序,方法是:执行到INT 21H 时,按ALT+F7),观察CS及IP是否改变成了前面记录的值。

(2)编写程序,用DOS系统功能调用方式获取,观察相应的出口参数与(1)看到的结果是否相同(使用TD观看即可)。

(3)编写程序,直接读取相应内存单元,观察读到的数据与(1)看到的结果是否相同.2、编制时钟显示程序。

要求每隔1s在屏幕右下角显示“年-月-日时:分:秒”,并将程序驻留在内存。

3、安装MASM32软件包,以其中的一个例子(如example\3dframes)为例,试用软件包中的集成汇编、连接和调试(TD32.EXE)功能。

软件包从汇编教学网站上下载,操作参见《80X86汇编语言程序设计上机指南》第七章。

二、实验要求1. 在调试工具下调入之前编好的运行程序,跟踪执行INT 21H(即进入中断处理程序,方法是:执行到INT 21H时,按ALT+F7),观察CS及IP是否改变成了前面记录的值。

操作提示:由于INT 21H内部的代码较长,为便于从中断处理程序返回到主程序,可在主程序INT 21H后面的指令上先设置好断点,当不再想跟踪中断处理程序时按F9即可。

实验报告的3、4、5 三个部分不用写。

2. 提示:CMOS内部07,08,09单元中分别存放着日、月、年的信息,“年”只显示低2位即可。

汇编教学网站(http://202.114.1.86)上有CMOS参考资料。

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

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

汇编语言程序设计第一次上机作业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、掌握INT 21H 的09H和0AH,01H和02H的功能。

3、熟悉在PC机上建立,汇编,链接,调试和运行8086/8088汇编语言程序的过程。

二、实验内容1、汇编语言源程序的上机过程:①将masm5.zip文件下载放在D:\masm文件夹下, 在该文件夹下将压缩文件解压缩。

②利用编辑器建立一个ASM 源文件。

Edit ,记事本等编辑器文件以文件名.asm文件名保存。

最好保存在D:\masm文件夹下。

(即:D:\masm\文件名.asm)文件名自取。

③点击开始菜单,运行↙>cmd↙>d: ↙>cd masm↙>masm 文件名 3下回车>link 文件名 3下回车>debug 文件名.exe>g ↙其中利用MASM.EXE对源程序进行编译。

生成中间代码文件:文件名.obj。

利用link.exe对obj文件进行连接。

生成最终目标代码文件:文件名.exe。

运行可执行文件:文件名.exe,并利用debug调试工具查看结果。

2、编写一个完整程序,在屏幕上显示字符串How are you!data segmentstring db 'how are you!$'data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,offset stringmov ah,9int 21hmov ah,4chint 21hcode endsend start三、实验器材IBM PC 微机一台四、实验报告要求1、实验报告应包括实验目的,实验内容,实验步骤,实验思考题2、完成实验思考题,如有编程题,写出调试正确的程序,并给程序加注释,写出实验中所记录下的内存数据存放格式。

五、实验思考题下面的汇编语言源程序有错误的,试给程序加注释。

汇编上机实验报告

汇编上机实验报告

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

实验内容:实验一:汇编程序的简单输入输出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,并将每个元素的值打印到屏幕上。

汇编实验报告(详细版)

汇编实验报告(详细版)

计算机组成与汇编语言(实验报告)内容: 实验一、六、七、八院系专业:计算机学院计算机科学与技术姓名: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位十六进制数,在终端上显示与它等值的二进制数。

二进制数。

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

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

实验报告1二、实验题目:顺序程序设计三、实验类型:必做四、实验目的:1.了解汇编语言的程序结构。

2.理解汇编语言中由源程序文件到可执行文件的过程。

五、实验内容和步骤:1、实验内容:编程实现:当X=5时,求Y=3X4+5X3+6X2+4X+2.2、实验步骤:(1)首先对a1.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:00000001;从数据段的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:003A E84126 CALL 267E145A: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~1>a2.exe11G:\0040WU~1>a2.exe2G:\0040WU~1>a2.exe31G:\0040WU~1>a2.exe11七、实验总结:通过本次试验,我已经掌握如何在Dos环境下运行汇编程序,并熟练掌握“DEBUG”、“-u”、“-g”、“-t”命令的使用,以及如何实现掌握分支程序设计结构。

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

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

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

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

保存为a3.asm y=分析:假定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,1456 1457:0003 8ED8 MOV DS,AX 1457:0005 A00000 MOV AL,[0000]1当x >00 当x =0 -1 当x <01457: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 CD21 INT 21-g 1457:0018AX=14E7 BX=00FF CX=0030 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=1456 ES=1446 SS=1456 CS=1457 IP=0018 NV UP EI NG NZ NA PE NC1457:0018 881E0100 MOV [0001],BL DS:0001=00 -tAX=14E7 BX=00FF CX=0030 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=1456 ES=1446 SS=1456 CS=1457 IP=001C NV UP EI NG NZ NA PE NC1457:001C B44C MOV AH,4C-d ds:0001 00011456:0000 FF .七、实验总结:通过本次试验,我有很多收获。

我已经熟练掌握如何在Dos环境下运行汇编程序,并熟练掌握“DEBUG”、“-u”、“-g”、“-t”命令的使用,以及如何实现掌握分支程序设计结构。

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

实验报告4二、实验题目:循环程序设计三、实验类型:必做四、实验目的: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,AX1458:0005 A00000 MOV AL,[0000]1458:0008 BB0000 MOV BX,00001458:000B B91D00 MOV CX,001D1458:000E 43 INC BX1458:000F 3A07 CMP AL,[BX]1458:0011 7302 JNB 00151458: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=0000 DS=1456 ES=1446 SS=1456 CS=1458 IP=0018 NV UP EI PL ZR NA PE NC1458:0018 A21E00 MOV [001E],AL DS:001E=00 -tAX=1463 BX=001D CX=0000 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=1456 ES=1446 SS=1456 CS=1458 IP=001B NV UP EI PL ZR NA PE NC 1458:001B B44C MOV AH,4C-d ds:001e 001f1456:0010 63 00 c. 七、实验总结:通过本次试验,我有很多收获。

相关文档
最新文档