assembly world cadenas terminadas en dólares




visual masm download (5)

Puede usar el servicio 02 de INT 21H en lugar del servicio 09 .

Aquí está la muestra.

mov dl, '$'

mov ah,02

int 21h

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.


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.


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 \


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


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