SoloCodigo

Programación General => ASM (Ensamblador) => Mensaje iniciado por: Snowhite66 en Jueves 13 de Diciembre de 2012, 16:27

Título: Operaciones Aritmeticas
Publicado por: Snowhite66 en Jueves 13 de Diciembre de 2012, 16:27
Hola;
Busco hacer el siguiente programa; (x^2 +y)-z, donde x=5, y=2, z=1. Esto es lo que hize pero el resultando no es 26. Que estoy haciendo mal?

.model small
.stack 100h
.data
marca db '>>>>'
   x db 5
   y db 2
   z  db 1
   resultado  db ?
.code
main proc
  mov ax, @data
  mov ds, ax       
  mov al, x       ; mueve x al registro al
  mul x            ; multiplico x por si mismo
  add  y, al       ; le sumo y
  sub  z, al       ; resto z
 
  mov resultado, al  ; el resultado se almacenara en al
  mov ax, 4c00h

  int 21h
main endp
end main
Título: Re:Operaciones Aritmeticas
Publicado por: Nebire en Domingo 23 de Diciembre de 2012, 14:26
antes de:
 mov AL, x

añade esta línea:
 xor AX, AX

Para borrar su contenido, estás trabajando sobre al, pero n has borrado el contenido de ah, fíjate que al pasarlo por la pantalla, muestra el registro AX...