bits 16
org 0x0100
mov ax, 0xA000 ; ES kan ikke settes direkte, så vi må sette det via et register
mov es, ax
; AH = 0 er skjermkort-BIOS-ens funksjon for å sette videomodus
mov ah, 0
mov al, 0x13 ; videomodus 0x13 = VGA
int 0x10 ; kall skjermkortet!
; Sett en piksel omtrent midt på skjermen
mov ax, 100
mov bx, 160
mov cl, 180
call settPiksel
; Sett en piksel helt nede i høyre hjørne
mov ax, 199
mov bx, 319
mov cl, 10
call settPiksel
; Vent på tastetrykk:
mov ah, 8
int 0x21
; Sett tilbake til vanlig textmode:
mov ah, 0
mov al, 3
int 0x10
; Avslutt
mov ah, 0x4C
int 0x21
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; settPiksel
;
; Inn: AX = Y, BX = X, CL = farge
; Ut: -
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; pikseladresse = y * 320 + x
settPiksel:
push cx ; lagre CX (fargen) på stacken
mov cx, 320 ; vi skal bruke CX til å gange AX (Y) med 320
mul cx ; AX = AX * CX
add ax, bx ; legg BX til AX
mov bx, ax ; flytt AX over i BX
pop cx ; få tilbake CX sin verdi (fargen)
mov [es:bx], cl ; lagre i den kalkulerte adressen
ret ; returner