Está en la página 1de 7

L La as s c co oo or rd de en na ad da as s s so on n: : ( (P P1 1F F, ,P P1 1C C) ) - - ( (P P2 2F F, ,P P2 2C C) ). .

P Po os si ib bl le es s C Ca as so os s: :
0 0) ) S S P P1 1F F = =P P2 2F F y y P P1 1C C = =P P2 2C C l la a l l n ne ea a a a t tr ra az za ar r e es s u un n p pu un nt to o. .

1 1) ) Q Qu ue e l la a l l n ne ea a s se ea a h ho or ri iz zo on nt ta al l. .
S Se e d de ec ci id de e q qu ue e l la a f fo or rm ma a d de e d di ib bu uj ja ar r u un na a l l n ne ea a h ho or ri iz zo on nt ta al l s se er r d de e i iz zq qu ui ie er rd da a a a d de er re ec ch ha a. . L La a p pu un nt ta a d de e l la a r re ec ct ta a
q qu ue e n no o l ll le ev va a f fl le ec ch ha a e es s e el l c co om mi ie en nz zo o y y l la a o ot tr ra a p pu un nt ta a; ; l la a q qu ue e l ll le ev va a f fl le ec ch ha a, , e es s e el l f fi in na al l. .

C Co on n l la as s c co oo or rd de en na ad da as s s se e p pu ue ed de e d de et te er rm mi in na ar r c cu ua an nd do o l la a l l n ne ea a e es s h ho or ri iz zo on nt ta al l y ya a q qu ue e d de eb be e c cu um mp pl li ir r c co on n: :
P P1 1F F = =P P2 2F F p pa ar ra a l lo o c cu ua al l s se e p pu ue ed de en n d da ar r d do os s c ca as so os s c co on n l la as s c co oo or rd de en na ad da as s d de e l la as s c co ol lu um mn na as s e es st to os s c ca as so os s s so on n: :
1 1. .- - P P1 1C C > >P P2 2C C
2 2. .- - P P1 1C C < <P P2 2C C

2 2) ) Q Qu ue e l la a l l n ne ea a s se ea a v ve er rt ti ic ca al l. .

C Co on n l la as s c co oo or rd de en na ad da as s s se e p pu ue ed de e d de et te er rm mi in na ar r c cu ua an nd do o l la a l l n ne ea a e es s v ve er rt ti ic ca al l y ya a q qu ue e d de eb be e
c cu um mp pl li ir r c co on n: :
P P1 1C C = =P P2 2C C p pa ar ra a l lo o c cu ua al l s se e p pu ue ed de en n d da ar r d do os s c ca as so os s c co on n l la as s c co oo or rd de en na ad da as s d de e l la as s f fi il la as s e es st to os s
c ca as so os s s so on n: :
1 1. .- - P P1 1F F > >P P2 2F F
2 2. .- - P P1 1F F < <P P2 2F F





3 3) ) Q Qu ue e l la a l l n ne ea a s se ea a d di ia ag go on na al l c co on n p pe en nd di ie en nt te e n ne eg ga at ti iv va a. .

C Co on n l la as s c co oo or rd de en na ad da as s s se e p pu ue ed de e d de et te er rm mi in na ar r c cu ua an nd do o l la a l l n ne ea a e es s d di ia ag go on na al l c co on n
p pe en nd di ie en nt te e n ne eg ga at ti iv va a y y l lo os s c ca as so os s s so on n l lo os s s si ig gu ui ie en nt te es s: :
1 1. .- - P P1 1F F < <P P2 2F F y y P P1 1C C < <P P2 2C C
2 2. .- - P P1 1F F > >P P2 2F F y y P P1 1C C > >P P2 2C C






4 4) ) Q Qu ue e l la a l l n ne ea a s se ea a d di ia ag go on na al l c co on n p pe en nd di ie en nt te e p po os si it ti iv va a. .
S Se e d de ec ci id de e q qu ue e l la a f fo or rm ma a d de e d di ib bu uj ja ar r u un na a l l n ne ea a d di ia ag go on na al l s se er r d de e a ar rr ri ib ba a a a a ab ba aj jo o. .
L La a p pu un nt ta a d de e l la a r re ec ct ta a q qu ue e n no o l ll le ev va a f fl le ec ch ha a e es s e el l c co om mi ie en nz zo o y y l la a o ot tr ra a p pu un nt ta a; ; l la a
q qu ue e l ll le ev va a f fl le ec ch ha a e es s e el l f fi in na al l. .
C Co on n l la as s c co oo or rd de en na ad da as s s se e p pu ue ed de e d de et te er rm mi in na ar r c cu ua an nd do o l la a l l n ne ea a e es s d di ia ag go on na al l c co on n
p pe en nd di ie en nt te e p po os si it ti iv va a y y l lo os s c ca as so os s s so on n l lo os s s si ig gu ui ie en nt te es s: :
1 1. .- - P P1 1F F < <P P2 2F F y y P P1 1C C > >P P2 2C C
2 2. .- - P P1 1F F > >P P2 2F F y y P P1 1C C < <P P2 2C C



Pg - 1/6 -
COMMENT|
*****************************************************************************
Est e pr ogr ama t r aza r ect as en el di spl ay en el modo 15 ( 640x350) pi xel s l a ent r ada son 4 pal abr as
l as cual es est abl ecen l as coor denadas de dos punt os.
Ent r ada:
Coor denadas del pr i mer punt o, P1F y P1C l as cual es r epr esent an l a f i l a y l a col umna
r espect i vament e. Las coor denadas del segundo punt o, P2F y P2C l as cual es r epr esent an l a f i l a y l a
col umna r espect i vament e. Las l i neas di agonal es se escr i ben de ar r i ba haci a abaj o por l o que el
punt o que se encuent r e mas cer ca del bor de super i or del di spl ay es el que se t omar a como punt o de
par t i da, es deci r , ser a FCORD1 y CCORD1 mi ent r as que el punt o
que se encuent r e abaj o ser a FCORD2 y CCORD2.
****************************************************************************|
. MODEL SMALL
. STACK 256
. DATA
; Punt o Hor i z Ver t
; P1F DW0100H ; 0100H ; 0100H
; P1C DW0100H ; 0100H ; 0040H
; P2F DW0100H ; 0100H ; 0050H
; P2C DW0100H ; 0050H ; 0040H
COMMENT|
Pr ueba1 Pendi ent e( +) ( / ) Del t a( Y) > Del t a( X) .
Pr ueba2 Pendi ent e( +) ( / ) Del t a( X) > Del t a( Y) .
Pr ueba3 Pendi ent e( - ) ( \ ) Del t a( Y) > Del t a( X) .
Pr ueba2 Pendi ent e( - ) ( \ ) Del t a( X) > Del t a( Y) . |
; Pr ueba1 Pr ueba2 Pr ueba3 Pr ueba4
; P1F DW 0040H ; 0040H ; 0040H ; 0040H
; P1C DW 0065H ; 0100H ; 0050H ; 0050H
; P2F DW 0100H ; 0055H ; 0100H ; 0055H
; P2C DW 0050H ; 0050H ; 0065H ; 0100H
; Punt os I nver t i dos
; Pr ueba1 Pr ueba2 Pr ueba3 Pr ueba4
; P1F DW 0100H ; 0055H ; 0100H ; 0055H
; P1C DW 0050H ; 0050H ; 0065H ; 0100H
; P2F DW 0040H ; 0040H ; 0040H ; 0040H
; P2C DW 0065H ; 0100H ; 0050H ; 0050H
P1F DW0040H
P1C DW0065H
P2F DW0100H
P2C DW0050H
FCORD1 DW0000H
CCORD1 DW0000H
FCORD2 DW0000H
CCORD2 DW0000H
ATRI BUTO DB 03H
RETARDO DW0000H
RETARDO1 DW0000H
PENDI ENTE DW?
DI VI SOR DW?
RESTO DW?
CUENTA DW?



. CODE
MOV AX, SEG P1F
MOV DS, AX
; Est abl ece el modo gr af i co 15
MOV AH, 00H ; Ser vi ci o 00H.
MOV AL, 0FH ; Modo gr f i co 15.
I NT 10H

