Tema: Ensamblador
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/08/2005, 11:15
Avatar de Eternal Idol
Eternal Idol
 
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Aca te dejo un codigo para MASM un poco bruto pero que funciona bien. VECTOR4 puede ser definido asi por ejemplo: VECTOR4 db "ABCDE", 0.

Código:
mov si, offset VECTOR4
call strlen
  
mov si, offset VECTOR4
mov di, si
add di, ax
  
revertir:
  mov dx, di
  dec dx
  .if (di == si) || (dx == si)
    jmp listo
  .endif
  dec di
  lodsb
  mov ah, byte ptr [di]
  mov byte ptr [si-1], ah
  mov byte ptr [di], al
  jmp revertir
listo:
Vendria a ser aproximadamente esto:

Código:
  char vector[] = "ABCD";
  char *startPtr = vector;
  char *endPtr = vector;
  endPtr += strlen(vector);

  for (; startPtr != endPtr ;)
  { 
    endPtr--;		
    if (startPtr == endPtr) { break; }
    char temp = *startPtr;
    *startPtr = *endPtr;	
    *endPtr = temp;		
    startPtr++;   
  }
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO