⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 06.asm

📁 录音子程序 mov dx,offset news_2 显示放音提示
💻 ASM
字号:
DATA SEGMENT
ORG 1000H
TEMP DB 128,127,122,128,128,128,127,128,129,129,128,128,129,128,128,128
ORG 1010H
AVER DB 10 DUP(?)
ORG 1020H
BCD1 DB 10 DUP(?)
ORG 1030H
BCD2 DB 10 DUP(?)
ORG 1040H
XLATED DB 10 DUP(?)
ORG 1060H
LEDA DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,7FH
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START PROC FAR
STT:PUSH DS
    SUB AX,AX
    PUSH AX
;==============================
    MOV AX,DATA
    MOV DS,AX

    MOV AX,0
    MOV BX,0
    MOV CX,0
    MOV DX,0

    CALL Z1

    CALL Z2

    CALL Z3

    CALL Z4

    CALL Z5

;==============================
    RET
START ENDP


Z1 PROC NEAR
;将首地址为1000H开始存放的16个单字节数组取平均值后,存放在1010H开始的单元中
    MOV SI,OFFSET TEMP
    CLC
    MOV CX,15
    MOV AL,[SI]
    
LP1:INC SI
    MOV BL,[SI]
    ADD AX,BX
    ADC DX,0
    LOOP LP1

    MOV BX,16
    DIV BX

    MOV SI,OFFSET AVER
    MOV [SI],DX
    ADD SI,2
    MOV [SI],AX
    
    RET
Z1 ENDP


Z2 PROC NEAR
;将存放在1010H开始的数转换成压缩的BCD码,存放在1020H开始的单元中
    MOV CX,[SI]
    MOV AX,0
LP: ADD AL,1
    MOV BL,AL
    DAA
    CMP BL,9AH
    JE LP2
    JMP LP3
LP2:ADD AH,1
LP3:LOOP LP

    MOV SI,OFFSET BCD1
    MOV [SI],AX
    RET
Z2 ENDP


Z3 PROC NEAR
;将存放在1020H开始的压缩BCD码转换成非压缩BCD码,存放在1030开始的单元中
    MOV AX,0
    MOV BX,0
    MOV SI,OFFSET BCD1
    MOV AL,[SI]
    
    MOV BL,AL
    AND AL,0F0H
    MOV CL,4
    SHR AL,CL
    AND BL,0FH
    
    MOV DI,OFFSET BCD2
    MOV [DI],BL
    INC DI
    MOV [DI],AL
    INC SI
    MOV AL,[SI]
    INC DI
    MOV [DI],AL
    RET
Z3 ENDP


Z4 PROC NEAR
;将存放在1030H开始的非压缩BCD码转换成七段共阳极LED显示值,存放在1040H开始的单元中
    MOV SI,OFFSET BCD2
    MOV AL,[SI]
    MOV BX,OFFSET LEDA
    XLAT
    MOV DI,OFFSET XLATED
    MOV [DI],AL
    MOV CX,2
LP4:INC SI
    INC DI
    MOV AL,[SI]
    XLAT
    MOV [DI],AL
    LOOP LP4
    
    RET
Z4 ENDP


Z5 PROC NEAR
;将存放在1040H开始的全部数据送CRT显示
    MOV AX,0
    MOV BX,0
    MOV DI,OFFSET XLATED
    ADD DI,2
    MOV CX,3
LP5:MOV DL,[DI]
    MOV AL,DL
    CALL DISPLAY1
    DEC DI
    LOOP LP5



    RET
Z5 ENDP

HEX2ASCII PROC NEAR
;16进制ASCII码子程序
    CLC
    DAA
    ADD AL,0F0H
    ADC AL,40H
    RET
HEX2ASCII ENDP

DISPLAY PROC NEAR
;数据显示子程序
    PUSH DX
    
    MOV DL,AL
    MOV AH,2
    INT 21H

    POP DX
    RET
DISPLAY ENDP

DISPLAY0 PROC NEAR
;格式显示子程序
    PUSH DX
    
    MOV DL,48H
    MOV AH,2
    INT 21H

    MOV DL,20H
    INT 21H

    POP DX
    RET
DISPLAY0 ENDP

DISPLAY1 PROC NEAR
;分离高低4位、调用数据显示子程序、调用格式显示子程序以完成全部显示过程子程序
    PUSH CX
    
    MOV BL,AL
    AND AL,0F0H
    MOV CL,4
    SHR AL,CL
    AND BL,0FH
    CALL HEX2ASCII
    CALL DISPLAY
    MOV AL,BL
    CALL HEX2ASCII
    CALL DISPLAY
    CALL DISPLAY0
    
    POP CX
    RET
DISPLAY1 ENDP

CODE ENDS
END STT

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -