Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2009, 12:05   #1
ИринаForeve
Пользователь
 
Аватар для ИринаForeve
 
Регистрация: 27.04.2009
Сообщений: 48
По умолчанию Разработка транслятора. Выходной файл *.COM

Дело в том я на Делфи делаю транслятор языка Ассемблера, выходной файла в формате *.COM; команды распознаваемые транслятором:
- команды пересылки данных (MOV, XCHG, POP, PUSH, POPF);
- арифметические команды (ADD, CMP, DEC, DIV, INC, MUL, NEG, SUB).
У меня несколько вопросов:
1. Перечисленные выше команды являются наиболее распространенными или по Вашему мнению туда следует еще добавить? Какие?
2. Какова же структура программы для COM-файла, вот примеры:
Код:
.model tiny
.code
org 100h
begin:
jmp start
message db 'Hello','$'
start:
mov ah,09h
mov dx,offset message
int 21h
ret
end begin
и аналогичный:
Код:
.model tiny; модель памяти, используемая для СОМ
.code      ; начало сегмента кода
org 100h   ; начальное значение счетчика - 100h
start: mov ah,9; номер функции DOS - в АН
mov dx,offset message ; адрес строки - в DX
int 21h    ; вызов системной функции DOS
ret        ; завершение СОМ-программы
message db "Hello World!",0Dh,0Ah,'$' 
end start  ; конец программы
Чем они отличаются? Как же все таки определить конечную (среднюю или распространенную) структуру программы для лексического анализа?
Заранее спасибо!
ИринаForeve вне форума Ответить с цитированием
Старый 20.11.2009, 12:58   #2
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

1.Для com программы в любом случае нужна команда int для вызова прерываний. А так же and, or, xor,not, test, loop, jmp, call, ret, различные команды условных переходов(jz,jnz, jb и т.д.). Это конечно не все используемые, но наиболее часто именно эти. Да вобщем-то много там и не будет никогда.
2. В com файле по сути нет никакой структуры. Единственное ограничение - файл должен быть меньше или равен 64 кб, но не больше. Код начинается с первого байта, данные могут располагаться где угодно в нем, т.к. они все-равно смешиваются в одном сегменте. (приведенные примеры отличаются по сути только этим).
Но удобнее, имхо, располагать данные после кода. Как в примере 2.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4

Последний раз редактировалось Goodwin98; 20.11.2009 в 13:01.
Goodwin98 вне форума Ответить с цитированием
Старый 20.11.2009, 13:11   #3
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Самое очевидное - обратиться к мануалам от интела.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 20.11.2009, 13:19   #4
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

А почитать что там написано не пробовали ?
В частности Volume 2A и Volume 2B.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 20.11.2009, 13:40   #5
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

О чем речь вообще ?
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 20.11.2009, 15:27   #6
ИринаForeve
Пользователь
 
Аватар для ИринаForeve
 
Регистрация: 27.04.2009
Сообщений: 48
По умолчанию

И все таки проблема со структурой меня загнала в тупик.
А на счет команд, то INT имеется, может JMP возьму, т.к. используется как в примере 1, ну а остальные не нужны, т.к. программу делаю для студентки, точнее переделываю свою (у меня команды другие и выходной формат EXE, да и забыла уже многое),а в задании только 2 типа команд, просто набор команд не указывается.
В архиве список кодов (часто используемых команд) на всякий случай
Вложения
Тип файла: rar Формат команды.rar (37.4 Кб, 15 просмотров)
ИринаForeve вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавит картинку в файл без сохранения в файл Pacan4ik Microsoft Office Excel 3 30.07.2009 13:19
заголовочный файл и файл исходного текста Роман Радер Общие вопросы C/C++ 10 21.07.2009 21:46
Ссылка на файл из текущей папки! Сбор инфы в один файл! mephist Microsoft Office Excel 11 10.07.2009 13:51
Дан файл, содержащий текст на русском языке.Составить в алфавитном порядке список слов в файл. JiLiYa Паскаль, Turbo Pascal, PascalABC.NET 3 26.12.2008 12:05