Ensamblador - Duda en ensamblador sobre conversiones

 
Vista:
sin imagen de perfil

Duda en ensamblador sobre conversiones

Publicado por Antonio (7 intervenciones) el 03/08/2015 03:07:29
Hola Estimados, alguien podría auxiliar a este novato en Lenguaje ensamblador tengo la siguiente duda, basado en el siguiente código me pueden explicar o mostrar algún ejemplo sobre, con que instrucción puedo introducir por medio del teclado : un numero de 2 cifras en hexadecimal para después convertirlo en decimal y mostrarlo en Pantalla, aquí tengo el cógido pero no se realmente como modificar lo para que pueda hacer lo que se pide:

.MODEL SMALL
.CODE

;leer un carácter e imprimir su código en exa.

org 100h

begin:jmp short main

;--------------------------------------------------------------------------------------------------------------


hexa db 50h ;numero en hexadecimal (aquí se supone que se declara el numero a convertir)

diez db 10 ;divisor de base numérica



;--------------------------------------------------------------------------------------------------------------



main proc near

mov al,hexa

div diez

mov dx,ax

or dx,3030h

mov ah,02h

int 21h

xchg dh,dl

mov ah,02h

int 21h

;...............salir

mov ax,4c00h

int 21h

main endp

end begin

Lo que se puede observar es que estoy declarando el valor hexadecimal y lo que necesito es introducirlo por medio del teclado para que a su vez realice la conversión y lo muestre en pantalla.

Espero sus comentarios, saludos.
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

Duda en ensamblador sobre conversiones

Publicado por MSH (120 intervenciones) el 03/08/2015 19:25:51
El divisor debe ser entre 16 no entre 10, muestro un pequeño ejemplo. Saludos

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
.model small
 
.code
 
numero db 'A'
hexa db 10h
 
org 100h
 
inicio:
 
 
xor ax,ax
xor bx,bx
xor dx,dx
xor cx,cx
 
 
 mov al,numero
 div hexa
 
 mov dl,al
 mov numero,ah
 add dl,30h
 mov ah,02
 int 21h
 
 mov dl,numero
 add dl,30h
 mov ah,02
 int 21h
 
 
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
1
Comentar
sin imagen de perfil

Duda en ensamblador sobre conversiones

Publicado por Antonio (7 intervenciones) el 03/08/2015 21:08:22
Gracias por tu respuesta, pero como ingreso el numero como usuario desde el teclado.
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

Duda en ensamblador sobre conversiones

Publicado por MSH (120 intervenciones) el 04/08/2015 19:41:43
Tienes 2 opciones:

1.-Introducir un caracter a la vez con

mov ah,07h
int 21h

se almacena en registro "al" el caracter

2.- O, introducir toda la cadena con

mov ah,0ah
mov dx,offset campo
int 21h

El la variable campo almacena lo que acabas de teclear
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Duda en ensamblador sobre conversiones

Publicado por Antonio (7 intervenciones) el 10/08/2015 00:45:16
Ok entendido Mil gracias por despejar estas pequeñas dudas, saludos.
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