Ensamblador - Bucle

 
Vista:

Bucle

Publicado por sabino (9 intervenciones) el 14/04/2015 17:52:39
Buenas,
Alguien podría decirme por qué el código tal y como está funciona bien pero, si sustituyo el bucle (lo que está entre
los guiones) por lo que está dentro del COMMENT* no funciona y sale del programa? Contretamente en la última línea.
Gracias.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
mov	    ecx,edi                  ;EDI =final de la cadena de enteros invertida
        sub     ecx,offset Intbuf3       ;Resto el offset del principio de la cadena (RESULTADO) para la longitud
	  inc	    ecx                      ;ECX =Longitud
        mov     TextLong3,ecx            ;VARIABLE. Guardo la longitud
 
	  mov	    esi,edi                  ;ESI =principio de cadena a invertir
	  MOV     edi,RResultado           ;EDI =offset donde se guardará
        xor     eax,eax
M3:
  COMMENT *
        mov     al,[esi]
        dec     esi
        or      al,30h
        mov     [edi],al
        inc     edi
        cmp     esi,offset Intbuf3        ;Intbuf3 =final, es decir, principio de cadena invertida
        jnb     M3
* COMMENT
;-----------------------------------------------------------------
        std
	  lodsb
	  or	    al,30H			;convierte en ascii
	  cld
	  stosb
	  loop    M3
;-----------------------------------------------------------------
 
        invoke MessageBox,NULL,ADDR RESULTADO,ADDR AppName,MB_OK  ;RESULTADO es la dirección de la cadena de salida
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder