Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: soez en 18 Julio 2010, 02:08 am



Título: Pregunta
Publicado por: soez 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.  


Título: Re: Pregunta
Publicado por: nicolas_cof 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.


Título: Re: Pregunta
Publicado por: Eternal Idol 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).


Título: Re: Pregunta
Publicado por: soez 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?


Título: Re: Pregunta
Publicado por: Eternal Idol en 18 Julio 2010, 17:58 pm
¿Para Windows decis? Con su API directamente ...