На чем написана программа exe

Сегментом программы называется её часть, состоящая из команд или данных, размеры которой не превосходят 64 Кбайта. Компилятор TASMB.COM позволяет создавать лишь программы, каждая из которых состоит из одного сегмента. Для того чтобы создавать многосегментные программы, применяются компилятор tasm.exe фирмы Borland и компилятор masm.exe фирмы Microsoft.

Эти компиляторы создают объектные файлы по заданным текстовым файлам. Затем созданные объектные файлы превращаются в загрузочные модули с помощью сборщиков tlink.exe и link.exe соответственно. Под загрузочным модулем понимается файл, готовый для загрузки и выполнения. Таким образом, программа создается за 2 шага:

Несмотря на то, что мы будем рассматривать компилятор tasm.exe, наши примеры будут состоять из программ, совместимых с masm.exe.

Работать с tasm.exe и tlink.exe лучше в режиме MS DOS. Желательно создать отдельную папку или использовать дискету, записав в них программы tasm.exe и tlink.exe. Текст программы лучше создавать и редактировать с помощью команды

Что такое приложение? Это .exe или сайт?

где prog – произвольное имя.

Компиляция, в случае, когда текст программы состоит из одного файла prog.asm, выполняется с помощью команды

Сборка и превращение объектного файла в загрузочный модуль производится с помощью команды

Запуск полученной программы на выполнение производится с помощью команды

Текст программы отличается от текста, который готовился в среде TASMB.COM. Теперь он состоит из сегментов, причем после определения сегмента кодов (сегментом кодов называется сегмент, состоящий из машинных команд) указываются имена сегментов, связанных с сегментными регистрами:

assume cs:имя, ds:имя2, es:имя3, ss:имя4

Директива SEGMENT может иметь параметры.

По умолчанию сегмент имеет адрес, кратный 16. Напомним, что смещением байта, называется разность между физическим адресом этого байта и адресом начала сегмента программы, содержащего этот байт. Программа пользователя состоит из сегментов трех типов.

На схеме слева стоят значения адресов сегментов. Сегменту команд (кодов) отводится регистр CS, сегменту данных — DS или ES, сегменту стека – SS. Адрес байта данных вычисляется по формуле

Адрес = 16*DS + смещение

(или Адрес = 16*ES + смещение, если используется сегментный регистр ES). Адрес команды – с помощью счетчика команд:

Адрес стека равен 16*SS+SP.

Пример. Напишем текст уже известной нам программы, которая выводит на экран сообщение «Hello, world». Известный нам текст надо модернизировать, добавив директивы определения начала и конца сегментов и команды установки регистра ds (регистр cs устанавливается автоматически).

Читайте также:
Как открыть две программы одновременно на телефоне

С этой целью вводим

и набираем текст программы

assume cs:code, ds:data

mov ax, data ; установка

mov ds, ax ; регистра ds

mov dx, OFFSET mes ; вывод

mov ah, 9 ; сообщения

int 21h ; на экран

mov ah, 10h ; подождать нажатия

int 16h ; любой клавиши

5 ХУДШИХ языков программирования, которые не стоит учить!

mov ax, 4c00h ; выход из

int 21h ; программы

mes db ‘Hello, world’, 13, 10, ‘$’

Запоминаем текст, выходим из редактора и вводим команду трансляции

В результате будут созданы файлы hello.obj и hello.lst.

Если есть ошибки, то их можно посмотреть в листинге hello.lst, исправить и снова выполнить трансляцию. В данной команде мы применяем ключ /l для создания листинга. Если ошибок нет, то производим сборку

В результате будет создана программа hello.exe, которую можно запускать на счет. Помимо команд установки регистра ds (состоящих из двух команд в силу того, что команда mov ds, data недопустима) мы добавим команду вызова прерывания 16h, для приема символа с клавиатуры. В данном случае функция 10h означает вызов обслуживающей подпрограммы, ожидающей нажатие клавиши и принимающей введенный символ в регистр AL.

Файлы, участвующие в компиляции и сборке

Процесс разработки программы с помощью tasm.exe и tlink.exe проходит шаги, показанные на следующем далее рис.2.2. В прямоугольниках написаны спецификации (имена и расширения) файлов, а на соединяющих эти прямоугольники стрелках – программы, участвующие в процессе разработки. Имена prog и x могут быть любыми.

В рисунке участвует файл prog.crf. Этот файл может быть включен в листинг. Он состоит из списка имен переменных и номеров операторов (строк), в которых встречаются эти имена. Возможно присоединение библиотечных модулей x.lib, созданных из объектных модулей с помощью программы tlib.exe.

Для того чтобы узнать формат строки и ключи для программы tasm, достаточно ввести команду

В общем случае для компиляции применяется команда

tasm fileset; …; fileset

где каждая строка fileset представляет собой запись вида

options sources, object, list, cross

· options – набор ключей (опций) компилятора;

· sources – набор имен файлов, содержащих исходные тексты;

· object – имя файла, в который будет записан созданный компилятором объектный модуль;

· list – имя файла, содержащего листинг;

· cross – имя файла с таблицей перекрестных ссылок.

Опции обычно разделяются пробелами, а имена файлов sources – пробелами, или знаком «+». Например, команда

Читайте также:
Моделирующие программы в обучении примеры

tasm /e prog1+prog2, prog; /l prog3

