汇编实验报告 实验一 按照材料编程

更新时间:2024-03-06 20:12:01 阅读量: 综合文库 文档下载

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

昆明理工大学信息工程与自动化学院学生实验报告

( 201 — 201 学年 第 一 学期 )

课程名称:汇编与微机接口实验 开课实验室: 年 月 日 年级 学号 姓名 成绩 实验项目名实验一 按照材料编程 称 教师 评语 指导教师 教师签名: 年 月 日

一、实验目的:

1. 熟悉并掌握80X86机器内存的分配和组成; 2. 熟悉DEBUG调试环境,熟悉常用命令;

3. 利用汇编编写简单的程序,通过显存显示相应的字符串。

二、实验要求:

1.阅读教材175页实验9中给出的材料,理解显存的相关知识;

2. 程序一:编写程序(要求按分段方式编程)实现在显示器上显示一段字符串,同一字符串请在屏幕上显示3行,每行显示的颜色不一样如:(字符串、格式自定) HELLO ! WELCOM

HELLO ! WELCOM

HELLO ! WELCOM 3. 程序二:编写程序计算1~100的和,结果也在屏幕上显示(可以按十六进制数显示)。

-1-

三、实验环境

汇编程序:MASM 6.15,链接程序:LINK.EXE,调试环境:DEBUG.EXE,对操作系统和计算机无特殊要求,如果是WIN7以上操作系统,需要安装DOSBOX虚拟平台。

四、实验内容(算法及运行结果的截图) 程序一代码:

assume cs:code,ds:data data segment

db ' Hello!Welcome!'

data ends ;数据段

code segment

start: ;开始执行

mov ax,data mov ds,ax mov ax,0b800h

mov es,ax ;向基础地址为0b800h的这个地址空间写入数据,写入的内容会立即出

现在显示屏上

mov bx,0 mov si,720h

mov cx,16 ;数据段中给定了16个字符,故将每一个字符读出来要循环16次

s1:

mov al,[bx]

mov ah,2 ;用2h将取出来的字数据的高位替代。恰好00000010h=2h为黑底绿字的属性字节

mov es:[si],ax

mov ah,24h ;00100100h=24h,设置成绿底红字

mov es:[si+0a0h],ax

mov ah,71h ;01110001h=17h,设置成蓝底白字

mov es:[si+0a0h+0a0h],ax inc bx

-2-

add si,2

loop s1 ;循环 mov ah,4ch ;终止程序 int 21h

code ends end start

程序运行截图:

-3-

-4-

程序二代码:

assume cs:codeseg,ds:dataseg dataseg segment

num db 4 dup(0) ;定义4个字节并赋值为0命名为num dataseg ends ;数据段

codeseg segment ;代码段 START:

mov ax,dataseg

mov ds,ax mov cx,100 xor ax,ax mov bx,10

xor dx,dx s: add ax,cx loop s lea si,num+3

step1:

cmp ax,bx

jb over xor dx,dx

div bx mov [si],dl dec si

jmp step1

over:

mov [si],al

mov cx,4 xor si,si

mov ah,02h

dis:

;为ds赋值 ;循环为100次 ;清零 ;清零

;跳转,若ax>bx则跳到over ;除法

;控制以下循环为四次 -5-

mov dl,[si] add dl,30h inc si

int 21h ;停止

loop dis ;循环

mov ah,1 int 21h

mov ah,4ch ;终止程序 int 21h

codeseg ends end start

程序运行截图:

-6-

六、实验总结(程序的优缺点,不足和改进的过程)

通过这次实验,我对汇编程序有了更进一步的认识, 对Debug的一些命令有了深刻的认识,在此基础上基本掌握了循环语句的使用,有了一定的汇编语言的编译能力。

-7-

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

Top