; Se r ecogen l as coor denadas par a su val i daci on.
; Se ver i f i ca si es un punt o.
; Si P1F = P2F y P1C = P2C i mpl i ca que es un punt o.
DI BUJ A: MOV AX, P1F
MOV BX, P2F
CMP AX, BX
J NE PASO2 ; Va al paso2 por que si P1F <> P2F no es hor i zont al .
MOV AX, P1C ; Per o podr i a ser ver t i cal si P1C = P2C.
MOV BX, P2C
CMP AX, BX
J NE PASO1 ; Va al paso1 por que P1F = P2F y P1C <> P2C no es l o que i mpl i ca que es
hor i zont al .
CALL PUNTO
J MP FI N
; Se ver i f i ca si es una hor i zont al .
Pg - 2/6 -
; Si P1F = P2F i mpl i ca que es una l i nea hor i zont al .
PASO1: J A I NVI ERTE ; Si P1C > P2C ve a i nvi er t e.
MOV AX, P1F
MOV FCORD1, AX
MOV FCORD2, AX
MOV AX, P1C
MOV CCORD1, AX
MOV AX, P2C
MOV CCORD2, AX
CALL HORI ZONTAL
J MP FI N
I NVI ERTE: MOV AX, P1F ; I nvi er t e l as coor denadas P1 con P2 par a
MOV FCORD1, AX ; poder hacer l a l i nea de i zqui er da a der echa
MOV FCORD2, AX ; como P1F = P2F es i ndi f er ent e como se
MOV AX, P1C ; se copi en en l as var i abl es.
MOV CCORD2, AX
MOV AX, P2C
MOV CCORD1, AX
CALL HORI ZONTAL
J MP FI N
; Se ver i f i ca si es una ver t i cal .
; Si P1C = P2C i mpl i ca que es una l i nea ver t i cal .
PASO2: MOV AX, P1C ; Si P1F <> P2F y P1C <> P2C es una di agonal y
MOV BX, P2C ; va al paso 3.
CMP AX, BX
J NE PASO3
MOV AX, P1F ; Si P1F <> P2F y P1C = P2C es una ver t i cal
MOV BX, P2F
CMP AX, BX
J A I NVI ERTE1 ; Si P1F > P2F ve a i nvi er t e1
MOV AX, P1C ; como P1C = P2C es i ndi f er ent e como se
MOV CCORD1, AX ; se copi en en l as var i abl es.
MOV CCORD2, BX
MOV AX, P1F ; Como P1F < P2F no se i nvi er t en l as
MOV FCORD1, AX ; var i abl es par a di buj ar de ar r i ba a abaj o.
MOV AX, P2F
MOV FCORD2, BX
CALL VERTI CAL
J MP FI N
I NVI ERTE1: MOV BX, P2C ; Si P1F > P2F se i nvi er t en l as
MOV CCORD1, BX ; var i abl es par a di buj ar de ar r i ba a abaj o.
MOV CCORD2, BX
MOV AX, P1F
MOV FCORD2, AX
MOV AX, P2F
MOV FCORD1, AX
CALL VERTI CAL
J MP FI N

; Aqu se sabe con segur i dad que es una l i nea di agonal .
; Ent onces hay que ver i f i car que t i po de pendi ent e posee.
PASO3: MOV AX, P1F
MOV BX, P2F
CMP AX, BX
J A CASO2 ; Si P1F > P2F ve a CASO2.
MOV AX, P1C ; Si no P2F > P1F cont i nua.
MOV BX, P2C
CMP AX, BX ; Si P1C > P2C ve a CASO3.
J NB CASO3 ; Si P1C > P2C posee pendi ent e posi t i va.
CASO1: MOV AX, P1F ; Si P2C > P1C posee pendi ent e negat i va
MOV FCORD1, AX ; ent onces P1 y P2 est an or denados de
MOV AX, P1C ; ar r i ba a abaj o como se esper aba
MOV CCORD1, AX ; por l o que FCORD1 y CCORD1 se car gan con
MOV AX, P2F ; P1 y FCORD2 y CCORD2 se car gan con P2.
MOV FCORD2, AX
MOV AX, P2C
MOV CCORD2, AX
CALL PENDI ENTE_N ; Se l l ama a l a r ut i na de pendi ent e negat i va
J MP FI N

; Est e es el caso cuando P1F > P2F.
CASO2: MOV AX, P1C
MOV BX, P2C
CMP AX, BX
J NA CASO4 ; Aqu se det er mi na que l a pendi ent e es posi t i va.
MOV AX, P2F
MOV FCORD1, AX ; Si P1C > P2C posee pendi ent e negat i va
Pg - 3/6 -
MOV AX, P2C ; ent onces P1 y P2 est an or denados de
MOV CCORD1, AX ; abaj o a ar r i ba como no se esper aba
MOV AX, P1F ; por l o que FCORD1 y CCORD1 se car gan con
MOV FCORD2, AX ; P2 y FCORD2 y CCORD2 se car gan con P1
MOV AX, P1C ; i nvi r t i endo asi l as var i abl es donde se
MOV CCORD2, AX ; al macenan P1 y P2.
CALL PENDI ENTE_N ; Se l l ama a l a r ut i na de pendi ent e negat i va
J MP FI N
CASO3: MOV AX, P1F ; P2F > P1F y P1C > P2C ent onces posee
MOV FCORD1, AX ; pendi ent e posi t i va con P1 y P2 col ocados de
MOV AX, P1C ; ar r i ba a abaj o como se esper aba
MOV CCORD1, AX ; por l o que FCORD1 y CCORD1 se car gan con
MOV AX, P2F ; P1 y FCORD2 y CCORD2 se car gan con P2.
MOV FCORD2, AX
MOV AX, P2C
MOV CCORD2, AX
CALL PENDI ENTE_P ; Se l l ama a l a r ut i na de pendi ent e posi t i va
J MP FI N
CASO4: MOV AX, P2F ; P1F > P2F y P2C > P1C ent onces posee
MOV FCORD1, AX ; pendi ent e posi t i va con P1 y P2 col ocados de
MOV AX, P2C ; abaj o a ar r i ba como no se esper aba
MOV CCORD1, AX ; por l o que FCORD1 y CCORD1 se car gan con
MOV AX, P1F ; P2 y FCORD2 y CCORD2 se car gan con P1.
MOV FCORD2, AX
MOV AX, P1C
MOV CCORD2, AX
CALL PENDI ENTE_P ; Se l l ama a l a r ut i na de pendi ent e posi t i va
J MP FI N

; *************************
; AREA DE SUB RUTI NAS
; *************************
; Enci ende un punt o en l a pant al l a.
PUNTO: MOV AH, 0CH
MOV BH, 00H
MOV AL, ATRI BUTO ; Val or del pi xel .
MOV DX, P1F; Val or de f i l a.
MOV CX, P1C ; Val or de col umna.
I NT 10H
RET

; Tr aza una l i nea hor i zont al .
HORI ZONTAL: MOV BP, CCORD2 ; Si l a r ect a va de 1 a 5, 5 - 1 = 4 y r eal ment e
SUB BP, CCORD1 ; que son el 1, 2, 3 y 4 per o deber i a ser
I NC BP ; 1, 2, 3, 4 y 5, por eso se l e suma 1 a BP.
MOV CX, CCORD1 ; Val or de col umna.
LAZO1: MOV AH, 0CH
MOV BH, 00H
MOV AL, ATRI BUTO ; Val or del pi xel .
MOV DX, FCORD1 ; Val or de f i l a.
I NT 10H
CALL DELAY
I NC CX
DEC BP
J NZ LAZO1
RET
; Tr aza una l i nea ver t i cal .
VERTI CAL: MOV BP, FCORD2
SUB BP, FCORD1
I NC BP
MOV DX, FCORD1 ; Val or de f i l a.
LAZO2: MOV AH, 0CH
MOV BH, 00H
MOV AL, ATRI BUTO ; Val or del pi xel .
MOV CX, CCORD1 ; Val or de col umna.
I NT 10H
CALL DELAY
I NC DX
DEC BP
J NZ LAZO2
RET

; Tr aza una l i nea di agonal con pendi ent e negat i va.
PENDI ENTE_N: MOV AX, CCORD2 ; Se aver i gua cual es el gr adi ent e, es deci r
SUB AX, CCORD1 ; en cual de l os dos ej es hay l a mayor
MOV BX, FCORD2 ; var i aci on.
SUB BX, FCORD1
Pg - 4/6 -
CMP AX, BX
J NAE I NVI ERTE2 ; Si var i aci on en X < var i aci on en Y ve a I NVI ERTE2.
MOV BP, 0000H
MOV DI VI SOR, BX ; La var i aci on del Ej e Y ser a usado como
MOV DX, 0000H ; denomi nador o DI VI SOR por que var i a menos.
DI V BX
MOV RESTO, DX ; DX que es el r est o se guar da en RESTO.
MOV CUENTA, 0000H ; Est a var i abl e es par a acumul ar el er r or .
MOV PENDI ENTE, AX ; I ndi ca el numer o de pi xel s que se van a encender en l a di r ecci on
que mas var i a, que par a est e caso es X.
MOV DX, FCORD1 ; Val or de f i l a.
MOV CX, CCORD1 ; Val or de col umna.
LAZO30: MOV DI , PENDI ENTE
ADD DI , BP ; BP puede ser 1 o 0 e i ndi ca si se enci ende o no un pi xel adi ci onal en
l a di r ecci on que mas var i a.
MOV BP, 0000H
LAZO31: MOV AH, 0CH
MOV BH, 00H
MOV AL, ATRI BUTO ; Val or del pi xel .
I NT 10H
CALL DELAY
I NC CX ; Est a es l a var i aci on de X ( l a col umna) .
DEC DI
J NZ LAZO31
I NC DX ; Se pasa a l a si gui ent e f i l a.
CMP DX, FCORD2 ; si DX ( f i l a) = Fi l a coor dena2 es el f i nal
J AE SI GU1 ; de l a r ect a.
MOV AX, RESTO ; Se hace l a suma acumul at i va del r est o y
ADD AX, CUENTA ; se al macena en CUENTA.
MOV CUENTA, AX
CMP AX, DI VI SOR ; Si CUENTA >= DI VI SOR ent onces BP = 1.
J NAE SI GUE1
I NC BP
MOV AX, CUENTA ; Se l e r est a al er r or el di vi sor y se
SUB AX, DI VI SOR ; conser va l o que queda del er r or , si es
MOV CUENTA, AX ; que est e es mayor que DI VI SOR.
SI GUE1: CMP DX, FCORD2 ; DX ( f i l a) < Fi l a coor dena2 ve a LAZO30.
J NAE LAZO30
SI GU1: RET

