data segment ;和hello world差不多的
disp db'good!'
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
mov al,disp[0]
mov es:[146h],al
mov byte ptr es:[147h],1eh
mov al,disp[1]
mov es:[148h],al
mov byte ptr es:[149h],1eh
mov al,disp[2]
mov es:[14ah],al
mov byte ptr es:[14bh],1eh
mov al,disp[3]
mov es:[14ch],al
mov byte ptr es:[14dh],1eh
mov al,disp[4]
mov es:[14eh],al
mov byte ptr es:[14fh],1eh
mov ah,00h
int 16H
mov ah,4ch
int 21h
code ends
end start
我试过了,如果用INT 16H,则在程序启动的时候,会有一小会的cpu高占用率;但是若换成了INT 21H,则完全不会出现上述情况。我知道INT 16H是BIOS中断,INT 21H是DOS中断;但是为什么用BIOS中断就会出现高cpu占用率呢?兼容问题? |