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
.386
.model flat, stdcall
option casemap :none
;32 bits
.stack
.data
saludo db "Hola mundo!!!$"
.code
start:
mov ax, data
mov ds, ax
mov ah, 09
lea dx, saludo
int 21h
;mensaje en pantalla
mov ah, 4ch
int 21h
;termina programa
end start
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.
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).
Cita de: 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).
Gracias por la aclaracion :-* , usando otra interrupcion se pueden hacer programas en modo consola no? o me equivoco?
¿Para Windows decis? Con su API directamente ...