实验报告(范例).doc
实验报告(范例)实验五 正负数据分流程序设计 一、实验目的 1.掌握汇编语言程序的编写方法。2.学习汇编语言程序的编辑、汇编、连接、调试及运行的全过程。3.熟练掌握分支程序结构、循环程序结构的编程 二、实验内容 设首地址为 BUFFER 的内存缓冲区中存有 16 个数(字节数),试将数据块中的正数(包括 0)存至起始地址为 PLUS 的缓冲区,负数存入起始地址为 MINUS 的缓冲区。数据为 F5H,46H,78H,4F,0BCH,0DAH,0ABH,02H,12H,56H,0D5H,0ACH,34H,89H,45H,0C3H 三、实验步骤 1.输入程序,建立 ASM 文件。程序的编辑 D:MASM5>edit 文件名.asm 2.用 MASM 宏 汇 编 程 序 对 文 件 进 行 汇 编 , 产 生 目 标 文 件 OBJ 。程序汇编 D:MASM5>masm 文件名; 3.用 LINK 连接程序形成执行文件 E_E。程序链接 D:MASM5>link 文件名; 4.执行程序。程序运行 D:MASM5>文件名 5.程序调试 D:MASM5>DEBUG 文件名.E_E (或 D:>debug D:masm5文件名.e_e) 四、 思考题 1.用 DEBUG 软件调试程序(.E_E 文件形式),不执行任何命令,可以用 D 命令(DDS:0)查看数据段的原始数据吗?为什么? 2.汇编语言程序通过了汇编和链接是否就正确无误了?为什么? 五、 实验报告 1.画出程序流程图。2.写出程序清单。data segment buffer db 0f5h ,46h, 78h, 4fh, 0bch, 0dah, 0abh, 02h, 12h, 56h, 0d5h, 0ach, 34h, 89h, 45h, 0c3h plus db 16 dup(?) minus db 16 dup(?) data ends code segment assume cs:code, ds:data start:mov a_,data mov ds,a_ mov c_,16 mov si,offset buffer lea di,plus lea b_,minus lop: mov al,si test al,80h jnz l1 mov di,al inc di jmp again l1: mov b_,al inc b_ jmp again again:inc si loop lop mov ah,4ch int 21h code ends end start 3.回答思考题 1.首先用 T 命令顺序执行用户程序的前几条直到寄存器 DS/ES 已预置为用户的数据段。在用 T 命令执行程序时,每执行一条指令,显示指令执行后寄存器的变化情况,以便用户查看指令执行结果。观察用户程序数据段出事内容:在地 3 步执行后DS/ES 已指向用户程序的数据段和附加段,这时用 D 命令可查看用户程序的原始数据。2.:如果汇编和链接都正确,产生的可执行文件就可在 DOS 下运行, 只要直接打入文件名即可.调试汇编语言程序在汇编及连接中能够检查出语法错误,有些逻辑错误,结构错误,只有在调试运行中, 才能发现.调试工具 DEBUG 是为汇编语言。4.调试程序时遇到什么问题?怎样解决的? 第 2 页 共 2 页