![]() |
Как написать компилятор ассемблера?
Всем привет !
Недавно я решил написать компилятор низкоуровневого языка. Он, по сути будет являться надстройкой над обычным ассемблером. Резница лишь в том, что процесс создания исходника программы будет заключаться не в написании строк с мнемоникой, а в выборе в меню нужной команды, заполнения окна свойств команды (ввод операндов). "Текст" программы будет напоминать древо каталогов в проводнике, где разные виды команд будут иметь свою форму. Так же хотелось бы несколько упростить процесс написания программ добавлением к командам ассемблера макрокоманд, таких как сложение двух любых (по типу и размеру) чисел. И ввести в качастве дополнительных меню команды вызова прерываний DOS, BIOS и функций Windows API . Для этого мне потребуется: -двоичные коды всех коанд 386 процессора; -информация о том как работает MASM; -Ваши замечания, предложения и ещё всё, что Вы посчитаете нужным для подобной работы. Жду предложений и рекомендаций. |
Компилятор асемблера
Солнца свет!
Написанием компилятора и декомпилятора занемаюсь уже давно ,,прочёл не мало книг по Ассемблеру в которых имееться приложение с шестнацетиричнами кодами команд языка вот только "Яма" там они выдают следующее : по ихней таблице помистить в регистр EAX, или только в AX и так в любой регистр младший или старший байт(слова) регистра есть один и тот же код "0B8h" ясно такого быть не может тут и приходит вывод значит всё зависит не кода команда от её обработчика в катором описан формат в шестнацатиразрядной дос будет ешё прочитано два байта даный после этой команды ,а вот в 32 разрядные обработчики прочитают 4 байта. Вывод должен напрашиваться сам сабой,,написание как я понел компилятора своего языка дело большое сам уже несколько лет пытаюсь разабраться вот что есть программа написаня в шестнацатеричном редакторе помищает в регистры АХ число 3 в регистр ВХ число 4 складывает их и резултат остаёться в АХ ,востанавливает значение регистров и завершаеться. Mov Ax,3 -- B8 03 00 Mov BX,4 -- BB 04 00 Add Ax,Bx -- 01 D8 ret -- C3 int 20 -- CD 20 только нужно файл на диске создать с разрешением типа .com и писать в него переведёные коды в двести пятдесят шести ритчную систему счисления"""" ? Вообщем если интересно пишите найду учебник в катором я коды этих команд прочёл,,буду признателен если кто то оставит информацию о других источник описания кодов команд и их форматов. :) |
!!!
Да, да! Мне очень интересно! Если не трудно подскажите пожайлуста несколько книжек на ету тему:)
Если у кого есть исходники какого-нибудь элементарного ассемблера на популярном языке (pascal, C++, BASIC) с русскими комментариями, плз. выкладывайте!;) Самое страшное - это когда есть цель, но нету средств её достижения (или средства не доступны:( )!!!:angel: |
у мну от всего этого аж голова болит (
|
На дизайнерском форуме про написание компилятора ассамблера. деагноз
|
Часовой пояс GMT +3, время: 13:29. |
Powered by vBulletin
Copyright ©2000-2025, Jelsoft Enterprises Ltd.