Предлагаю вашему вниманию моё новое творение - ассемблер на Delphi. В отличие от многих примеров, которые только генерируют ASM файлы для последующей компиляции в TASM, MASM32, FASM и т.п. данная программа сама создаёт EXE файлы.
На данный момент программа создаёт EXE файлы объёмом от 1кб, поддерживает типы данных (byte,dword,string), записи (record) и немного других приятных функций.
Программы выглядят примерно таким образом:
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | .import
import Kernel32 . dll WriteFile
import Kernel32 . dll GetStdHandle
import Kernel32 . dll ExitProcess
. var
record two_strings
string s1 "This string have three parts:"
string s2 "s1, s2"
string somename " and s3."
end
byte STD_INPUT_HANDLE 0xf5
dword count 0x00000000
.code
push ^STD_INPUT_HANDLE
call getstdhandle
push 0x00
push @count
push ^length(two_strings)
push @two_strings
push eax
call writefile
push 0x00
call ExitProcess
|
Скачать компилятор, исходники компилятора и примеры (30кб):
http://www.igrodel.ru/tdg3d/peasm-0.3beta.zip
Компиляция - из коммандной строки (в архиве есть нужные BAT файлы для компиляции примеров).