Dibujar circulo en 8086
name "circulo"
org 100h
jmp inicio
x db 0
y db 0
res dw 0
err db 0
x0equ 50
y0 equ 50
r equ 25
; set video mode
inicio:
mov ah, 0
mov al, 13h
int 10h
mov cx,r
mov bx,x0
add bl,r
mov x,bl
mov err,y0
ciclo:mov bl,r
mov al,bl
mul bl
push ax
mov bl,xsub bl,x0
mov ax,0
mov al,bl
mul bl
mov bx,ax
pop ax
sub ax,bx
mov res,ax
push cx
mov cx,1
call aqui
mov bl,y0
sub bl,cl
mov y,bl
mov ax,0
mov al,err
sub al,y
;jz brinco
;cmpal,1
;jz brinco
;dec ax
;mov cx,ax
;inc x
;ci:
;push cx
;mov cx,0
;mov cl,x ; column
;mov dx,0
;dec err
;mov dl,err ; row
;mov al,15 ; white
;mov ah, 0ch ; put pixel;int 10h
;pop cx
;mov bx,0
;mov bl,err
;pop ax
;push bx
;push ax
;loop ci
;dec x
;mov bl,y
;mov err,bl
;brinco:
mov cx,0
mov cl,x ; column
mov dx,0
mov dl,y ; row
mov al,15; white
mov ah, 0ch ; put pixel
int 10h
pop cx
mov bx,0
mov bl,y
push bx
dec x
loop ciclo
mov cx,r
ciclo2:
pop bx
push cx
mov cx,0
mov cl,x ; column
mov dx,0
movdl,bl ; row
mov al,15 ; white
mov ah, 0ch ; put pixel
int 10h
pop cx
dec x
loop ciclo2
;Siguiente mitada de circulo
mov cx,r
mov bx,x0
add bl,r
mov x,bl
mov err,y0ciclo3:mov bl,r
mov al,bl
mul bl
push ax
mov bl,x
sub bl,x0
mov ax,0
mov al,bl
mul bl
mov bx,ax
pop ax
sub ax,bx
mov res,ax
push cx
mov cx,1
call aqui
mov bl,y0
add bl,cl
mov y,bl
movax,0
mov al,err
sub al,y
;jz brinco
;cmp al,1
;jz brinco
;dec ax
;mov cx,ax
;inc x
;ci:
;push cx
;mov cx,0
;mov cl,x ; column
;mov dx,0
;dec err
;mov dl,err ; row
;moval,15 ; white
;mov ah, 0ch ; put pixel
;int 10h
;pop cx
;mov bx,0
;mov bl,err
;pop ax
;push bx
;push ax
;loop ci
;dec x
;mov bl,y
;mov err,bl
;brinco:
mov cx,0
mov cl,x ;...
Regístrate para leer el documento completo.