Ensamblador - circulo

 
Vista:

circulo

Publicado por jorge (1 intervención) el 11/07/2006 15:57:07
alguien puede mandarme el codigo en el 8086 para dibujar un circulo porfavor?, la verdad es que me urge demasiado, espero sus respuestas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:circulo

Publicado por UASLP (1 intervención) el 26/04/2008 04:04:08
.model small
.stack 100h
.data
ybeg dw 90
xbeg dw 90
xend dw 90h
y dw 96h
x dw 92h
x1 dw 130h
y1 dw 100h
xc dw 90
yc dw 90
rad dw 90
pc dw 0
vaux1 dw 1
vincx dw 0
vincy dw 0
vaux2 dw 0
;bandera dw 0

.code

mov ah,0 ;peticion para designar el modo
mov al,12h ;modo grafico 320x200 256c
int 10h

push ds
mov ax,@data
mov ds,ax
call circulo
salir:
mov ah,0 ;espera que se pulse una tecla
int 16h
pop ds
mov ah,0 ;regresa al modo 80x25
mov al,2
int 10h
mov ah,4ch ;regresa al so
int 21h

circulo proc near
mov ax,@data
mov ds,ax
mov ax,xc
xor ax,ax
mov xc,ax
mov ax,1
sbb rad,ax ;pc=rad-1
mov ax,rad
mov pc,ax
jmp short a226
a58:
mov bx,pc
or bx,bx
jl short a114 ;if pc>0
inc xc ;xc++
mov ax,xc
jmp short a142
a114:
inc xc
dec yc
mov ax,xc
sub ax,yc
a142:
shl ax,1 ;2*xc+1
inc ax
sub pc,ax
call pxp

a226:
mov ax,xc
cmp ax,yc ;while(xc<yc)
jl short a58
ret
pxp proc near
mov ax,x1 ;mov cx,x
add ax,xc ;mov dx,y
mov cx,ax
mov ax,y1
add ax,yc
mov dx,ax
call pixel
mov ax,x1 ;mov cx,x
sub ax,xc ;mov dx,y
mov cx,ax
mov ax,y1
add ax,yc
mov dx,ax
call pixel
mov ax,x1 ;mov cx,x
add ax,xc ;mov dx,y
mov cx,ax
mov ax,y1
sub ax,yc
mov dx,ax
call pixel
mov ax,x1 ;mov cx,x
sub ax,xc ;mov dx,y
mov cx,ax
mov ax,y1
sub ax,yc
mov dx,ax
call pixel
mov ax,x1 ;mov cx,x
add ax,yc ;mov dx,y
mov cx,ax
mov ax,y1
add ax,xc
mov dx,ax
call pixel
mov ax,x1 ;mov cx,x
sub ax,yc ;mov dx,y
mov cx,ax
mov ax,y1
add ax,xc
mov dx,ax
call pixel
mov ax,x1 ;mov cx,x
add ax,yc ;mov dx,y
mov cx,ax
mov ax,y1
sub ax,xc
mov dx,ax
call pixel
mov ax,x1 ;mov cx,x
sub ax,yc ;mov dx,y
mov cx,ax
mov ax,y1
sub ax,xc
mov dx,ax
call pixel

ret
pxp endp
circulo endp


pixel proc near
mov ah,12
mov al,10 ;color
mov bh,0 ;Pagina
int 10h
ret
pixel endp
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar