Ejercicio suma,resta,multiplicacion

Iniciado por EmmanuelTR9, 14 Abril 2021, 04:36 AM

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

EmmanuelTR9

Estoy tratando de realizar una suma primero pero con una presentacion pero al mostrar el numero 1 fijo estableciendolo desde un inicio no puedo darle un salto de linea para que no se vea todo junto. y al mostrar el valor b solo me aparece una letra, alguien me podria decir cual es el error ya estuve intentando pero nada :(

;.386 PROCESADOR 80386 CON REGISTROS DE 32 BITS

;.286 PROCESADOR 80286 CON REGISTRO DE 16 BITS

.MODEL SMALL ; MODOS PARA COMPILACION TINY, SMALL, MEDIUM, COMPACT, LARGE

.STACK ; ESPACIO PARA LA PILA POR DEFAULT 64

.data ; Mensajes a mostrar

linea1 db ' Mensaje 1 ',10,13,'$'

linea2 db 'Mensaje 2',10,13,'$'

linea3 db 'El primer numero es: ',10,13,'$'

linea4 db ' El segundo numero es: ',10,13,'$'

linea5 db 'La suma de los dos numeros es: ',10,13,'$'

linea6 db 'la resta de los dos n?meros es: ',10,13,'$'

A db 04h

B db 03h

valor db ?

.code; INSTRUCCIONES DEL PROGRAMA

codigoss:  ; INICIA PROGRAMA --- PROGRAMA-

MOV AX,seg @data

    MOV DS,AX



    MOV AH,09H

    LEA DX,linea1

    INT 21H



    MOV AH,02H

    INT 21H ;Salto de Linea



    MOV AH,09H

    LEA DX,linea2

    INT 21H







    MOV AH,09H

    LEA DX,linea3

    INT 21H



    MOV AH,09H

    mov ax, seg @data

    mov ds,ax

    mov ah,A ;Muestra el valor A





    MOV AH,02H

    INT 21H ;Salto de Linea



    MOV AH,09H

    LEA DX,linea4

    INT 21H



    MOV AH,09H

    mov ax, seg @data



    mov ah,B ;Muestra Valor B





    MOV AH,02H

    INT 21H ;Salto de Linea



    MOV AH,09H

    LEA DX,linea5

    INT 21H



    ;Instruccion de suma

    mov ax, seg @data

    mov ds,ax

    mov ah,a

    add ah,b

    mov valor,ah

    mov dl, valor

    add dl, 30h

    mov ah, 02h





    MOV AH,02H

    INT 21H ;Salto de Linea



    MOV AH,09H

    LEA DX,linea6

    INT 21H









    mov ax,4c00h    ; FUNCION SALIR DEL CODIGO

    int 21H ; INTERRUMPIR MS-DOS

    End codigoss; TERMINAR PROGRAMA

end



Eternal Idol

¿Cual es el valor de DL cuando llamas al servicio 2 de la interrupcion 0x21? Solo cuando coincida con el valor ASCII del salto de linea funcionara como queres.

http://www.ctyme.com/intr/rb-2554.htm
https://es.wikipedia.org/wiki/Salto_de_l%C3%ADnea
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

EmmanuelTR9

Cita de: Eternal Idol en 14 Abril 2021, 09:21 AM
¿Cual es el valor de DL cuando llamas al servicio 2 de la interrupcion 0x21? Solo cuando coincida con el valor ASCII del salto de linea funcionara como queres.

http://www.ctyme.com/intr/rb-2554.htm
https://es.wikipedia.org/wiki/Salto_de_l%C3%ADnea
Es que solo me base en un ejercicio que anteriormente hice, y no entiendo muy bien, entonces que tendria que hacer no entiendo bien?

Eternal Idol

Cita de: EmmanuelTR9 en 15 Abril 2021, 02:33 AMEs que solo me base en un ejercicio que anteriormente hice, y no entiendo muy bien, entonces que tendria que hacer no entiendo bien?

Primero deberias responderte la pregunta que te hice: ¿Cual es el valor de DL cuando llamas al servicio 2 de la interrupcion 0x21? No es una pregunta ociosa o retorica, con solo entender la razon por la cual la hice deberias poder deducir la solucion a tu problema. Si todavia no lo ves claro lee los enlaces que te pase y deberias ser capaz de resolver el problema en unos 30 segundos.
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

EmmanuelTR9

#4
Cita de: Eternal Idol en 15 Abril 2021, 08:24 AM
Primero deberias responderte la pregunta que te hice: ¿Cual es el valor de DL cuando llamas al servicio 2 de la interrupcion 0x21? No es una pregunta ociosa o retorica, con solo entender la razon por la cual la hice deberias poder deducir la solucion a tu problema. Si todavia no lo ves claro lee los enlaces que te pase y deberias ser capaz de resolver el problema en unos 30 segundos.

Pues así teniendo el código nunca le doy valor a DL y si es asi leyendo lo que me mandaste el valor sería 09h

Eternal Idol

Cita de: EmmanuelTR9 en 15 Abril 2021, 13:50 PM
Pues así teniendo el código nunca le doy valor a DL y si es asi leyendo lo que me mandaste el valor sería 09h

Correcto lo primero y cerca lo segundo:
https://es.wikipedia.org/wiki/Salto_de_l%C3%ADnea
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

EmmanuelTR9

Cita de: Eternal Idol en 15 Abril 2021, 15:40 PM
Correcto lo primero y cerca lo segundo:
https://es.wikipedia.org/wiki/Salto_de_l%C3%ADnea


Ahora no entiendo cuál es el error es que en teoría en mis clases no hay nada para que me pueda apoyar apenas me estoy familiarizando con esto y es por esto pido ayuda

Eternal Idol

Cita de: EmmanuelTR9 en 15 Abril 2021, 15:49 PM

Ahora no entiendo cuál es el error es que en teoría en mis clases no hay nada para que me pueda apoyar apenas me estoy familiarizando con esto y es por esto pido ayuda

Cita de: WikipediaRepresentación
En ASCII y Unicode, el salto de línea se representa mediante el código decimal 10 (en hexadecimal 0A).
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

EmmanuelTR9

Cita de: Eternal Idol en 15 Abril 2021, 16:12 PM

Ahora entiendo que necesito poner 0A pero eso intente ayer y si me hace el salto de línea pero me borra el valor de A y B

Eternal Idol

Te recomiendo depurar tu codigo linea por linea, en ninguna parte se escribe el valor de A y/o B en consola (pensa que para empezar vas a tener que transformar su valor ENTERO en ASCII). Por ejemplo revisa el codigo entres las lineas 73 y 79, se preparan los parametros pero no se llama a ningun servicio como para que el comentario (";Muestra el valor A") sea cierto.

Es imposible programar haciendo copy/paste sin entender.
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