pregunta de nobato en asm

Iniciado por B14573R, 12 Diciembre 2009, 03:16 AM

0 Miembros y 1 Visitante están viendo este tema.

B14573R

hola chicos del foro espero no molestar solo nececito ayuda con un pequeño programa que me sueme  los que pasa que al momento de sumar y guardar el resultado y mostrarlo lo muestra como una letra no como un numero ¿que debo de hacer ? ayudita porfavor e qui el code


Código (asm) [Seleccionar]
.model small
.code

mas segment
assume cs:mas, ds:mas, ss:mas
org 100h
       


start: jmp inicio


inicio:
mov ax,mas
mov ds,ax
mov ax,0023h
mov bx,0022h
adc ax,bx
mov dx,ax
mov ah,02h
int 21h

mov ah,10h
int 16h
mov ax,4ch
int 21h
mas  ends
end  start

porfavor  :rolleyes: es de locos pero me gusta mucho este lenguaje me facina porque al parecer se puede controlar todo el ordenador
SI SAVES DEFENDERTE SABRAS COMO ATACAR
SI SAVES COMO ATACAR SABRAS DEFENDERTE
.......................

YST

No eh probado el codigo pero lo mas seguro es que sea un problema de ASCII :P

Una pequeña explicación:

El 1 que normalmente se muestra en pantalla es en realidad un 31h ya que ese es su valor ASCII.

Cuando uno muestra por ejemplo un 54 en pantalla va aparecer el simbolo que le corresponde este valor ASCII.


Un link interesante
http://www.asciitable.com/


Yo le enseñe a Kayser a usar objetos en ASM

Eternal Idol

http://www.ctyme.com/intr/rb-2554.htm

En DL tenes que poner un CARACTER.

0x23 + 0x22 = 0x45 = 69 = 'E'

Pero vos queres mostrar "69", para eso tenes que llamar al servicio dos veces (o usar otro que escriba una cadena, previa generacion de la misma), una con con '6' (54) y otra con '9' (57).
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

B14573R

#3
gracias chicos se agradese

EI: juntando mensajes.

disculpa eternal
no quiero que me des todo echo perp te pido como nobato que me expliques con un code si no es mucha la molestia lla q llo empiezo resien en este lenguaje   y si se pudiera para  16bytes   esque quiero con el  TASM PLIS DE ANTEMANO GRACIAS
SI SAVES DEFENDERTE SABRAS COMO ATACAR
SI SAVES COMO ATACAR SABRAS DEFENDERTE
.......................

Eternal Idol

Código (asm) [Seleccionar]
mov dl, '6'
mov ah, 02h
int 21h

mov dl, '9'
mov ah, 02h
int 21h
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

B14573R

Gracias Eternal de veras gracias pero aora tengo otra duda en esto jajjaj disculpa por ser tan molestoso pero me gusta aprender  y este lenguaje es uno de mis faboritos resulta que no puedo sumar 5+5  me da  : esos dos puntos  resulta que como no esta el diez osea si esta pero en formato  aski ay alguna forma de transformar a decimal  o algo asi  te lo agradeceria por favor y poder sumar sumas mas grandes  a mi me resulta con sumas de 1 a 9 pero de ay nada mas porfa ayuda plis


Código (asm) [Seleccionar]
.model small
.code

suma segment
assume cs:suma

start:  jmp inicio


inicio:
       
        mov ax,0035h
        mov bx,0032h
        add ax,bx
mov dx,ax
sub dx,30h
mov ah,02h
int 21h
mov ah,10h
int 16h
suma    ends
end start
     
SI SAVES DEFENDERTE SABRAS COMO ATACAR
SI SAVES COMO ATACAR SABRAS DEFENDERTE
.......................


B14573R

yst   gracias viejo esta bien pero lo que nececito es algo meneos complicado  que ya como dije soy nuebo en esto  si se puede  con peras y manzanas mucho mejor   de ante manos gracias
SI SAVES DEFENDERTE SABRAS COMO ATACAR
SI SAVES COMO ATACAR SABRAS DEFENDERTE
.......................

MCKSys Argentina

Hola!

Probaste con la macro atodw ?

Fijate esta discusión y la solución propuesta:
http://www.winasm.net/forum/index.php?showtopic=3172

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."