Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Code Segment
- assume CS:Code, DS:Data, SS:Stack
- Start:
- mov ax, Code
- mov DS, AX
- ;Inicializálás
- mov cx, 100 ;X koordináta
- mov dx, 100 ;Y koordináta
- push dx
- push cx
- mov si, 0
- ;Üzemmód váltás
- mov ax, 4F02H ;Super VGA mód
- mov bx, 101h ;640x480
- int 10h
- ;Képernyő memória beállítás
- mov ax, 0a000h ;Videó kezdőcím
- mov es, ax ;Extra szegmens
- ;Pixel helyének számítása: Pixel = Y * 320 + X
- Rajz:
- pop cx ;cx <- X
- pop dx ;dh <- Y
- mov ax, dx ;ax <- Y
- push dx
- push cx
- mov bx, 640
- mul bx ;Y koordináta * 640
- pop cx ;cx <- X
- pop dx
- add ax, cx ;X koordináta hozzáadása
- jnc Pixel
- inc ah
- ;Pixel kirajzolás
- Pixel:
- push dx
- push cx
- mov di, ax
- mov ax, si ;Pixel színe
- mov es:[di], al ;videó memóriában beállítja a megfelelő pixel színét
- ;Bevitel
- Var:
- xor ah, ah
- int 16h
- cmp al, 27
- jz Program_Vege
- cmp ah, 75
- jz Balra
- cmp ah, 77
- jz Jobbra
- cmp ah, 72
- jz Felfele
- cmp ah, 80
- jz Lefele
- cmp al, '0'
- jnc SzinValtasLehetosege
- jmp Var
- SzinValtasLehetosege:
- cmp al, ':'
- jnc Var
- sub al, 48
- mov si, ax
- jmp Var
- Balra:
- pop cx
- pop dx
- dec cx
- cmp cx, 1
- jnc Tarol
- inc cx
- jmp Tarol
- Jobbra:
- pop cx
- pop dx
- inc cx
- cmp cx, 640
- jc Tarol
- dec cx
- jmp Tarol
- Felfele:
- pop cx
- pop dx
- dec dx
- cmp dx, 1
- jnc Tarol
- inc dx
- jmp Tarol
- Lefele:
- pop cx
- pop dx
- inc dx
- cmp dx, 480
- jc Tarol
- dec dx
- jmp Tarol
- Tarol:
- push dx
- push cx
- jmp Rajz
- Program_Vege:
- mov ax, 03h
- int 10h
- pop dx
- pop cx
- mov ax, 4c00h
- int 21h
- Code Ends
- Data Segment
- Data Ends
- Stack Segment
- Stack Ends
- End Start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement