Jump to content

Inverter uma string


blasted
 Share

Recommended Posts

Boa pessoal,

tenho uma pequena dúvida.

Já tenho a minha string a ser invertida, mas gostava de a conseguir guardar noutro array antes de fazer o output dela, e é isso que não estou a conseguir.

Se poderem dar uma pequena ajuda, agradecia muito.

Este é um pequeno excerto do código:

imaginando que a [string1] tem o valor "asdf".

O output é "fdas"

Está tudo bem até aí, só que não sei como armazenar esse valor na [string2]

;guardar o tamanho da string para o contador
mov  cx, ax
sub  ax, 1
mov  bx, ax
inverter:
push  cx
lea  dx, [string1 + bx]
	; guardar o valor de bx usado para index invertido
push  bx
mov  di,dx
   ; CX = number of bytes (Apenas um caracter)
mov  cx,1

   ; output
mov  ah,40h
mov  bx,1
int  21h

	; restaurar o valor de bx usado para o index invertido
pop  bx
dec  bx
	; restaurar o valor de CX para o loop
pop  cx
loop  inverter
;esta parte não está a fazer nada... ainda
lea dx, [string2]
mov  ah,40h
mov  bx,1
int  21h
Edited by blasted
Link to comment
Share on other sites

1) Antes de entrar no ciclo 'inverter' mete 'lea di, [string2]'

2) Tira a instrução 'mov di,dx', que não serve para nada

3) Em vez dela mete 'mov al, [dx]' e 'mov [di], al'

4) Depois do 'dec bx' mete 'inc di'

5) Após 'loop inverter' mete 'xor al, al' e 'mov [di], al'

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.