实验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
本站由北京市万商天勤律师事务所王兴未律师提供法律服务