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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Pregunta
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pregunta  (Leído 3,242 veces)
soez

Desconectado Desconectado

Mensajes: 76



Ver Perfil
Pregunta
« en: 18 Julio 2010, 02:08 am »

Cual es la diferencia del codigo de 16 bits con el de 32 bits? Este codigo que presento ya lo he intentao sacar varias veces y no me sale de ninguna manera, por lo que me dicen lo declaro con 32 bits (cabecera) pero el codigo es de 16 bits, me podeis echar una mano para hacerlo en 32 bits? con esto hecho ya puedo coger la idea y seguir ampliando. Saludos

Código
  1. .386                              
  2. .model flat, stdcall  
  3. option casemap :none
  4. ;32 bits
  5.  
  6. .stack
  7.  
  8. .data
  9.  
  10. saludo   db "Hola mundo!!!$"
  11.  
  12. .code
  13.  
  14. start:
  15.  
  16. mov   ax, data
  17. mov   ds, ax            
  18. mov   ah, 09        
  19. lea   dx, saludo  
  20. int   21h                
  21. ;mensaje en pantalla
  22.  
  23. mov   ah, 4ch            
  24. int   21h                
  25. ;termina programa
  26.  
  27. end start
  28.  


En línea

01001010 01100001 01110110 01101001 01100101 01110010
nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: Pregunta
« Respuesta #1 en: 18 Julio 2010, 08:14 am »

soez, estas usando registros de 16 y 8 bits

Registros de 32 bits EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, EIP
Registros de 16 bits AX, BX, CX, DX, SI, DI, BP, SP, IP
Registros de 8 bits AL, AH, BL, BH, CL, CH, DL, DH (H para High, L para Low)

Salu10.


« Última modificación: 18 Julio 2010, 08:17 am por [NicolaS] » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


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


Ver Perfil WWW
Re: Pregunta
« Respuesta #2 en: 18 Julio 2010, 10:15 am »

Depende para que podes usar registros de 8 y 16 en modo protegido perfectamente, igual este codigo es para MS-DOS ya que usa los servicios del mismo (int 21h) y esos estan disponibles solo en modo real (16 bits).
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
soez

Desconectado Desconectado

Mensajes: 76



Ver Perfil
Re: Pregunta
« Respuesta #3 en: 18 Julio 2010, 17:43 pm »

Depende para que podes usar registros de 8 y 16 en modo protegido perfectamente, igual este codigo es para MS-DOS ya que usa los servicios del mismo (int 21h) y esos estan disponibles solo en modo real (16 bits).


Gracias por la aclaracion  :-*  , usando otra interrupcion se pueden hacer programas en modo consola no? o me equivoco?
En línea

01001010 01100001 01110110 01101001 01100101 01110010
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


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


Ver Perfil WWW
Re: Pregunta
« Respuesta #4 en: 18 Julio 2010, 17:58 pm »

¿Para Windows decis? Con su API directamente ...
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