您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页实验2求最大值和最小值

实验2求最大值和最小值

来源:爱go旅游网
实用标准文档

实验2 求最大值和最小值

一、实验目的

1、学习子程序的定义和调用方法。 2、掌握子程序设计、调试。 二、实验内容

对内存中给定的几个无符号字节数,求其最大值和最小值并在数码管上显示。

三、实验程序框图

四、实验步骤

联机模式:

文案大全

实用标准文档

(1)在内存4000H~4007H中写入任意八个字节的数,按下MON键,返回P状态。

(2)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开598K8ASM文件夹,点击S7.ASM文件,单击“确定”即可装入源文件,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。

(3)数码管显示为:“XX——XX”,最左两位为最大值,最右两位为最小值。

脱机模式:

1、在P.态下,按SCAL键,然后在内存4000H~4007H中写入任意八个字节的数,按下MON键,返回P状态。

2、在P.态下,输入2E70,按EXEC键。

3、数码管显示为:“XX——XX”,最左两位为最大值,最右两位为最小值。

五、实验程序清单

CODE

SEGMENT

;S7.ASM,LOOK FOR MAX & MIN

ASSUME CS:CODE

ORG 2E70H

;INPUT

DATA

文案大全

实用标准文档

4000H--4007H

START:

JMP START0

PA EQU 0FF20H PB EQU 0FF21H PC EQU 0FF22H BUF

data1:

db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h

db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH

START0:

CON1:

MOV SI,4000H MOV CX,0008H CALL MAXMIN CALL BUF1 CALL DISP JMP CON1

DB ?,?,?,?,?,?

;字位口 ;字形口 ;键入口

MAXMIN: JCXZ EXIT

PUSH SI PUSH CX PUSH BX MOV BH,[SI] MOV BL,BH

文案大全

实用标准文档

CON2:

X1:

X2:

EXIT: DISP:

DIS1:

文案大全

LODSB CMP AL,BH JNA X1 MOV BH,AL JMP X2 CMP AL,BL JNB X2 MOV BL,AL LOOP CON2 MOV AX,BX POP BX POP CX POP SI RET

MOV AL,0FFH MOV DX,PA OUT DX,AL

MOV CL,0DFH MOV BX,OFFSET BUF MOV AL,[BX]

PUSH BX

;00H ;显示子程序 ,5ms MOV AH,00H 实用标准文档

MOV BX,OFFSET DATA1

ADD BX,AX MOV AL,[BX]

DIS2:

LX1: 文案大全

POP BX MOV DX,PB OUT DX,AL MOV AL,CL MOV DX,PA OUT DX,AL PUSH CX MOV CX,00A0H

CMP CL,0FEH

JZ LX1

MOV DX,PA OUT DX,AL INC BX

ROR CL,1 JMP DIS1

;01H

;00H

;SHR CL,1

LOOP $ POP CX

MOV AL,0FFH MOV AL,0FFH

实用标准文档

BUF1:

MOV DX,PB OUT DX,AL RET

MOV BH,AH CALL ZH

MOV BUF+5,AL MOV BUF+4,AH

MOV AL,BH CALL ZH

MOV BUF,AH MOV BUF+1,AL MOV BUF+2,17H MOV BUF+3,17H

RET

;-------------------------------------------------------- ZH:

MOV BL,AL MOV CL,4 ROL AL,CL AND AL,0FH MOV AH,AL MOV AL,BL AND AL,0FH

文案大全

实用标准文档

RET

;------------------------------------------------------- CODE ENDS END START 六、思考题

1 将数码管显示改为“左边显示最小值,右边显示最大值”,试编程实现。

CODE MIN

ASSUME CS:CODE

ORG 2E70H

;INPUT

DATA

SEGMENT

;S7.ASM,LOOK FOR MAX &

4000H--4007H

START:

JMP START0

PA EQU 0FF20H PB EQU 0FF21H PC EQU 0FF22H BUF

data1:

dbW0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h

db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH

START0:

MOV SI,4000H

DB ?,?,?,?,?,?

;字位口 ;字形口 ;键入口

文案大全

实用标准文档

CON1:

MOV CX,0008H CALL MAXMIN CALL BUF1 CALL DISP JMP CON1

MAXMIN: JCXZ EXIT

CON2:

X1:

X2:

