Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: edwardjoanmedina en 4 Junio 2013, 05:37 am



Título: lenguaje ensamblador , dividir pantalla en cuatro colores y algo mas
Publicado por: edwardjoanmedina en 4 Junio 2013, 05:37 am
Código:
[.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
  1.  
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.