lenguaje ensamblador , dividir pantalla en cuatro colores y algo mas

Iniciado por edwardjoanmedina, 4 Junio 2013, 05:37 AM

0 Miembros y 1 Visitante están viendo este tema.

edwardjoanmedina


[.MODEL SMALL
.STACK 100H
.DATA

 DATO DB "EDWARD MEDINA","$"
 FILA DB 00H
 COLU DB 00H
 FILA1 DB 00H
 COLU1 DB 00H
 FILA2 DB 00H
 COLU2 DB 00H
 FILA3 DB 00H
 COLU3 DB 00H
 FILA4 DB 00H
 COLU4 DB 00H



.CODE
MOV AX,@DATA
MOV DS,AX
MOV ES,AX
       MOV  BH,26H
       MOV  CX,0000H
       MOV  DX,0C27H
       CALL LIMPI1
       MOV  BH,16H
       MOV  CX,0027H
       MOV  DX,0C4FH
       CALL LIMPI2
       MOV  BH,46H
       MOV  CX,0C00H
       MOV  DX,1827H
       CALL LIMPI3
       MOV  BH,0E6H
       MOV  CX,0C27H
       MOV  DX,184FH
       CALL LIMPI4
       MOV  DH,FILA
       MOV  DL,COLU
       CALL CURSOR
       CALL MUESTRA
 LAZO1:CALL TECLAB
       CMP  AL,"D"
       JE   LIMPIA
       CMP  AL,"I"
       JE   LIMPIB
       JMP LAZO1
LIMPIA:MOV  BH,46H
       MOV  CX,0000H
       MOV  DX,0C27H
       CALL LIMPI5
       MOV  BH,26H
       MOV  CX,0027H
       MOV  DX,0C4FH
       CALL LIMPI6
       MOV  BH,0E6H
       MOV  CX,0C00H
       MOV  DX,1827H
       CALL LIMPI7
       MOV  BH,16H
       MOV  CX,0C27H
       MOV  DX,184FH
       CALL LIMPI8
       MOV  DH,FILA1
       MOV  DL,COLU1
       CALL CURSOR1
LIMPIB:MOV  BH,16H
       MOV  CX,0000H
       MOV  DX,0C27H
       CALL LIMPI9
       MOV  BH,0E6H
       MOV  CX,0027H
       MOV  DX,0C4FH
       CALL LIMPI10
       MOV  BH,26H
       MOV  CX,0C00H
       MOV  DX,1827H
       CALL LIMPI11
       MOV  BH,46H
       MOV  CX,0C27H
       MOV  DX,184FH
       CALL LIMPI12
       MOV  DH,FILA2
       MOV  DL,COLU2
       CALL CURSOR2
LAZO2:CALL TECLAC
       CMP  AL,"D"
       JE   LIMPIC
       CMP  AL,"I"
       JE   LIMPID
      JMP   LAZO2
LIMPIC:MOV  BH,0E6H
       MOV  CX,0000H
       MOV  DX,0C27H
       CALL LIMP1
       MOV  BH,46H
       MOV  CX,0027H
       MOV  DX,0C4FH
       CALL LIMP2
       MOV  BH,16H
       MOV  CX,0C00H
       MOV  DX,1827H
       CALL LIMP3
       MOV  BH,26H
       MOV  CX,0C27H
       MOV  DX,184FH
       CALL LIMP4
       MOV  DH,FILA3
       MOV  DL,COLU3
       CALL CURSOR3
LIMPID:MOV  BH,0E6H
       MOV  CX,0000H
       MOV  DX,0C27H
       CALL LIMP5
       MOV  BH,46H
       MOV  CX,0027H
       MOV  DX,0C4FH
       CALL LIMP6
       MOV  BH,16H
       MOV  CX,0C00H
       MOV  DX,1827H
       CALL LIMP7
       MOV  BH,26H
       MOV  CX,0C27H
       MOV  DX,184FH
       CALL LIMP8
       MOV  DH,FILA4
       MOV  DL,COLU4
       CALL CURSOR4
      .EXIT(0)
LIMPI1:MOV AH,06H
      MOV AL,00H
      INT 10H
      RET
LIMPI2:MOV AH,06H
      MOV AL,00H
      INT 10H
      RET
LIMPI3:MOV AH,06H
      MOV AL,00H
      INT 10H
      RET
LIMPI4:MOV AH,06H
       MOV AL,00H
       INT 10H
       RET
LIMPI5:MOV AH,06H
      MOV AL,00H
      INT 10H
      RET
LIMPI6:MOV AH,06H
      MOV AL,00H
      INT 10H
      RET
LIMPI7:MOV AH,06H
      MOV AL,00H
      INT 10H
      RET
LIMPI8:MOV AH,06H
      MOV AL,00H
      INT 10H
      RET
LIMPI9:MOV AH,06H
      MOV AL,00H
      INT 10H
      RET
LIMPI10:MOV AH,06H
      MOV AL,00H
      INT 10H
      RET
LIMPI11:MOV AH,06H
      MOV AL,00H
      INT 10H
      RET
LIMPI12:MOV AH,06H
      MOV AL,00H
      INT 10H
      RET
LIMP1:MOV AH,06H
      MOV AL,00H
      INT 10H
      RET
LIMP2:MOV AH,06H
      MOV AL,00H
      INT 10H
      RET
LIMP3:MOV AH,06H
      MOV AL,00H
      INT 10H
      RET
LIMP4:MOV AH,06H
      MOV AL,00H
      INT 10H
      RET
LIMP5:MOV AH,06H
      MOV AL,00H
      INT 10H
      RET
LIMP6:MOV AH,06H
      MOV AL,00H
      INT 10H
      RET
LIMP7:MOV AH,06H
      MOV AL,00H
      INT 10H
      RET
LIMP8:MOV AH,06H
      MOV AL,00H
      INT 10H
      RET
CURSOR: MOV AH,02H
       MOV BH,00H
       INT 10H
       RET
CURSOR1: MOV AH,02H
        MOV AL,00H
        INT 10H
        RET
CURSOR2: MOV AH,02H
        MOV  AL,00H
        INT 10H
        RET
CURSOR3: MOV AH,02H
        MOV AL,00H
        INT 10H
        RET
CURSOR4:MOV AH,02H
       MOV AL,00H
       INT 10H
       RET
MUESTRA: MOV AH,09H
        LEA DX,DATO
        INT 21H
        RET
TECLAB:  MOV AH,10H
        INT 16H
        RET
TECLAC:  MOV AH,10H
        INT 16H
        RET
        END
code=mpasm]
Código (asm) [Seleccionar]

foro del elhacker estoy haciendo un programa en assembler, usando turbo debugger, donde la pantalla me la divida en cuatro colores: verde,azul,rojo,amarillo. quiero que cuando pulse la tecla "d" varias veces, rote lo colores en sentido de las agujas del reloj y que cuando pulse la tecla "i" rote los colores en sentido contrario a las aguajs del reloj.coye trate de hacer el programa, cuando le doy a la "i" me rota los colores en sentido contrario a las agujas del reloj, pero cuando le doy a la "d".  
este es el programa que hize, revisenlo para ver si tengo un error

mi nombre edward joan medina




el problema que se me presenta es que cuando le doy a la de "d" para rotar colores. me los rota a la izquierda y realmente quiero q me rote a la derecha.