All pastes #439008 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-04-14 00:02 UTC
rendered paste body
	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