Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- org 256
- mov ax, 0x0013
- int 0x10
- push 15 ; color
- push 160 ; top x
- push 0 ; top y
- push 199 ; side length
- call triangle
- while:
- mov ah, 0
- int 0x16
- cmp al, 'q'
- jnz while
- mov ax, 0x0003
- int 0x10
- ret
- triangle:
- push bp
- mov bp, sp
- push ax
- push bx
- push cx
- push dx
- push si
- push ds
- ; Переход в видеопамять
- mov bx, 0xA000
- mov ds, bx
- mov ax, 320
- mov bx, [bp + 6]
- mul bx
- mov si, ax
- add si, [bp + 8] ; add x, now in bx - top tringle point byte
- mov bl, [bp + 10] ; color
- mov ax, 320
- dec ax
- mov dx, 2
- mov cx, [bp + 4]
- shr cx, 1
- triang_while1:
- mov [si], bl
- add si, ax
- mov [si], bl
- add si, dx
- mov [si], bl
- dec ax
- add si, ax
- mov [si], bl
- add si, dx
- dec ax
- add dx, 2
- loop triang_while1
- mov [si], bl
- mov cx, [bp + 4]
- triang_while2:
- mov [si], bl
- dec si
- loop triang_while2
- ;push 320
- ;push WORD[bp + 6]
- ;call multiplicator
- ;pop ax
- mov ax, [bp + 2]
- mov [bp + 10], ax
- pop ds
- pop si
- pop dx
- pop cx
- pop bx
- pop ax
- pop bp
- add sp, 8
- ret
- multiplicator:
- push bp
- mov bp, sp
- push ax
- push bx
- mov ax, [bp + 6]
- mov bx, [bp + 4]
- mul bx
- mov [bp + 6], ax
- mov bx, [bp + 2]
- mov [bp + 4], bx
- pop bx
- pop ax
- pop bp
- add sp, 2
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement