Cambiar caracteres de un mensaje en ensamblador
Publicado por Andrés (4 intervenciones) el 16/08/2020 19:47:35
Hola, tengo un trabajo que vale muchos puntos y necesito hacer un reemplazo de caracteres en una cadena que el usuario ingresa pero no tengo idea de cómo hacer el cambio, lo que hay que hacer realmente es traducir de Malespín y viceversa que es un tipo de codificación por así decirlo, y también de un tipo de codificación numérica que es por ejemplo reemplazar las A por 4 y las T por 7 por decir un ejemplo.
Pero no logro hacerlo...
Acá está mi código, de verdad les agradezco que me ayuden porque queda poco tiempo para la entrega del trabajo:
Pero no logro hacerlo...
Acá está mi código, de verdad les agradezco que me ayuden porque queda poco tiempo para la entrega del trabajo:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
.model small
.stack
.data
mensaje db "Curso: IC1400 Estudiante: Andres Martinez Fumero$"
mensaje2 db "Tarea de ASM Version 0.74-3 Fecha de Creacion: 15/08/20$"
salto db 13, 10, "$"
info db 13,10, "Ingrese", 13, 10
i6 db "-H para ayuda,",13, 10
i1 db "-M para Malespin,",13, 10
i2 db "-E para Codif Num a Espanol",13, 10
i3 db "-N para Espanol a Codif Num", 13, 10
i4 db "-S para salir",13, 10
i5 db "Opcion $"
.code
main proc ; Inicia el proceso
mov ax,@data ; Se hace el set de @data
mov ds,ax ; Movemos los datos de data
mov ah,09h ; Función (Print String)
mov dx, offset mensaje ; Carga el mensaje a printear
int 21h ; Ejecuta la interrupcion 21h que llama al DOS
mov ah,09h ; Función (Print String)
mov dx, offset salto ; Carga el mensaje a printear
int 21h ; Ejecuta la interrupcion 21h que llama al DOS
mov ah,09h ; Función (Print String)
mov dx, offset mensaje2 ; Carga el mensaje a printear
int 21h ; Ejecuta la interrupcion 21h que llama al DOS
mov ah,09h ; Función (Print String)
mov dx, offset salto ; Carga el mensaje a printear
int 21h ; Ejecuta la interrupcion 21h que llama al DOS
call mostrarInfo
;mov ah,09h ; Función (Print String)
;mov dx, offset info ; Carga el mensaje a printear
;int 21h ; Ejecuta la interrupcion 21h que llama al DOS
call leerLetra
mov ax, 4c00h ; salir del programa
int 21h
mostrarInfo proc ; Funcion que muestra la info del programa
mov ah,09h ; Función (Print String)
mov dx, offset info ; Carga el mensaje a printear
int 21h ; Ejecuta la interrupcion 21h que llama al DOS
ret
mostrarInfo endp
leerLetra proc
xor ax,ax ;Funcion 0
int 16h ;del teclado
cmp al,'H' ; Se compara con el carcter H
je Ayuda ; Salta a la etiqueta Ayuda
cmp al,'M' ; Se compara con el caracter M
je Malespin ; Salta a la etiqueta Malespin
cmp al,'E' ; Se compara con el caracter E
je Decodificar ; Salta a la etiqueta Decodificar
cmp al,'N' ; Se compara con el caracter N
je Codificar ; Salta a la etiqueta Codificar
cmp al,'S' ; Se compara con el caracter S
je Salir
jmp leerLetra
leerLetra endp
Ayuda: ; Se muestra la ayuda
call mostrarInfo
jmp leerLetra
Malespin:
jmp leerLetra
Decodificar: ; Se decodifica y se vuelve al menú
jmp leerLetra
Codificar: ; Se codifica y se vuelve al menú
jmp leerLetra
Salir: ; Se sale del programa
ret
main endp
end main
Valora esta pregunta
0