; Aqui l a var i aci on en Y > var i aci on en X.
I NVI ERTE2: XCHG AX, BX ; I nt er cambi a Ej e X con Ej e Y, es deci r , el
MOV BP, 0000H ; mayor ser a usado como numer ador .
MOV DI VI SOR, BX
MOV DX, 0000H
DI V BX
MOV RESTO, DX ; DX que es el r est o se guar da en RESTO.
MOV CUENTA, 0000H ; Est a var i abl e es par a acumul ar el er r or .
MOV PENDI ENTE, AX ; I ndi ca el numer o de pi xel s que se van a encender en l a di r ecci on
que mas var i a que par a est e caso es Y.
MOV DX, FCORD1 ; Val or de f i l a.
MOV CX, CCORD1 ; Val or de col umna.
LAZO32: MOV DI , PENDI ENTE
ADD DI , BP ; BP puede ser 1 o 0 e i ndi ca si se enci ende o no un pi xel adi ci onal en
l a di r ecci on que mas var i a.
MOV BP, 0000H
LAZO33: MOV AH, 0CH
MOV BH, 00H
MOV AL, ATRI BUTO ; Val or del pi xel .
I NT 10H
CALL DELAY
I NC DX ; Est a es l a var i aci on de Y ( l a f i l a) .
CMP DX, FCORD2 ; DX ( f i l a) = Fi l a coor dena2 es el f i nal de
J AE SI GU2 ; l a r ect a.
DEC DI
J NZ LAZO33
I NC CX ; Se pasa a l a si gui ent e col umna.
MOV AX, RESTO ; Se hace l a suma acumul at i va del r est o y
ADD AX, CUENTA ; se al macena en CUENTA.
MOV CUENTA, AX
CMP AX, DI VI SOR ; Si CUENTA >= DI VI SOR ent onces BP = 1.
J NAE SI GUE2
I NC BP
MOV AX, CUENTA ; Se l e r est a al er r or el di vi sor y se
SUB AX, DI VI SOR ; conser va l o que queda del er r or , si es
MOV CUENTA, AX ; que est e es mayor que DI VI SOR.
SI GUE2: CMP DX, FCORD2 ; DX ( f i l a) < Fi l a coor dena2 ve a LAZO32.
Pg - 5/6 -
J NAE LAZO32
SI GU2: RET

