当前位置:文档之家› 微机原理实验三子程序设计实验

微机原理实验三子程序设计实验

实验三 子程序设计实验
一、实验目的
1.学习子程序的定义和调用方法。

2.掌握子程序的程序设计、编制及调用。

二、实验设备
TDN86/88教学实验系统一台
三、实验内容及步骤
1.求无符号字节序列中的最大值和最小值
设有一字节序列,其存储首址为3000H ,字节数为08H 。

利用子程序的方法编程求出该序列中的最大值和最小值。

实验程序及流程如下:
主程序
STACK1 SEGMENT STACK
DW 64 DUP(?)
STACK1 ENDS CODE SEGMENT
ASSUME CS:CODE
START: MOV SI,3000H
MOV CX,0008H CALL branch
A1: JMP A1 branch: JCXZ A4
PUSH SI PUSH CX PUSH BX
子程序
实验步骤
(1)输入源程序,进行编译、链接和加载。

(2)在调试区键入E0000:3000↙,输入8个字节的数据:D9、07、8B、C5、EB、04、9D、F9。

(3)运行程序,查看结果,在调试区键入R AX↙,显示结果应为AX=F9 04,AH中为最大值,AL中为最小值。

2.数组求和
设有一字节序列(存储地址和字节数可自定义),编写程序,求出该序列的和,求和工MOV BH,[SI]
MOV BL,BH
A1: LODSB
CMP AL,BH
JBE A2
MOV BH,AL
JMP A3
A2: CMP AL,BL
JAE A3
MOV BL,AL
A3: LOOP A1
MOV AX,BX
POP BX
POP CX
POP SI
A4: RET
CODE ENDS
END START
作由子程序来实现。

程序:
STACK1 SEGMENT STACK DW 64 DUP(?)
STACK1 ENDS
CODE SEGMENT ASSUME CS:CODE START: MOV SI,3000H MOV CX,0008H
XOR AX,AX
CALL branch
A5: JMP A5
branch: JCXZ A4
PUSH SI
PUSH CX
A1:
ADD AL,[SI]
INC SI
A3: LOOP A1
POP CX
POP SI
A4: RET
CODE
ENDS
END START
8个01,总和为08。

相关主题