ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

На чём написаны .COM проги
  #1  
Старый 17.08.2009, 06:50
Аватар для Ponchik
Ponchik
Постоянный
Регистрация: 30.08.2005
Сообщений: 730
Провел на форуме:
6828219

Репутация: 2274


По умолчанию На чём написаны .COM проги

Я вот и гуглил и спрашивал в оцеке, никто незнает, кабута .COM вобще не существует =\
Мне Hello world написать надо
сабж, на чём?
====
Вот блин будиш будиш всех, спят! А как токо создаёш тему прибегают поржать =\
Мне уже визард спалил тему, не зажал
====
Нифига он не смог написать, я тож ничерта неумею, проснусь вечером 10 рублёв дам тому кто мне hello world напишет, но тама с 1 условием, вечером уже отпишу

Последний раз редактировалось Ponchik; 17.08.2009 в 12:25..
 
Ответить с цитированием

  #2  
Старый 17.08.2009, 07:26
Аватар для plas
plas
Познающий
Регистрация: 19.03.2007
Сообщений: 97
Провел на форуме:
462465

Репутация: 23
По умолчанию

на любом языке на котором можно создать прогу для dos'a
 
Ответить с цитированием

  #3  
Старый 17.08.2009, 09:40
Аватар для SmanxX1
SmanxX1
Новичок
Регистрация: 04.08.2008
Сообщений: 29
Провел на форуме:
167800

Репутация: 15
По умолчанию

Код:
org 100h

mov ah, 9
mov dx, msg
int 21h
ret

msg db "Hello, World!",0dh,0ah,'$'
FASM
 
Ответить с цитированием

TASM
  #4  
Старый 17.08.2009, 12:21
Аватар для Gar|k
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию TASM

Рассмотрим пример программы типа com.

Пример:
Код:
; hello.asm 
; Программа выводит на экран сообщение "Hello World" 
.model tiny ; Модель памяти, используемая для СОМ.
.code ; Начало сегмента кода.
org 100h ; Начальное значение счетчика - 100h.
start:
mov ah, 9 ; Номер функции DOS - в АН.
mov dx,offset message ; Адрес строки - в DX.
int 21h ; Вызов системной функции DOS.
ret ; Завершение СОМ-програнмы.
message db "Hello World",ODh,0Ah,'$'; Строка для вывода.
end start ; Конец программы.
Для превращения программы в исполняемый файл сначала надо вызвать ассемблер, чтобы скомпилировать ее в объектный файл с именем hello.obj, набрав в командной строке следующую команду:

tasm hello.asm

Затем с помощью компоновщика превратить объектный файл в исполняемый:

tlink /t /x hello.obj

В результате появился исполняемый com-файл. Если его выполнить, на экране появится строка Hello World.

Первая строка определяет модель памяти TINY, в которой сегменты кода, данных и стека объединены. Эта модель предназначена для создания файлов типа com.

Директива .CODE начинает сегмент кода, который в нашем случае также должен содержать и данные.

ORG 100h устанавливает значение программного счетчика в 100h, потому что при загрузке com-файла в память DOS занимает первые 256 байт (100h) блоком данных PSP и располагает код программы только после этого блока. Все программы, которые компилируются в файлы типа com, должны начинаться с этой директивы.

Метка START располагается перед первой командой в программе и будет использоваться в директиве END, чтобы указать, с какой команды начинается программа.

Команда MOV АН,9 помещает число 9 в регистр АН - номер функции DOS "вывод строки".

Команда MOV DX,OFFSET MESSAGE помещает в регистр DX смещение метки MESSAGE относительно начала сегмента данных, который совпадает с сегментом кода.

Команда INT 21h вызывает системную функцию DOS. Эта команда - основное средство взаимодействия программ с операционной системой. В нашем примере вызывается функция DOS номер 9 - вывести строку на экран. Эта функция выводит строку от начала, адрес которого задается в регистрах DSX, до первого встреченного символа $. При запуске com-файла регистр DS автоматически загружается сегментным адресом программы, а регистр DX был подготовлен предыдущей командой.

Команда RET используется обычно для возвращения из процедуры. DOS вызывает com-программы так, что команда RET корректно завершает программу.

DOS при вызове com-файла помещает в стек сегментный адрес программы НОЛЬ, так что RET передает управление на нулевой адрес текущего сегмента, то есть на первый байт PSP (префикс программного сегмента, с ним мы познакомимся немного позднее). Там находится код команды INT20h, которая и используется для возвращения управления в DOS. Можно сразу заканчивать программу командой INT20h.

Следующая строка программы HELLO.ASM определяет строку данных, содержащую текст Hello World, управляющий символ ASCII возврат каретки с кодом 0Dh, управляющий символ ASCII перевод строки с кодом 0Ah и символ $, завершающий строку.

Директива END завершает программу, одновременно указывая, с какой метки должно начинаться ее выполнение.

После загрузки двоичного образа COM-программы:
  • CS, DS, ES и SS указывают на PSP;
  • SP указывает на конец сегмента PSP (обычно 0FFFEH, но может быть и меньше, если полный 64K сегмент недоступен);
  • слово по смещению 06H в PSP (доступные байты в программном сегменте) указывает, какая часть программного сегмента доступна;
  • вся память системы за программным сегментом распределена программе;
  • слово 00H помещено (PUSH) в стек;
  • IP содержит 100H (первый байт модуля) в результате команды JMP PSP:100H.

З.Ы: Медведев В.А. © 2005 г. OSU
 
Ответить с цитированием

  #5  
Старый 17.08.2009, 13:45
Аватар для Kaimi
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


Отправить сообщение для Kaimi с помощью ICQ
По умолчанию

fasm, tasm...

В WinXP открываешь консоль и делаешь примерно так:
 
Ответить с цитированием

  #6  
Старый 17.08.2009, 13:58
Аватар для W!z@rD
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме:
1892597

Репутация: 836


Отправить сообщение для W!z@rD с помощью ICQ
По умолчанию

лол
>>Нифига он не смог написать
ты словами аккуратнее кидайся, я тебе написал.
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
 
Ответить с цитированием

  #7  
Старый 17.08.2009, 23:06
Аватар для Ponchik
Ponchik
Постоянный
Регистрация: 30.08.2005
Сообщений: 730
Провел на форуме:
6828219

Репутация: 2274


По умолчанию

виз, хелло ворлд 3КБ это не серьёзно =\
Насчёт проги щас по личкам побегаю
===
Всё, не актуально

Последний раз редактировалось Ponchik; 17.08.2009 в 23:53..
 
Ответить с цитированием

  #8  
Старый 18.08.2009, 06:52
Аватар для W!z@rD
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме:
1892597

Репутация: 836


Отправить сообщение для W!z@rD с помощью ICQ
По умолчанию

Ponchik заврался
не больше 21 байта было
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