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++;
}