приведет к созданию модуля prog.obj, в котором в силу ключа /e будут эмулироваться операции с плавающей точкой, модуля prog3.obj и prog3.lst. Модуль prog.obj будет результатом компиляции объединения исходных текстов prog1.asm и prog2.asm.

Команда сборки вводится следующим образом

tlink options objects, exec, map, libraries

(Информация о ключах и формате вводной строки будет выведена, если ввести эту команду без аргументов.) Здесь

· options – набор ключей (опций);

· objects – список входных объектных файлов, разделенных знаками «+» или пробелами;

· exec – имя файла, в который будет записан созданный загрузочный модуль;

· map – карта распределения памяти;

· libraries – имена библиотек, содержащих подсоединяемые подпрограммы.

В частности, если указать опцию /t, то будет создан загрузочный модуль в формате COM. Например,

tlink /t mylib+prog

при наличии объектных модулей mylib.obj и prog.obj приведет к созданию файла prog.com.

Категории

  • Безопасность жизнедеятельности в техносфере (14)
  • Бухгалтерский учет, анализ и аудит (5)
  • Гуманитарные науки (56)
  • Естественные науки (20)
  • Информатика и вычислительная техника (27)
  • Медицина (3)
  • Менеджмент организации (20)
  • Науки о человеке и обществе (2)
  • Общетехнические дисциплины (18)
  • Прикладная информатика в экономике (3)
  • Программное обеспечение вычислительной техники и автоматизированных систем (2)
  • Прочее (14)
  • Социальная работа (26)
  • Технология машиностроения (9)
  • Финансы и кредит (25)
  • Электротехника и промышленная электроника (3)
  • Юриспруденция (28)

Свежие записи

  • 8.13 Правоприменительная деятельность и средства массовой информации
  • 8.12. Психологическая характеристика деятельности инспектора ГИБДД
  • 8.11. Психологическая характеристика деятельности участкового инспектора
  • 8.10. Психологическая характеристика деятельности инспектора ОБЭП
  • 8.9. Психологическая характеристика деятельности инспектора таможни

Материал представлен на сайте исключительно в ознакомительных целях.
Все права принадлежат авторам этих материалов.

Источник: libraryno.ru

Можно ли узнать на каком языке программирования была написана программа (exe)?

Когда вы скачиваете или устанавливаете программу на свой компьютер, вы, вероятно, не задумываетесь о том, на каком языке программирования она была написана. Но иногда это может быть полезной информацией: например, для того чтобы понять, как работает программа, или чтобы найти альтернативу, написанную на другом языке.

Так можно ли узнать на каком языке программирования была написана программа (exe)? Как правило, непосредственно из файла exe это сложно сделать, так как он уже скомпилирован, то есть переведен на машинный язык, который может быть выполнен непосредственно процессором. Однако, есть несколько других способов.

Способ 1: использование специализированных программ

Существует несколько программных инструментов, которые могут помочь определить язык программирования, на котором была написана программа. Некоторые из них используют для этого анализ байт-кода или других бинарных данных.

Читайте также:
Где в реестре хранятся программы

Примеры таких программных инструментов включают:

  • PEiD: утилита для обнаружения зашифрованных, сжатых или других необычных файлов PE (Portable Executable), таких как троянские кони или вредоносные программы.
  • Detect It Easy: инструмент для обнаружения и идентификации различных типов бинарных файлов, включая PE-файлы и исполняемые файлы для других ОС, таких как Linux и Mac.
  • ExeinfoPE: программа для обнаружения и анализа бинарных файлов, в том числе исполняемых файлов.

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

Способ 2: использование декомпиляции

Другой способ выяснить, на каком языке программирования была написана программа, является декомпиляция. Этот процесс включает в себя восстановление исходного кода из скомпилированных файлов.

Существует множество инструментов для декомпиляции, но это может быть незаконным в вашей стране или являться нарушением авторских прав, поэтому лучше воспользоваться ими только в законных целях, например, для обратной разработки программного обеспечения, которое было написано с использованием открытого исходного кода.

Заключение

В целом, узнать на каком языке программирования была написана программа (exe) не всегда легко, но это возможно с помощью специальных программных инструментов, анализа бинарных данных или декомпиляции. Однако, лучше использовать эти методы только в законных целях.

  • А что сказать гаишнику, который выписывает протокол у тебя в гараже?
  • Что обозначает «смазливое лицо»?
  • Помогите по вопросу
  • Формат игр на телефон Samsung SGH D-900
  • У нас будут отношения?
  • Вопрос к девушкам
  • Мировой судья вернул дело в отдел ГИБДД и попросил меня зайти в этот отдел через несколько дней? Что это все значит?
  • Ты пришел с женщиной в ресторан-заказ принесли ей срочно захотелось секса- что будешь делать?

Источник: umbertoeco.ru

.exe файл написан на каком языке и как его найти? [Дубликат]

Чтобы выбрать все записи, где данные являются простыми int:

SELECT * FROM myTable WHERE col1 REGEXP ‘^[0-9]+$’;

(В regex, ^ означает начало, а $ означает конец)

Чтобы выбрать все записи, где существует целое или десятичное число:

SELECT * FROM myTable WHERE col1 REGEXP ‘^[0-9]+\.?[0-9]*$’; — for 123.12

Результат: ‘111’ (то же, что и в последнем примере)

Наконец, чтобы выбрать все записи, в которых существует номер, используйте это:

SELECT * FROM myTable WHERE col1 REGEXP ‘[0-9]+’;

Результат: «test0» и «test1111» и «111test» и «111»

Источник: legkovopros.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru