微机原理(循环程序设计).
洛阳理工学院实验报告
系别计算机班级B100505学号姓名张勋课程名称微机原理与接口技术实验日期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
CODEENDS
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,运行结果如图:
实验总结:
通过本次实验,对循环结构程序设计能熟练掌握并且应用,同时弥补了一些没有注意到的细节,比如取某段数据首地址,偏移量等语句的使用,通过练习操作,相信会对及汇编的学习大有帮助