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

📄 12a.asm

📁 录音子程序 mov dx,offset news_2 显示放音提示
💻 ASM
字号:
DATA SEGMENT

    ioport equ 0c000h-280h              ;实验箱驱动默认中断地址为C000H,此处设置偏移量
    ioport1 equ ioport+298h
    ioport2 equ ioport+299h

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

CONTROL:MOV DX,ioport1
    MOV AL,0FFH
    OUT DX,AL
    CALL DELAY1S
    IN AL,DX

    MOV AH,0
    MOV BX,0
    MOV BL,AL            ;分离AL的高4位和低4位,分离后AL中为高4位,BL中为低4位
    AND AL,0F0H
    MOV CL,4
    SHR AL,CL
    AND BL,0FH

    CALL HEX2ASCII       ;调用HEX2ASCII
    CALL DISPLAY         ;调用DISPLAY子程序
    MOV AL,BL
    CALL HEX2ASCII
    CALL DISPLAY
    MOV DL,48H
    MOV AH,2
    INT 21H
    MOV DL,20H
    INT 21H
    
;==============================
    MOV AH,0BH
    INT 21H
    CMP AL,00H
    JNE EXIT
    JMP CONTROL

EXIT:MOV AH,4CH
    INT 21H
;==============================
    RET
START 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

DELAY1S PROC NEAR
;8086延时1S子程序
     PUSHF
     PUSH BX
     PUSH CX

     MOV BX,3E8H
LP2: MOV CX,0BAH
LP1: PUSHF
     POPF
     LOOP LP1
     DEC BX
     JNZ LP2

     POP CX
     POP BX
     POPF
       
     RET
DELAY1S ENDP

CODE ENDS
END STT

⌨️ 快捷键说明

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