微机原理实验三子程序设计实验_微机原理软件实验程序
微机原理实验三子程序设计实验由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“微机原理软件实验程序”。
实验三 子程序设计实验
一、实验目的1.学习子程序的定义和调用方法。2.掌握子程序的程序设计、编制及调用。
二、实验设备
TDN86/88教学实验系统一台
三、实验内容及步骤
1.求无符号字节序列中的最大值和最小值
设有一字节序列,其存储首址为3000H,字节数为08H。利用子程序的方法编程求出该序列中的最大值和最小值。实验程序及流程如下:
主程序STACK1SEGMENT 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