微机原理汇编实验-分支、循环及子程序设计实验
- 格式: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。