; Tr aza una l i nea di agonal con pendi ent e posi t i va.
PENDI ENTE_P: MOV AX, CCORD1 ; Se aver i gua cual es el gr adi ent e, es deci r
SUB AX, CCORD2 ; en cual de l os dos ej es hay l a mayor
MOV BX, FCORD2 ; var i aci on.
SUB BX, FCORD1
CMP AX, BX
J NAE I NVI ERTE3 ; Si var i aci on en X < var i aci on en Y ve a
MOV BP, 0000H ; I NVI ERTE3.
MOV DI VI SOR, BX ; La var i aci on del Ej e Y ser a usado como
MOV DX, 0000H ; denomi nador o DI VI SOR por que var i a menos.
DI V BX
MOV RESTO, DX ; DX que es el r est o se guar da en RESTO.
MOV CUENTA, 0000H ; Est a var i abl e es par a acumul ar el er r or .
MOV PENDI ENTE, AX ; I ndi ca el numer o de pi xel s que se van a encender en l a di r ecci on
que mas var i a, que par a est e caso es X.
MOV DX, FCORD1 ; Val or de f i l a.
MOV CX, CCORD1 ; Val or de col umna.
LAZO40: MOV DI , PENDI ENTE
ADD DI , BP ; BP puede ser 1 o 0 e i ndi ca si se enci ende o no un pi xel adi ci onal
en l a di r ecci on que mas var i a.
MOV BP, 0000H
LAZO41: MOV AH, 0CH
MOV BH, 00H
MOV AL, ATRI BUTO ; Val or del pi xel .
I NT 10H
CALL DELAY
DEC CX ; Est a es l a var i aci on de X ( l a col umna) .
DEC DI
J NZ LAZO41
I NC DX ; Se pasa a l a si gui ent e f i l a.
CMP DX, FCORD2 ; si DX ( f i l a) = Fi l a coor dena2 es el f i nal
J AE SI GU4 ; de l a r ect a.
MOV AX, RESTO ; Se hace l a suma acumul at i va del r est o y
ADD AX, CUENTA ; se al macena en CUENTA.
MOV CUENTA, AX
CMP AX, DI VI SOR ; Si CUENTA >= DI VI SOR ent onces BP = 1.
J NAE SI GUE4
I NC BP
MOV AX, CUENTA ; Se l e r est a al er r or el di vi sor y se
SUB AX, DI VI SOR ; conser va l o que queda del er r or , si es
MOV CUENTA, AX ; que est e es mayor que DI VI SOR.
SI GUE4: CMP DX, FCORD2 ; DX ( f i l a) < Fi l a coor dena2 ve a LAZO40.
J NAE LAZO40
SI GU4: RET
I NVI ERTE3: XCHG AX, BX ; I nt er cambi a Ej e X con Ej e Y, es deci r , el
MOV BP, 0000H ; mayor ser a usado como numer ador .
MOV DI VI SOR, BX
MOV DX, 0000H
DI V BX
MOV RESTO, DX ; DX que es el r est o se guar da en RESTO.
MOV CUENTA, 0000H ; Est a var i abl e es par a acumul ar el er r or .
MOV PENDI ENTE, AX ; I ndi ca el numer o de pi xel s que se van a encender en l a di r ecci on
que mas var i a que par a est e caso es Y.
MOV DX, FCORD1 ; Val or de f i l a.
MOV CX, CCORD1 ; Val or de col umna.
LAZO42: MOV DI , PENDI ENTE
ADD DI , BP ; BP puede ser 1 o 0 e i ndi ca si se enci ende o no un pi xel adi ci onal
en l a di r ecci on que mas var i a.
MOV BP, 0000H
LAZO43: MOV AH, 0CH
MOV BH, 00H
MOV AL, ATRI BUTO ; Val or del pi xel .
I NT 10H
CALL DELAY
I NC DX ; Est a es l a var i aci on de Y ( l a f i l a) .
CMP DX, FCORD2 ; DX ( f i l a) = Fi l a coor dena2 es el f i nal de
J AE FI N ; l a r ect a.
DEC DI
J NZ LAZO43
DEC CX ; Se pasa a l a si gui ent e col umna.
MOV AX, RESTO ; Se hace l a suma acumul at i va del r est o y
ADD AX, CUENTA ; se al macena en CUENTA.
MOV CUENTA, AX
CMP AX, DI VI SOR ; Si CUENTA >= DI VI SOR ent onces BP = 1.
Pg - 6/6 -
J NAE SI GUE3
I NC BP
MOV AX, CUENTA ; Se l e r est a al er r or el di vi sor y se
SUB AX, DI VI SOR ; conser va l o que queda del er r or , si es
MOV CUENTA, AX ; que est e es mayor que DI VI SOR.
SI GUE3: CMP DX, FCORD2 ; DX ( f i l a) < Fi l a coor dena2 ve a LAZO42.
J NAE LAZO42

FI N: MOV AH, 00H ; Esper a una t ecl a par a t er mi nar .
I NT 16H
MOV AH, 00H ; Est abl ece el modo t ext o 2
MOV AL, 02H
I NT 10H
MOV AX, 4C00H ; Ret or na al DOS.
I NT 21H
RET

DELAY: MOV RETARDO1, 0005H
DEL0: MOV RETARDO, 2000H
DEL1: DEC RETARDO
J NZ DEL1
DEC RETARDO1
J NZ DEL0
RETN
END

También podría gustarte