微机原理及应用实验报告

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

微机原理及其应用上机实验报告

实验一 程序调试实验(顺序结构程序设计) 一、实验目的:

1.学习及掌握汇编语言源程序的基本结构,明确程序中各段的功能和相互之间的关系。 2.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。 3、熟悉和掌握DEBUG 常用命令的使用 二、实验要求:

1、上机前,要认真阅读前言和课本相关章节

2、上机前,画好流程图,编写好程序

3、上机时,注意出现的错误,记录下出错信息,翻译之

4、完成好实验报告 三、实验内容:

在内存TAB 开始的16个单元连续存放了0-15的平方值(0-225),任给一个数X(0 ≤ X ≤ 15),求X 的平方值,并把结果存放在Y 单元中。

(2).分析

X 平方的值是tab 为首地址且x 的值为有效地址中的值。 data segment

x db 8 y db data ends

stack segment para'stack' db 100 dup(0) stack ends code segment

assume cs:code,ds:data,ss:stack start:mov ax,data mov ds,ax xor ax,ax

mov al,x

lea si,tab

add si,ax

mov al,[si]

mov y,al

mov ah,4ch

int 21h

code ends

end start

(3).程序调试:

4.心得体会

了解了顺序结构,掌握了程序的运行,调试。

实验二分支程序设计

一、实验目的:

熟悉运算类指令对标志位的状态影响以及标志位状态的表示方法;掌握条件转移、无条件转移指令的使用方法。掌握分支程序设计、编写、调试和运行的方法。

二、实验要求:

1、上机前认真分析题意,找出算法,画出流程图,依据流程图,编好程序。

2、认真调试程序,对程序可能存在的所有分支都要进行运行,只有这样才能证明程序的正确性。

二、实验内容

1.判断X单元数据的奇偶性,若为奇数,将Y单元设置为0FFH,若为偶数,将Y单元清0。

(2).分析

将x值给寄存器al,al和1

数。

data segment

x dw 69h

y db

data ends

code segment

assume cs:code,ds:data

start:mov ax,data

mov ds,ax

mov ax,x

and ax,01h

jz next1

mov y,0ffh

jmp next

next1:mov y,0

next:mov ah,4ch

int 21h

code ends

end start

(3).程序调试

(4).心得体会

掌握了add指令的用法,熟悉了分支结构。

2. 设计—个比较两个8位无符号数的大小、并把较小的数存人MIN单元的程序。假设这两个数分别存放在FIRST和SECOND单元中。

(2).分析

将first值赋给al,判断al与second的大小,将小的值给min。

data segment

first db 32h

second db 56h

min db

data ends

code segment

assume cs:code,ds:data start:mov ax,data

mov ds,ax

mov al,first

cmp al,second

jc next

mov bl,second

mov min,bl

jmp next1

next:mov min,al

next1:mov ah,4ch

开始

取first值给al

判断

al是否大

将al值给min将second值给min 结束

int 21h

code ends

end start

(3).程序调试

(4).心得体会

掌握了cmp指令的用法,加深了对分支结构的了解。

实验三循环程序设计

一、实验目的

掌握循环指令的使用方法;掌握实现单重、多重循环程序设计、编写、调试和运行的方法。

二、实验要求:

1、上机前认真分析题意,找出算法,画出流程图,依据流程图,编好程序

2、在调试程序的过程中,对出现的错误应记录它的英文提示,进行翻译,把更正的指令用其它颜色的笔记录的原程序清单的右边,便于比较。

三、实验内容:

1、从自然数1

并把统计的个数送入n单元,将累加和送入

data segment

n dw

sum dw

data ends

code segment

assume cs:code,ds:data

start:mov ax,data

mov ds,ax

mov ax,0

mov bx,0

next: inc bx

add ax,bx

cmp ax,1000

jb next

mov n,bx

mov ax,sum

mov ah,4ch

int 21h

code ends

end start

2.内存地址BUFFER开始存放着10个带符号字节数组,编写程序求数组中正数、零和负数的个数,并分别将它们存于PLUS开始的单元。

(2).分析

将寄存器al,bx初始化,取buffer首地址给si,设置循环次数给cx,判断[si]的值正负还是零,

将正数个数值送给al,负数个数值送给bh,零的个数给bl,再将三个值存放在以plus 为首地址的地址中。

data segment

cnt equ $-buffer Array

plus db 3

data ends

code segment

assume cs:code,ds:data

start:mov ax,data

mov ds,ax

相关文档
最新文档