微机原理汇编实验-分支、循环及子程序设计实验

  • 格式:docx
  • 大小:16.53 KB
  • 文档页数:5

微机原理汇编实验-分支、循环及子程序设计实验

学生实验报告

实验课程名称:微机原理汇编实验

开课实验室:年月日

年级、专业、

班学

姓名成绩

实验项目

名称分支、循环及子程序设计实验

指导

教师

一、实验目的

1.学习分支程序、循环结构程序的设计和调试方法。

2.学习子程序的定义和调试方法。

3.掌握分支、循环、子程序等程序的基本结构。

二、实验原理

使用MASM汇编语言设计工具,设计简单的汇编语言程序并进行运行调试,以便掌握汇编语言设计、编写、调试和运行程序的方法。

三、实验仪器、材料

1.软件MASM5.0

2.PC微机一台

四、实验步骤

1.输入程序并检查无误,经汇编、连接后生成.EXE文件。

2.使用DEBUG命令运行以上程序。 3.反复试几组数,考察程序的正确性。

五、实验源代码

;-------------------------------------------------

;程序名:Lab201

;功能:实现对NUM中 -128~127

; 的数进行负数统计

;备注:负数的个数存放在BL中并在屏幕输出

;-------------------------------------------------

DSEG SEGMENT

;定义需要统计的各个数值,数据值不能大于127,不能小于-128

NUM DB -100,-100,1,-100,30,-10,127,89,-128,20

;统计数据的个数

LENG EQU ($-NUM)

DSEG ENDS

CODE SEGMENT

MAIN PROC FAR

ASSUME CS:CODE,DS:DSEG

START: MOV AX,DSEG

MOV DS,AX

MOV CX,LENG

MOV BX,0000H

MOV AX,DSEG

MOV DS,AX

MOV SI,OFFSET NUM

AGAIN:MOV DL,[SI]

CMP DL,0000H

JL LITTEL

JMP BIG

LITTEL:INC BL ;程序结束返回DOS

ADD SI,1 LOOP AGAIN

JMP FINISH

BIG:ADD SI,1

LOOP AGAIN

JMP FINISH

;----------------------------------

;子程序名:TRANNUM

;功能:将数值转换为数字

; 字符输出

;入口参数:DL

;出口参数:无

;----------------------------------

TRANNUM PROC NEAR

MOV AL,DL

XOR AH,AH

MOV CX,2

MOV DL,10

TRAN1:DIV DL

XCHG AH,AL

ADD AL,'0'

PUSH AX

XCHG AH,AL

MOV AH,0

LOOP TRAN1

MOV CX,2

TRAN2:POP DX

CALL DISPLAY

LOOP TRAN2

RET

TRANNUM ENDP ;----------------------------------

;子程序名:DISPLAY

;功能:将单个字符显示输出

;入口参数:DL

;出口参数:无

;----------------------------------

DISPLAY PROC NEAR

MOV AH,02H

INT 21H

RET

DISPLAY ENDP

FINISH:MOV DL,BL

CALL TRANNUM ;调用子程序:TRANNUM MOV AH,4CH ;程序结束返回DOS

INT 21H

MAIN ENDP

CODE ENDS

END START

六、实验过程原始记录(数据图表、计算等)

1、打开命令提示符:输入cmd

2、输入:cd G:/asm/tos

3、输入:G:

5、输入:masm lab201

6、输入:link lab201

7、输入:lab201

七、实验结果分析

从程序代码分析,所给数值中有5个负数,运行程序后输出结果为05,说明程序能够实现其统计负数个数的功能。经过计算,由于NUM属性为DB,即其最大储存为1111 1111.而相对于符号数则,第一位为符号位。如此最大正整数为:0111 1111 = 127、最小负数值为-128。