Red de conocimiento informático - Conocimiento sistemático - Cómo especificar la dirección de entrada del programa ensamblador radasm win32

Cómo especificar la dirección de entrada del programa ensamblador radasm win32

Vi este título hace unos días y lo pasé porque no parecía ser un problema en absoluto. Después de unos días, no pude encontrar ningún resultado después de analizar este problema, así que vine por curiosidad para echar un vistazo.

RadASM es solo un entorno de desarrollo. Debe tener el compilador y el vinculador del idioma en cualquier directorio y luego especificar la ubicación del compilador y el vinculador del idioma en xxxx.ini. Si se trata de un macroensamblaje MASM, debe especificarlo en MASM. INI, por ejemplo:

[Entorno]

1=ruta,c:\masm 32\bin;

[Gráfico]

2=0251222522222232;20-2F

3=1111111111242221;30-3F

[Abrir]

0= "Archivo fuente de ensamblaje (*.asm* .inc*.mac*.txt), *.asm*.inc*.mac*.txt "

1= "Archivo de recursos (*.rc), *.rc "

2= "Archivos de texto (*.txt), *.txt"

3= "Todos los documentos (*.*), *.*"

Src= "Programa Establecer archivos (*.asm), *.asm, asm"

Hdr= "Archivos de encabezado (*.inc), *.asm, inc."

Módulo ( *. asm*.mac), *. asm*.mac "

1=ruta Esta es la dirección utilizada para definir el compilador de ensamblaje de macros. Simplemente complete la dirección correcta.

En cuanto al programa fuente ensamblador, se puede utilizar en un entorno DOS, como por ejemplo:

. datos

s1 db? Pon datos aquí',0

. Contraseña

Ingresar proceso

mov? eax,[eax].PEB.ImageBaseAddress

¿Llamar? GetCurrAddr

Instancia móvil [ebx], eax

......

Puerto de entrada p

. ¿Datos

s2? Los datos de Db también se colocan aquí, por supuesto, también se pueden colocar al frente.

. Contraseña

Inicio:

Mover objetivo, Offset Mz

Len Mov Crent

Llamar a GetCurrentDirectory, nBufLen, addr szFName

Llamar a lstrcat, addr szFName, addr myFName

Llamar a CreateFile, addr szFName,; puntero al nombre del archivo

Modo de acceso GENERIC_WRITE o GENERIC_READ (lectura-escritura)

nulo,; modo compartido

nulo,; puntero al atributo de seguridad

Crear_always,? ;¿Cómo crear

FILE_ATTRIBUTES_NORMAL,? ;Atributos de archivo

Vacío

archivo mov, eax

Llamar a WriteFile, hFile, dest, clenth, addr br, NULL

.

if eax

Llamar a lstrcpy, dirección szFName, dirección mi nombre 1

Llamar a lstrcat, dirección szFName, dirección szOpenOk

Llamar a MessageBox, nulo, dirección szFName,

Dirección szCaption, MB_OK

. Otros

Llame a MessageBox, NULL, addr szOpenEr,

addr szCaption, MB_ICONERROR o MB_OK

. endif

Llamar a CloseHandle, hFile

Operación XOR

Llamar a ExitProcess, eax

Fin de inicio

Compilar después Cuando se completa el enlace, el código se ejecutará desde el principio y el nivel de inicio es superior al de entrada. Si hay una entrada en el código y un inicio al mismo tiempo, después de la compilación, el resultado será inicio, no entrada. Para ser precisos, es el nombre de la dirección inicial de la raíz después del final. No importa cuál sea, se acostumbra usar inicio.

Este es un código de demostración que escribí cuando estaba escribiendo un libro. Todos fueron desarrollados usando RadASM. El código definitivamente se puede compilar y ejecutar. Le enviaré un código fuente ensamblador en el archivo adjunto, puede intentar compilarlo con RadASM.