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

2026/4/28 21:33:30

实验三 子程序设计实验

一、实验目的

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

结束序列的字节个数→CX数据区首址→SI调用求最大最小值子程序

MOV BH,[SI] MOV BL,BH A1: LODSB

CMP AL,BH JBE A2 MOV BH,AL JMP A3 A2: CMP AL,BL

JAE A3

Y子程序CX=0?NSI、CX、BX入栈[SI]→BHBH→BLSI+1→SI[SI]→ALNAL﹤BHAL→BHMOV BL,AL A3: LOOP A1

MOV AX,BX POP BX POP CX

YAL﹥BLYCX-1→CXNNAL→BLCX=0?POP SI A4: RET CODE ENDS END START

实验步骤

(1) 输入源程序,进行编译、链接和加载。

YSI、CX、BX出栈RET

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

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

2.数组求和

设有一字节序列(存储地址和字节数可自定义),编写程序,求出该序列的和,求和工

作由子程序来实现。

程序:

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


微机原理实验三子程序设计实验.doc 将本文的Word文档下载到电脑
搜索更多关于: 微机原理实验三子程序设计实验 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219