PUSH SI PUSH CX PUSH BX MOV BH,[SI] MOV BL,BH LODSB CMP AL,BH JNA X1 MOV BH,AL JMP X2 CMP AL,BL JNB X2 MOV BL,AL LOOP CON2 MOV AX,BX POP BX

文案大全

实用标准文档

EXIT: DISP:

POP CX POP SI RET

MOV AL,0FFH ;00H

DIS1:

DIS2:

文案大全

MOV DX,PA OUT DX,AL

MOV CL,0DFH MOV BX,OFFSET BUF MOV AL,[BX]

PUSH BX

MOV BX,OFFSET DATA1

POP BX MOV DX,PB OUT DX,AL MOV AL,CL MOV DX,PA OUT DX,AL PUSH CX MOV CX,00A0H

;显示子程序 ,5ms MOV AH,00H ADD BX,AX MOV AL,[BX] 实用标准文档

LOOP $ POP CX

CMP CL,0FEH JZ LX1

;00H

;01H

MOV AL,0FFH

LX1:

BUF1:

文案大全

MOV DX,PA OUT DX,AL INC BX

ROR CL,1 JMP DIS1

MOV AL,0FFH

MOV DX,PB OUT DX,AL RET

MOV BH,AH CALL ZH

MOV BUF,AH MOV BUF+1,AL MOV BUF+2,17H MOV BUF+3,17H MOV AL,BH CALL ZH

;SHR CL,1

实用标准文档

MOV BUF+5,AL MOV BUF+4,AH

RET

;-------------------------------------------------------- ZH:

MOV BL,AL MOV CL,4 ROL AL,CL AND AL,0FH MOV AH,AL MOV AL,BL AND AL,0FH RET

;------------------------------------------------------- CODE ENDS END START

2 试用JBE/JAE(或JC/JNC)指令改写“求最大最小值子程序; CODE MIN

ASSUME CS:CODE

ORG 2E70H

;INPUT

DATA

SEGMENT

;S7.ASM,LOOK FOR MAX &

文案大全

实用标准文档

4000H--4007H

START:

JMP START0

PA EQU 0FF20H PB EQU 0FF21H PC EQU 0FF22H BUF

data1:

dbW0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h

db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH

START0:

CON1:

MOV SI,4000H MOV CX,0008H CALL MAXMIN CALL BUF1 CALL DISP JMP CON1

DB ?,?,?,?,?,?

;字位口 ;字形口 ;键入口

MAXMIN: JCXZ EXIT

PUSH SI PUSH CX PUSH BX MOV BH,[SI] MOV BL,BH

文案大全

实用标准文档

CON2:

X1:

X2:

EXIT: DISP:

DIS1:

文案大全

LODSB CMP AL,BH JB X1 MOV BH,AL JMP X2 CMP AL,BL JA X2 MOV BL,AL LOOP CON2 MOV AX,BX POP BX POP CX POP SI RET

MOV AL,0FFH MOV DX,PA OUT DX,AL

MOV CL,0DFH MOV BX,OFFSET BUF MOV AL,[BX]

PUSH BX

;00H ;显示子程序 ,5ms MOV AH,00H 实用标准文档

MOV BX,OFFSET DATA1

ADD BX,AX MOV AL,[BX]

DIS2:

LX1: 文案大全

POP BX MOV DX,PB OUT DX,AL MOV AL,CL MOV DX,PA OUT DX,AL PUSH CX MOV CX,00A0H

CMP CL,0FEH

JZ LX1

MOV DX,PA OUT DX,AL INC BX

ROR CL,1 JMP DIS1

;01H

;00H

;SHR CL,1

LOOP $ POP CX

MOV AL,0FFH MOV AL,0FFH

实用标准文档

BUF1:

MOV DX,PB OUT DX,AL RET

MOV BH,AH CALL ZH

MOV BUF,AH MOV BUF+1,AL MOV BUF+2,17H MOV BUF+3,17H MOV AL,BH

CALL ZH

MOV BUF+5,AL MOV BUF+4,AH

RET

;-------------------------------------------------------- ZH:

MOV BL,AL MOV CL,4 ROL AL,CL AND AL,0FH MOV AH,AL MOV AL,BL AND AL,0FH

文案大全

实用标准文档

RET

;------------------------------------------------------- CODE ENDS END START 。

数码管显示器内部电路图

文案大全

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务