elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Pasar tipo byte a tipo word sin uso de movs?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pasar tipo byte a tipo word sin uso de movs?  (Leído 5,236 veces)
Morringos

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Pasar tipo byte a tipo word sin uso de movs?
« en: 31 Marzo 2011, 06:31 am »

Buenas a todos, tengo una duda en ensamblador, lo cual apenas estoy aprendiendo, pero me he encontrado con dos problemas los cuales no les he podido encontrar una solución y tampoco la causa, les pongo un código de ejemplo:

Código:
title "Ejemplo X"
    .model small
    .stack 1064
    .data
        var1 db 48,36
    .code
     
    mov ax, @data
    mov ds, ax
     
    mov ax, var1                 ;Operand types do not match
    mov dx, ax
    mov ah, 09h
    int 21h
     
     
    mov ah, 4ch
    int 21h
     
    end

Donde está el comentario, es en donde me detecta el error puesto como comentario, también, como la variable "var1" es de tipo byte, encontré las instrucciones: "movs", "movsx" y "moszx", pero cuando las trato de utilizar de la siguiente manera: "movs ax, var1", me marca un error diciéndome: "Ilegar instruction for currently selected processor(s).

¿Alguien tiene alguna idea sobre el por qué me pasa eso y sobre cómo solucionar lo que quiero hacer?

Gracias
Saludos.


En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.935


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Pasar tipo byte a tipo word sin uso de movs?
« Respuesta #1 en: 31 Marzo 2011, 17:02 pm »

¿Que intentas hacer con 48,36? ¿Un numero real? ¿Dos numeros enteros?

Código
  1. mov ah, var1
  2. mov al, var1  + 1


« Última modificación: 31 Marzo 2011, 17:08 pm por Eternal Idol » En línea

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
Morringos

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Pasar tipo byte a tipo word sin uso de movs?
« Respuesta #2 en: 1 Abril 2011, 03:42 am »

Según tengo entendido que al poner: "var1 db 48,36", estoy declarando una variable de tipo byte con un valor de 48 decimal y el 36 indica el final de la cadena, así es como lo he aprendido, no sé si esté mal, igual que si al lugar de 36, pusiera un '$'.

O...¿cómo indicas el final de una variable? Porque pensándolo bien, con "var1 db 48,36", ¿estoy declarando un arreglo de 2 elementos verdad? No sé cómo es para indicarle el final de la variable cuando es númerica o no necesita.


Gracias.
Saludos.  :D
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.935


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Pasar tipo byte a tipo word sin uso de movs?
« Respuesta #3 en: 1 Abril 2011, 11:44 am »

No se necesita, eso es para cadenas de texto.

Si solo queres un byte entonces es suficiente esto:
Código
  1. var1 db 48

Y el codigo tal como te lo mostre (con 0 en lugar de var + 1) o tambien:
Código
  1. xor ax, ax
  2. mov al, var1
En línea

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
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines