模拟温度软件设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验目的:
1.熟悉并且掌握汇编语言的基本指令及编程方法。 2. 掌握用汇编语言编写程序的思路和设计方法。 3. 熟练掌握DEBUG调试程序的方法。二、实验内容:
1. 设计课题:模拟温度测量软件设计
2设计要求:(1)将首地址为1000H开始存放的10个单字节数据,进行数字滤波。
实现方法:找出其中最大值和最小值并从中10个数中去掉最大值和最小值,将剩余的的8个数取平均值后,存放在1010H单元中。(Z1)
(2) 将存放在1010H单元中的十六进制数的整数部分转换成非压缩的BCD码,存放在1020H 开始的存储单元中。(Z2)(低位在前)
(3)将存放在1020H开始的非压缩BCD码转换成ASCII码。存放在1030H开始的存储单元中。(低位在前)(Z3)
(4)将存放在1030H开始的ASCII码送CRT显示(高位在前)(Z4)三、写出源程序清单DATA SEGMENT
ORG 1000H
SZ DB 6,4,9,1,8,3,2,7,0,5
MAX DB ? MIN DB ?
ORG 1010H
PJS DB ? YS DB ?
ORG 1020H
BCD DB 3 DUP(?)
ORG 1030H
ASI DB 3 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MAIN PROC FAR
STA: PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
CALL ZMAX
CALL ZMIN
CALL Z1
CALL Z2
CALL Z3
CALL Z4
RET
MAIN ENDP
ZMAX PROC
LEA SI,SZ
MOV CX,9
MOV AL,[SI]
BIG1:CMP AL,[SI+1]
JAE BIG2 ;小等于则转移
MOV AL,[SI+1]
BIG2:INC SI
DEC CX
JNZ BIG1 ;CX不等于0时转移MOV MAX,AL
RET
ZMAX ENDP
ZMIN PROC
LEA SI,SZ
MOV CX,9
MOV BL,[SI]
LMIN:CMP BL,[SI+1]
JBE NEXT
MOV BL,[SI+1]
NEXT:INC SI
DEC CX
JNZ LMIN
MOV MIN,BL
RET
ZMIN ENDP
Z1 PROC
LEA SI,SZ
MOV CX,10
MOV AX,0
Z11: ADD AL,[SI]
ADC AH,0
INC SI
DEC CX
JNZ Z11
MOV BX,0
ADD BL,[SI]
ADD BL,[SI+1]
SUB AX,BX
MOV BL,8
DIV BL
MOV PJS,AL
MOV YS,AH
RET
Z1 ENDP
Z2 PROC
LEA SI,PJS