误会总是悄然地产生,fuck it! 扩展int 9号中断例程,按F1改变terminate窗口色彩。 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 mov ax, 4c00h int 21h 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 运行结果:多按几次F1后的效果