视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
微机原理(循环程序设计)
2025-10-02 04:38:03 责编:小OO
文档
洛阳理工学院实验报告

系别计算机班级B100505学号B10050527姓名张勋
课程名称微机原理与接口技术实验日期4.23
实验名称循环程序设计成绩
实验目的:1、加深对循环结构的理解;

         2、掌握循环程序的设计方法;

         3、学会用DEBUG调试程序。

实验条件:1、计算机一台

         2、MASM for Windows 或者 MASM5.0以上编译环境

实验内容:

    一、 试验题目:

1.已知以BUF为首地址的字存储区中存放着8个有符号二进制数,是编写程序将其中大于等于0的数依次送BUF1为首地址的字存储区中,小于0的数依次送以BUF2为首地址的字存储区中。同时将大于等于0的数的个数送A字变量,将小于0数的个数送B字变量。

2.试编程从自然数1开始累加,直到累加和大于5050为止,统计被累加的自然数的个数,并把统计的个数送入COUNT单元,累加和送入TOTAL单元。

二、 试验程序:

1.汇编程序如下:

DATA SEGMENT

BUF DW -2,3,14,-4,8,-2,11,25

BUF1 DW 8 DUP(0)

BUF2 DW 8 DUP(0)

A DW ?

B DW ?

DATA ENDS

STACK SEGMENT PARA STACK 'STACK'    

      DB 200 DUP(?)

STACK ENDS

CODE SEGMENT

     ASSUME CS: CODE, DS: DATA, ES: DATA, SS: STACK

START:    MOV AX,DATA

    MOV DS,AX

    MOV ES,AX

    XOR DX,DX

    MOV CX,8    

    MOV DI,OFFSET BUF

    MOV SI,OFFSET BUF1

    MOV BX,OFFSET BUF2

BEGIN:MOV AX,[DI]

    CMP AX,0000H

    JGE F1

    MOV [BX],AX

    INC BX

    INC BX

    JMP F2

F1:    MOV [SI],AX

    INC DL

    INC SI

    INC SI

F2:    INC DI

    INC DI

       LOOP BEGIN

    MOV DI,OFFSET A

    MOV SI,OFFSET B

    MOV [DI],DL

    MOV DH,8

    SUB DH,DL

    MOV [SI],DH

         MOV AH,4CH

     INT 21H

CODE    ENDS

END START

已知有5个正数,3个负数,则DH、DL分别为03和05,运行程序结束后,查询这两个区域,运行结果如图:

2.汇编程序如下:

DATA SEGMENT

COUNT DB ?

TOTAL DB ?

DATA ENDS

STACK SEGMENT PARA STACK 'STACK'    

      DB 200 DUP(?)

STACK ENDS

CODE SEGMENT

     ASSUME CS: CODE, DS: DATA,ES:DATA, SS: STACK

START:    MOV AX,DATA

    MOV DS,AX

    MOV DI,OFFSET COUNT

    MOV SI,OFFSET TOTAL

    XOR DX,DX

    XOR AX,AX

BEGIN:    INC DX

    ADD AX,DX

    CMP AX,55

    JBE BEGIN

    MOV [SI],AX

    MOV [DI],DX

    MOV AH,4CH

    INT 21H

CODE ENDS

END START

用AX来存放TOTOL,DX存COUNT,运行结果如图:

实验总结:

    通过本次实验,对循环结构程序设计能熟练掌握并且应用,同时弥补了一些没有注意到的细节,比如取某段数据首地址,偏移量等语句的使用,通过练习操作,相信会使我对微机及汇编知识的学习大有帮助。

下载本文
显示全文
专题