Ensamblador - Invertir cadena

 
Vista:

Invertir cadena

Publicado por Mors45 (1 intervención) el 22/03/2011 11:57:47
Buenas, haber si me pudieran hechar una mano con este programilla.EL programa original es este , que lo que hace es escribir HOLA y luego OHLA.Lo que me piden para poder seguir avanzando es modificar los MOV's entre el 1º int 21 y el 2º para que escriba ALOH, es decir hola al revés:Se pueden modificar y añadir, pero no doy con la solución, estoy aprendiendo.Gracias
.model small
.586
.stack 100h
.data
byte1 db 1
byte2 db 0
word1 dw 1234h
word2 dw 0
string db "Hola", 0dh, 0ah,"$"
;---- esto es un comentario
.code
MAIN PROC
Mov ax, @data
Mov ds, ax
Mov dx, offset string
Mov ah, 9
Int 21h; hasta aqui imprime Hola
Mov bx, offset string
Mov al, [bx]
Mov ah, [bx+1]
Mov [bx], ah
Mov [bx+1],al
Mov ah,9
Mov dx, offset string
Int 21h ;
Mov ax, 4c00h
Int 21h ;
Main endp
End main
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

Invertir cadena

Publicado por MSH (120 intervenciones) el 01/04/2011 04:59:12
Saludos.No se si te sirva esto

.model small
.486 ;puedes prescindir de esta directiva
.stack 100h
.data
byte1 db 1
byte2 db 0
word1 dw 1234h
word2 dw 0

string db 'Hola', 0dh, 0ah,'$'
;---- esto es un comentario
.code
inicio:
Mov ax, @data
Mov ds, ax
Mov dx, offset string
Mov ah, 9
Int 21h; hasta aqui imprime Hola
;--------------------------------------------------------

xor bx,bx
xor dx,dx
lea bx,string
add bx,3
mov cx,0004h
ciclo:
mov dl,[bx]
mov ah,02h
int 21h
dec bx
loop ciclo


Mov ax, 4c00h
Int 21h ;
end inicio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar