assembly - world - cadenas terminadas en dólares




visual masm download (4)

En mi clase de lenguaje ensamblador, nuestra primera tarea fue escribir un programa para imprimir una cadena simple terminada en dólares en DOS. Se veía algo como esto:

BITS 32
    global _main

section .data
    msg db "Hello, world!", 13, 10, ’$’

section .text
_main:
mov ah, 9
mov edx, msg
int 21h
ret

Según tengo entendido, el signo $ sirve para terminar el aguijón como lo hace nulo en C. Pero, ¿qué hago si quiero poner un signo de dólar en la cadena (como quiero imprimir "cuesta $ 30")? Parece una pregunta simple, pero mi profesor no conocía la respuesta y parece que no la encuentro usando una búsqueda en Google.


Pruebe con '$$', '\ 044' (octal) o '\ x24' (hexadecimal)


Um. Podrías escribir el ensamblaje que se tomaría en cuenta para el $ escapado, por ejemplo \$ ? Pero luego tu \ convierte en un símbolo especial también, y necesitas usar \\ para imprimir un \


Una forma es encontrar la llamada que imprime un solo caracter. Puedes imprimir cualquier personaje con eso. Rompe la cuerda e imprime "cuesta", luego el '$', y finalmente, "30". Más trabajo, pero hace el trabajo bien.


No puede usar el servicio 0x09 de DOS para mostrar $ signos, necesitará usar 0x02 . Mira aquí .