实验一、DEBUG 调试环境实验寻找最大和最小数实验一、实验目的1.学习循环程序结构,掌握编写循环处理程序的方法和技巧.2.通过循环结构程序熟悉汇编语言程序设计的主要方法。3.了解和掌握程序设计过程中算法的选择。4。掌握汇编语言调试方法。二、实验内容以 buff 开始的内存单元中有 10 个有符号数(字节型 DB): -37、28、—115、—2、98、-100、93、120、56、-99请编写程序,找出最大的数并存入 MAX 单元中,同时也找出最小的数并存入 MIN 单元中,在Debug 下运行程序,查看数据区 MAX 和 MIN 的内容检验运行结果。三、实验步骤及调试结果1、实验流程图:2、实验步骤:(1)在 EDIT 或其它编辑方式下输入源程序,并以 XXX。ASM 名保存。(2)用 MASM 文件汇编源程序,C〉MASM XXX; 如有错误,回到第一步,如没错误,到第三步.(3)用 LINK 连接程序,C〉LINK XXX; 形成 XXX。EXE 文件。(4)在 DEBUG 调试环境下调试并运行 XXX。EXE 程序.C〉DEBUG XXX。EXE 回车首先用R 指令,然后使用 U 指令查看自己所编写的程序,确定断点后,使用 G 命令执行程序到断点,查看结果,程序运行结束后,用 D DS:0 检查数据区 MAX 及 MIN 内容,检查结果是否正确。3、调试结果:编译生成 obj 文件成功Masm link obj 文件生成。exe 文件成功Debug 调试,查看 AX 寄存器内容,ah=78,转换为十进制是 120,al=8D 转换为十进制是-115查看数据段内容四、实验数据(源代码)data segmentbuf db -37,28,—115,-2,98,-100,93,120,56,—99c equ $-bufmax db ?min db ?data endscode segment assume cs:code,ds:datastart:mov ax,data mov ds,ax mov cx,c—1 mov bx,offset buf mov ah,[bx] mov al,[bx]p01: inc bx cmp ah,[bx] jge test01 mov ah,[bx] jmp test02test01:cmp al,[bx] jnge test02 mov al,[bx] jmp test02test02:loop p01 mov max,ah mov min,al int 21hcode ends end start五、思考题1、可执行程序装载内存的首地址是:0000 结束地址:002C2、Max 段地址:1408 偏移地址:000A Min 段地址:1408 偏移地址:000B3、数据段占用地址空间:12 字节 代码段占用地址空间:46 字节感想:本次实验难点在于算法设计和调试生成的 exe 文件上,因为之前没用过 debug 调试程序,所以花费了许多时间,而且找地址空间也花了一些时间去了解。