Ayuda con una duda
El problema es sencillo. Un programa que te pide el nombre y despues responde Hola + "nombre"
Para almacenar el nombre yo tengo:
pideNombre db "Dame tu nombre: $"
saludo db "Hola: $"
nombre db 50
mov ah,9
mov dx,offset pideNombre
int 21h
mov ah,10
mov dx,offset nombre
int 21h
mov ah,9
mov dx,offset saludo
int 21h
mov ah,9
mov dx,offset nombre
int 21h
El tema esta en que to quiero pulsar enter y que me responda Hola nombre, pero me salen por pantalla unos simbolos muy raros
Para almacenar el nombre yo tengo:
pideNombre db "Dame tu nombre: $"
saludo db "Hola: $"
nombre db 50
mov ah,9
mov dx,offset pideNombre
int 21h
mov ah,10
mov dx,offset nombre
int 21h
mov ah,9
mov dx,offset saludo
int 21h
mov ah,9
mov dx,offset nombre
int 21h
El tema esta en que to quiero pulsar enter y que me responda Hola nombre, pero me salen por pantalla unos simbolos muy raros
Aqui tienes un ejemplo.
;.......................
; saludo.asm
; (c)masklet63
;
; Ejemplo COM para TASM
; compilar: tasm saludo.asm
; linkar: tlink -t saludo.obj
;.......................
.model tiny
.code
org 100h
Inicio:
jmp Entrada
;--------------------
; Datos del programa
;--------------------
Longitud_Cadena = 50
PideNombre db 'Dame tu nombre: $'
Saludo db 10,13,'Hola: $'
; Buffer de entrada de teclado
Buffer db Longitud_Cadena + 1
db ?
db Longitud_Cadena dup (?)
; Espacio para la cadena ASCIIZ
Nombre db Longitud_Cadena + 1 dup (?),'$'
;------------------
; Rutina principal
;------------------
Entrada proc
;Mostramos el mensaje PideNombre
mov ah,9
mov dx,offset PideNombre
int 21h
; Obtenemos el Nombre
mov ah,0ah
mov dx,offset Buffer
int 21h
; Lo convertimos a ASCIIZ
cld
mov cl,[Buffer+1] ; Longitud de la cadena
xor ch,ch
mov si,offset Buffer + 2
mov di,offset Nombre
rep movsb
xor al,al
stosb
; Mostramos el saludo
mov ah,9
mov dx,offset Saludo
int 21h
; Mostramos el Nombre
mov ah,9
mov dx,offset Nombre
int 21h
; Salimos del programa
mov ax,4c00h
int 21h
Entrada endp
end Inicio
;.......................
; saludo.asm
; (c)masklet63
;
; Ejemplo COM para TASM
; compilar: tasm saludo.asm
; linkar: tlink -t saludo.obj
;.......................
.model tiny
.code
org 100h
Inicio:
jmp Entrada
;--------------------
; Datos del programa
;--------------------
Longitud_Cadena = 50
PideNombre db 'Dame tu nombre: $'
Saludo db 10,13,'Hola: $'
; Buffer de entrada de teclado
Buffer db Longitud_Cadena + 1
db ?
db Longitud_Cadena dup (?)
; Espacio para la cadena ASCIIZ
Nombre db Longitud_Cadena + 1 dup (?),'$'
;------------------
; Rutina principal
;------------------
Entrada proc
;Mostramos el mensaje PideNombre
mov ah,9
mov dx,offset PideNombre
int 21h
; Obtenemos el Nombre
mov ah,0ah
mov dx,offset Buffer
int 21h
; Lo convertimos a ASCIIZ
cld
mov cl,[Buffer+1] ; Longitud de la cadena
xor ch,ch
mov si,offset Buffer + 2
mov di,offset Nombre
rep movsb
xor al,al
stosb
; Mostramos el saludo
mov ah,9
mov dx,offset Saludo
int 21h
; Mostramos el Nombre
mov ah,9
mov dx,offset Nombre
int 21h
; Salimos del programa
mov ax,4c00h
int 21h
Entrada endp
end Inicio
