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

📄 ko.asm

📁 接口 课程设计 秒表!
💻 ASM
字号:
;定义堆栈段
STACK SEGMENT STACK
   DW 256 DUP(?)
STACK ENDS
;定义数据段
DATA SEGMENT

DATA ENDS
;定义代码段
CODE SEGMENT
   ASSUME CS:CODE,DS:DATA
START:  MOV AX,DATA
        MOV DS,AX
        PUSH DS
        ;送IP
        MOV AX,0000H
        MOV DS,AX
        MOV AX,OFFSET IRQ0
        ADD AX,2000H
        MOV SI,20H   ;零号中断ip  
        MOV [SI],AX
        ;送CS
        MOV AX,0000H
        MOV SI,22H   ;零号中断cs  
        MOV [SI],AX
        POP DS
        ;8259初始化
        MOV AL,13H
        OUT 20H,AL;icw1
        MOV AL,08H
        OUT 21H,AL         ;icw2
        MOV AL,09H
        OUT 21H,AL          ;ocw1
        MOV AL,0FEH;        ;icw4 1111 1110
        OUT 21H,AL
        ;8253控制字
        MOV AL,30H       ;计数器0,16位的I/O,方式0,二进制记数00 11 000 0
        OUT 43H,AL
        ;置初值10000D
        MOV AL,10H      ;10000D=2710H
        OUT 40H,AL
        MOV AL,27H
        OUT 40H,AL  
        MOV DX,0        ;中断调用记数119次
        MOV CH,30H      ;初次显示00:00
        MOV AH,01H
        MOV AL,CH
        INT 10H
        MOV CL,30H
        MOV AH,01H
        MOV AL,CL
        INT 10H
        ;冒号
        MOV AH,01H
        MOV AL,3AH    ;3A是冒号的ascii
        INT 10H
        MOV BH,30H
        MOV AH,01H
        MOV AL,BH
        INT 10H
        MOV BL,30H
        MOV AH,01H
        MOV AL,BL
        INT 10H
        ;回车换行
        MOV AH,01H
        MOV AL,0DH
        INT 10H
A:      sti 
        JMP  A
IRQ0:  
        ;显示
        ;数值0=30h,9=39h
        ;分H分L:秒H秒L=CH CL:BH BL
        MOV AL,10H
        OUT 40H,AL
        MOV AL,27H
        OUT 40H,AL
        INC DX
        CMP DX,119
              
        JB  EXIT           ;JB=小于
        MOV DX,0
        ;时间变化
        INC BL
        CMP BL,39H
        JBE DISPLAY
        MOV BL,30H
        INC BH
        CMP BH,35H
        JBE DISPLAY
        MOV BH,30H
        INC CL
        CMP CL,39H
        JBE DISPLAY
        MOV CL,30H
        INC CH
        CMP CH,35H
        JBE DISPLAY
        MOV CH,30H
        ;时间显示
DISPLAY: 
        MOV AH,01H
        MOV AL,CH
        INT 10H
        MOV AH,01H
        MOV AL,CL
        INT 10H
        ;冒号
        MOV AH,01H
        MOV AL,3AH
        INT 10H
        MOV AH,01H
        MOV AL,BH
        INT 10H
        MOV AH,01H
        MOV AL,BL
        INT 10H
        ;回车换行
        MOV AH,01H
        MOV AL,0DH
        INT 10H
        ;中断结束
EXIT:   MOV AL,20H
        OUT 20H,AL
        IRET
        CODE ENDS
           END START

⌨️ 快捷键说明

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