(組合語言)中斷:改變當前螢幕顯示顏色
阿新 • • 發佈:2018-12-18
安裝一個int9中斷例程,按F1改變當前螢幕顯示顏色
assume cs: code stack segment db 128 dup (0) stack ends code segment start: mov ax, stack mov ss, ax mov sp, 128 push cs pop ds mov ax, 0 mov es, ax mov si, offset int9 mov di, 204h mov cx, offset int9end - offset int9 cld rep movsb push es:[9 * 4] pop es:[200h] push es:[9 * 4 + 2] pop es:[202h] cli mov word ptr es:[9 * 4], 204h mov word ptr es:[9 * 4 + 2], 0 sti call delay mov ax, 4c00h int 21h delay: push ax push dx mov dx, 10h mov ax, 0 sd: sub ax, 1 sbb dx, 0 cmp ax, 0 jne sd cmp dx, 0 jne sd pop dx pop ax ret int9: push ax push bx push cx push es in al, 60h pushf call dword ptr cs:[200h] cmp al, 3bh jne int9ret mov ax, 0b800h mov es, ax mov bx, 1 mov cx, 2000 s: inc byte ptr es:[bx] add bx, 2 loop s int9ret: pop es pop cx pop bx pop ax iret int9end: nop code ends end start