实验报告1

更新时间:2023-10-22 05:45:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验五 正负数据分流程序设计

一、实验目的

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连接程序形成执行文件EXE。程序链接D:\\MASM5>link 文件名; 4. 执行程序。程序运行D:\\MASM5>文件名 5. 程序调试D:\\MASM5>DEBUG 文件名.EXE (或D:>debug D:\\masm5\\文件名.exe)

四、 思考题

1. 用DEBUG软件调试程序(.EXE文件形式),不执行任何命令,可以用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 ax,data mov ds,ax mov cx,16

mov si,offset buffer lea di,plus lea bx,minus lop: mov al,[si] test al,80h jnz l1

mov [di],al

inc di jmp again l1: mov [bx],al inc bx

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. 调试程序时遇到什么问题?怎样解决的?

本文来源:https://www.bwwdw.com/article/q27f.html

Top