Какой формат имеют файлы с расширением com и exe
В операционных системах Windows (с файловыми системами FAT32 и NTFS) полное наименование не должно превышать 255 символов. Имя вписывают пользователи по своему усмотрению, а расширение файла обычно состоит всего лишь из трех или (реже четырех) символов английского алфавита, причем эти наборы символов для расширений стандартизированные и показывают какого типа рассматриваемый файл. Например, файл «house.jpg» исходя из имени, содержит информацию о доме, а исходя еще из расширения — это некоторое изображение здания.
Стандартные и популярные расширения файлов:
doc – текстовый документ редактора Word,
xls – электронная таблица программы Excel,
txt – простой тестовый документ,
jpg, png, gif – изображения,
avi, jpeg, mp4, mkv – видеофайлы,
mp3, wav – аудиофайлы.
exe – исполняемый файл.
Виды файлов: исполняемые файлы, архивные, файлы с атрибутами. Возможности архиваторов. Виды атрибутов файлов. SFX – архив. Поиск и запуск программ из разных режимов работы: командного, из оболочек, графического.
Исполняемыми файлами называются файлы, содержащие в себе готовые к запуску компьютерные программы.
Архивный файл - это специальным образом организованный файл, содержащий в себе один или несколько файлов в сжатом или несжатом виде и служебную информацию об именах файлов, дате и времени их создания или модификации, размерах и т.п.
атрибуты файла – это параметры, по которым файл отличается от множества других файлов. К атрибутам можно отнести дату и время создания файла, имя файла, имя владельца файла, размер, права и метод доступа к файлу. Атрибуты указывают системе, что можно сделать с данным файлом.
Виды атрибутов
Для каждого файла соответствующая ему запись в каталоге (элемент каталога) содержит атрибуты файла. DOS и Windows 3.1 могут обрабатывать четыре атрибута файлов: «только для чтения» (read-only), «скрытый» (hidden), «системный» (system) и «архивировать» (archive). Каждый из этих атрибутов может быть либо установлен, либо нет.
Назначение атрибутов
Назначение этих атрибутов таково:
• Атрибут файла «только для чтения» предохраняет файл от изменений: для изменения или удаления файла с этим атрибутом требуется предварительно снять данный атрибут. Файлы на компакт-дисках также имеют атрибут «только для чтения», чтобы показать, что изменять эти файлы нельзя;
• Атрибут «скрытый» и/или «системный» используются некоторыми системными файлами (например, основные файлы MS DOS – IO.SYS и MSDOS.SYS, - имеют оба этих атрибута). Файлы с атрибутом «системный» не перемещаются программами оптимизации расположения файлов на диске (типа Speed Disk), а также обычно не копируются на сжатый диск при создании сжатого диска из обычного программами типа Drive Space;
• Атрибут файла «архивировать» устанавливается при создании файла и сбрасывается программами резервного копирования для обозначения того, что копия файла помещена в архив. Поэтому наличие атрибута «архивировать» обычно значит, что для файла не было сделано резервной копии.
Таким образом, большинство файлов имеет установленным только атрибут «архивировать». Остальные атрибуты («только дл чтения», «скрытый» или «системный»), как правило, не установлены.
Основными функциональными возможностями WinRAR являются:
Самораспаковывающийся или самоизвлекающийся архив (англ. self-extracting archive, сокращённо «SFX archive») — файл, компьютерная программа, объединяющая в себе архив и исполняемый код для его распаковки. Такие архивы, в отличие от обычных, не требуют отдельной программы для их распаковки (получения исходных файлов, из которых они созданы), если исполняемый код можно выполнить в указанной операционной системе. Это удобно, когда неизвестно, есть ли у пользователя, которому передаётся архив, соответствующая программа распаковки.
Основной способ использования самораспаковывающихся архивов — создание программ для установки ПО без использования систем управления пакетами.
Исполняемый код, присоединённый к архиву, может представлять собой полноценную программу распаковки. Так как существует вероятность выполнения кода распаковщика, самораспаковывающийся архив или замаскированный под него файл может использоваться для распространения вредоносного ПО.
Основные и дополнительные системные файлы ЭВМ. Функции системных файлов. Реестр, программа работы с реестром, программа для работы с файлами инициализации. Этапы загрузки ЭВМ. Способы и этапы перезагрузки ЭВМ.
Системный файл — компьютерный файл, необходимый для функционирования операционной системы. В зависимости от контекста может означать:
- .sys — расширение файла Microsoft Windows для файлов, используемых системой
- Системное хранилище в Mac OS
- Любой файл с указанным атрибутом «Системный».
- sys — корневой каталог в Sysfs
Системные файлы являются скрытыми по умолчанию. Для предотвращения случайного изменения или удаления системных файлов лучше всего оставить их скрытыми. Дополнительные сведения о просмотре системных файлов см. в разделе Отображение скрытых файлов.
Не рекомендуется изменять системные файлы, т. е. переименовывать, перемещать или удалять их, поскольку это может привести к неправильной работе компьютера. Если изменение системного файла сразу не отражается на работе компьютера, при следующем запуске ОС Windows или программы компьютер может работать неправильно.
Реестр (системный реестр) - это иерархическая база данных, содержащая записи, определяющие параметры и настройки операционных систем Microsoft Windows. Реестр в том виде, как он выглядит при просмотре редактором реестра, формируется из данных, источниками которых являются файлы реестра и информация об оборудовании, собранная в процессе загрузки. В описании файлов реестра на английском языке используется термин "Hive". В некоторых работах его переводят на русский как "Улей". Microsoft в своих документах переводит это как "Куст". Файлы реестра создаются в процессе установки операционной системы и хранятся в папке %SystemRoot%\system32\config (обычно C:\windows\system32\config). Для операционных систем Windows 2000/XP это файлы с именами
default
sam
security
software
system
.В процессе загрузки система получает монопольный доступ к данным файлам и, поэтому, стандартными средствами работы с файлами вы ничего с ними сделать не сможете (открыть для просмотра, скопировать, удалить, переименовать). Для работы с содержимым системного реестра используется специальное программное обеспечение - редакторы реестра (REGEDIT.EXE, REGEDT32.EXE), являющиеся стандартными компонентами операционной системы. Для запуска реестра используется "Пуск" "Выполнить" - regedit.exe
В Visual FoxPro для автоматической установки рабочей среды используются файлы инициализации FOXPRO.INI и CONFIG.FPW.
Директива «use 16» указывает на генерирование 16-битного кода. «org 100h» объявляет пропуск 256 байт (адреса 0000h – 00FFh). Указанные адреса зарезервированы под служебные данные (PSP).
Далее следуют команды. В регистр DX помещается адрес строки hello. Затем вызывается функция номер 9 прерывания 21h для вывода строки на экран.
Завершение работы программы осуществляется вызовом функции 4C с параметром того же прерывания 21h.
Строка hello завершается символом ‘$’, который в системе DOS обозначает конец строки.
Следует помнить, что программы типа COM не поддерживаются 64-разрядными ОС Windows. Для запуска таких программ под этими операционными системами следует использовать программу DOSBox, либо воспользоваться форматом PE, рассмотренном ниже.
Формат MZ
MZ — стандартный формат 16-битных исполнимых файлов с расширением .EXE для DOS. Назван так по сигнатуре — ASCII-символам MZ (4D 5A) в первых двух байтах.
Пример простой программы с использованием формата MZ:
Для создания нужно использовать директиву «format MZ». По умолчанию код для этого формата 16-битный.
«segment» определяет новый сегмент, за ним должна следовать метка, чьим значением будет номер определяемого сегмента. Опционально за этой директивой может следовать «use16» или «use32», чтобы указать разрядность кода в сегменте. Начало сегмента выровнено по параграфу (16 байт). Все метки, определенные далее, будут иметь значения относительно начала этого сегмента. В примере выше объявляются 2 сегмента: «data_seg» и «code_seg».
«entry» устанавливает точку входа для формата MZ, за ней должен следовать дальний адрес (имя сегмента, двоеточие и смещение в сегменте) желаемой точки входа. В нашем случае объявлена метка «start».
«stack» устанавливает стек для MZ. За директивой может следовать числовое выражение, указывающее размер стека для автоматического создания, либо дальний адрес начального стекового фрейма, если вы хотите установить стек вручную. Если стек не определен, он будет создан с размером по умолчанию в 4096 байт.
«heap» со следующим за ней значением определяет максимальный размер дополнительного места в параграфах (это место в добавление к стеку и для неопределенных данных). Используйте «heap 0», чтобы всегда отводить только память, которая программе действительно нужна.
Формат MZ, аналогично COM-программам, не поддерживается 64-рязрядными ОС Windows.
Формат PE
PE — это сокращение от Portable Executable, т.е. переносимый (универсальный) исполняемый файл. Этот формат появился еще в поздние времена Windows 3.11, но настоящее распространение получил с расцветом Windows 95. Можно сказать, что сейчас на компьютерах с Windows 9x/2K/XP/Vista/7 находится 95% исполняемых (exe, dll, драйверы(sys)) файлов — это PE файлы.
Чтобы выбрать формат PE, нужно использовать директиву «format PE», за ней могут следовать дополнительные настройки формата: «console», «GUI» или оператор «native», чтобы выбрать целевую подсистему (далее может следовать значение с плавающей точкой, указывающее версию подсистемы), «DLL» помечает файл вывода как динамическую связывающую библиотеку. Далее может следовать оператор «at» и числовое выражение, указывающее базу образа PE, и опционально оператор «on» со следующей за ним строкой в кавычках, содержащей имя файла, выбирающей заглушку MZ для PE программы (если указанный файл не в формате MZ, то он трактуется как простой двоичный исполняемый файл и конвертируется в формат MZ). По умолчанию код для этого формата 32-битный.
Пример объявления формата PE со всеми свойствами:
format PE GUI 4.0 DLL at 7000000h on 'stub.exe'
«section» определяет новую секцию, за ней должна следовать строка в кавычках, определяющая имя секции, и далее могут следовать один или больше флагов секций. Возможные флаги такие: «code», «data», «readable», «writeable», «executable», «shareable», «discardable», «notpageable». Начало секции выравнивается по странице (4096 байт).
Пример объявления секции PE:
section '.text' code readable executable
Вместе с флагами также может быть определен один из специальных идентификаторов данных PE, отмечающий всю секцию как специальные данные, возможные идентификаторы: «export», «import», «resource» и «fixups». Если секция помечена для содержания настроек адресов, они генерируются автоматически, и никаких данных определять больше не требуется. Также данные ресурсов могут быть сгенерированы автоматически из файлов ресурсов, этого можно добиться, написав после идентификатора «resourse» оператор «from» и имя файла в кавычках.
Ниже вы можете увидеть примеры секций, содержащих некоторые специальные данные:
section '.reloc' data discardable fixups
section '.rsrc' data readable resource from 'my.res'
«entry» создает точку входа для PE, далее должно следовать значение точки входа.
«stack» устанавливает размер стека для PE, далее должно следовать значение зарезервированного размера стека, опционально может следовать отделенное запятой значение начала стека. Если стек не определен, ему присваивается размер по умолчанию, равный 4096 байт.
«heap» выбирает размер дополнительного места для PE, далее должно следовать значение для зарезервированного для него места, опционально ещё может быть значение его начала, отделенное запятой. Если дополнительное место не определено, оно ставится по умолчанию равным 65536 байт, если не указано его начало, то оно устанавливается равным 0.
«data» начинает определение специальных данных PE, за директивой должен следовать один из идентификаторов данных («export», «import», «resource» или «fixups») или номер записи данных в заголовке PE. Данные должны быть определены на следующих строках и заканчиваться директивой «end data». Если выбрано определение настроек адресов, они генерируются автоматически, и никаких данных определять больше не требуется. То же самое относится к ресурсам, если за идентификатором «resourse» следует оператор «from» и имя файла в кавычках — в этом случае данные берутся из этого файла ресурсов.
Пример простой программы с использованием формата PE:
В данном примере для работы с консолью использованы функции WinAPI.
Вот такой получился краткий (надеюсь, для кого-то полезный) обзор использования форматов PE и MZ. За бортом данной статьи оказались ELF и COFF, за что прошу сильно не судить.
EXE – распространенный файловый формат еще со времен ОС MS-DOS. Рассмотрим, что это за файлы, их наз.
EXE – распространенный файловый формат еще со времен ОС MS-DOS. Рассмотрим, что это за файлы, их назначение и задачи, какими программами запускаются, на что обратить внимание при работе с ними.
Часто встречающийся файловый формат – EXE. Помогает запустить установку программ на компьютер. Как открыть файл EXE в разных операционных системах, просмотреть или отредактировать содержимое – рассмотрим подробнее.
Формат EXE
EXE применяется для названия файлов-исполнителей. Это сокращение английского «executable files» – исполняемый файл. Используется в операционных системах Microsoft Windows, MS-DOS. Его задача – запуск инсталляции (деинсталляции) софта на устройство. Для этого в нем записан сценарий и код, которые запустят процесс.
В файле EXE находятся:
- Стартовый блок установки.
- Данные для загрузчика файла.
- Ресурсы программы – графические, медиа-элементы в сжатом виде.
- Формы объектов – иконки программ, листы.
При открытии файла запускается автоматический процесс распаковки компонентов папки с приложением или загрузочного диска. Типичные примеры файлов .EXE – Setup.exe, Install.exe. Они входят в состав разных программ: игр, офисных и графических редакторов, других.
Файл может быть закодирован и сжат архиватором в самораспаковывающийся архив. Инсталляция проводится в ту же директорию или в указанную пользователем.
Создание файлов .EXE
На персональном компьютере с ОС Microsoft Windows затруднений при открытии файла не возникает (об исключениях ниже). Сложности будут, если у пользователя Linux, Mac OS или мобильное устройство. Частый вопрос – как открыть EXE файл для редактирования или просмотра. Разбираемся по порядку.
На компьютере
Как открыть файл .EXE зависит от операционной системы устройства. Если это версии ОС Microsoft Windows, то сложностей быть не должно – под эту ОС файлы и разрабатывались. В основном они запускаются автоматически, для просмотра содержимого можно применить ряд утилит. Сложнее задача решить на ОС Linux или Mac. Но и тут выходы есть. Разберем подробней.
ОС Microsoft Windows 7
Для запуска применяем двойной щелчок манипулятора. Файл начнет устанавливаться и распаковываться (если это архив). Для просмотра содержимого без инсталляции подойдут утилиты Windows:
- 7Zip – утилита для сжатия данных. Нужный файл выбирается при помощи пункта меню архиватора.
- VMware ThinApp – софт для просмотра и переноса программ на другие платформы.
- Microsoft Visual Studio – программа для разработки приложений.
- IcoFX – утилита для просмотра, изменения значков из файловых ресурсов.
Для редактирования файлов .EXE подойдет Resource Hacker и аналогичные программы. Это редактор с функцией доступа в исполнительные файлы (.EXE, .DLL) для просмотра и замены в них данных.
ОС Microsoft Windows 10
Программы и принцип применения аналогичны, описанным выше. Сложность может быть в некорректном редактировании реестра Windows. Поможет модификация конфигурационного Reg-файла. Для него скачивается архив, соответствующий версии ОС Microsoft Windows, он распаковывается и после перезагрузки ПК файл .EXE должен открываться.
ОС Mac
На ПК с этими ОС напрямую открыть и запустить файл с форматом .EXE невозможно. Потребуются программы-эмуляторы, которые запустят Windows и ее приложения на ОС Mac:
- VMware Workstation.
- Parallels Desktop.
- Oracle VM VirtualBox.
- Kronenberg WineBottler.
- CodeWeavers CrossOver.
- Cedega.
- Darwine.
Windows приложения работают с эмуляторами без сбоев, для переключения на установленную на компьютере ОС не нужно перезагружать ПК.
ОС Linux
Как и ОС Мас напрямую из Linux открыть .EXE не удастся. Применяются программы-эмуляторы Windows, указанные выше. После запуска виртуального сеанса Windows, файл будет открыт.
ОС Android
Как открыть EXE файл на Андроиде при том, что формат не предназначен для работы с ним? Структура и состав файлов EXE другой, прямой запуск невозможен. Есть два способа открыть файл:
- При помощи удаленного доступа.
- С программой-эмулятором Microsoft Windows.
Второй вариант проще. К таким утилитам относятся: BOCHS, Limbo, QEMU и другие. Принцип действий идентичен: скачать и установить приложение на мобильное устройство, запустить утилиту.
Возможные проблемы с файлами .EXE
Стоит быть внимательными при открытии файлов этого типа – они могут содержать в себе вирусное программное обеспечение. Получив файл от неизвестного отправителя, скачав с непроверенного источника, не стоит открывать его и запускать инсталляцию.
Файлы .EXE могут не работать, если рассчитаны на другую версию ОС Windows. Решение – в разделе «Свойства» файла зайти в пункт «Совместимость» и вручную изменить версию ОС. Не в 100% случаев, но такие действия помогают.
Существует два основных типа загрузочных программ: EXE и COM. Рассмотрим требования к EXE-программам. DOS имеет четыре требования для инициализации ассемблерной EXE-программы: 1) указать ассемблеру, какие сегментные регистры должны соответствовать сегментам, 2) сохранить в стеке адрес, находящийся в регистре DS, когда программа начнет выполнение, 3) записать в стек нулевой адрес и 4) загрузить в регистр DS адрес сегмента данных.
Существуют определенные различия между программой, выполняемой как EXE-файл и программой, выполняемой как COM-файл.
1. Размер программы. EXE-программа может иметь любой размер, в то время как COM-файл ограничен размером одного сегмента и не превышает 64К. COM-файл всегда меньше, чем соответствующий EXE-файл; одна из причин этого - отсутствие в COM-файле 512-байтового начального блока EXE-файла.
2. Сегмент стека. В EXE-программе определяется сегмент стека, в то время как COM-программа генерирует стек автоматически. Таким образом при создании ассемблерной программы, которая будет преобразована в COM-файл, стек должен быть опущен.
3. Сегмент данных. В EXE программе обычно определяется сегмент данных, а регистр DS инициализируется адресом этого сегмента. В COM-программе все данные должны быть определены в сегменте кода.
4. Инициализация. EXE-программа записывает нулевое слово в стек и инициализирует регистр DS. Так как COM-программа не имеет ни стека, ни сегмента данных, то эти шаги отсутствуют. Когда COM-программа начинает работать, все сегментные регистры содержат адрес префикса программного сегмента (PSP),
- 256-байтового (шест. 100) блока, который резервируется операционной системой DOS непосредственно перед COM или EXE программой в памяти. Так как адресация начинается с шест. смещения 100 от начала PSP, то в программе после оператора SEGMENT кодируется директива ORG 100H.
Warning: No STACK Segment
(Предупреждение: Сегмент стека не определен)
ПРИМЕР ПРОГРАММЫ
Программа преобразования двузначного шестнадцатеричного числа в символьном виде в двоичное представление.
Выход: результат преобразования помещается в регистр dl.
data segment para public “data” ;сегмент данных
message db “Введите две 16-теричные цифры, $”
stk segment stack
db 256 dup (“?”) ;сегмент стека
code segment para public “code” ;начало сегмента кода
main proc ;начало процедуры main
mov ax,data ;адрес сегмента данных в регистр ах
mov ds,ax ;ax в ds
mov dx,offset message
xor ax,ax ;очистить регистр ах
mov ah,1h ;1h в регистр ah
int 21h ;генерация прерывания с номером 21h
mov dl,al ;содержимое регистра al в регистр dl
sub dl,30h ;вычитание: (dl)=(dl)-30h
cmp dl,9h ;сравнить (dl) с 9h
jle M1 ;перейти на метку М1, если dl
sub dl,7h ;вычитание: (dl)=(dl)-7h
M1: ;определение метки М1
mov cl,4h ;пересылка 4h в регистр сl
shl dl,cl ;сдвиг содержимого dl на 4 разряда влево
int 21h ;вызов прерывания с номером 21h
sub al,30h ;вычитание: (dl)=(dl)-30h
cmp al,9h ;сравнить (al) c 9h
jle M2 ;перейти на метку М2, если al
sub al,7h ;вычитание: (al)=(al)-7h
M2: ;определение метки М2
add dl,al ;сложение: (dl)=(dl)+(al)
mov ax,4c00h ;пересылка 4с00h в регистр ax
int 21h ;вызов прерывания с номером 21h
main endp ;конец процедуры main
code ends ;конец сегмента кода
end main ;конец программы с точкой входа main
Строки 4-6 описывают сегмент стека, который является просто областью памяти длиной 256 байт, инициализированной символами «”?”». Отличие сегмента стека от сегментов других типов состоит в использовании и адресации памяти. В отличие от сегмента данных (наличие которого необязательно, если программа не работает с данными), сегмент стека желательно определять всегда.
Строка 9 содержит директиву ассемблера, которая связывает сегментные регистры с именами сегментов.
Строки 10-11 выполняют инициализацию сегментного регистра DS.
Строка 15 подготавливает регистр АХ к работе, обнуляя его.
Строки 16-17 обращаются к средствам операционной системы для ввода символа с клавиатуры. Введенный символ операционная система помещает в регистр AL.
Строка 18 пересылает содержимое AL в регистр DL. Это делается для того, чтобы освободить AL для ввода второй цифры.
Строка 19 преобразует символьную цифру в ее двоичный эквивалент путем вычитания 30h, в результате чего в регистре DL будет двоичное значения числа.
В строках 20-21 выясняется, нужно ли корректировать двоичное значение DL. Если оно лежит в диапазоне 0…9, то в DL находится правильный двоичный эквивалент введенного символа шестнадцатеричной цифры. Если значение в DL больше 9, то введенная цифра является одним из символов A,B,C,D,E,F. В первом случае строка 21 передаст управление на метку М1.
В строках 24-25 значение в DL сдвигается на 4 разряда влево, освобождая место в младшей тетраде под младшую шестнадцатеричную цифру.
В строке 26 в регистр AL вводится вторая шестнадцатеричная цифра.
В строках 27-29 выясняется, попадает ли двоичный эквивалент второго символа шестнадцатеричной цифры в диапазон 0…9. Наша вторая цифра не попадает в диапазон, поэтому для получения правильного двоичного эквивалента нужно произвести дополнительную корректировку. Это делается в строке 38.
Строки 33-34 предназначены для завершения программы и возврата управления операционной системе.
СТРУКТУРЫ
Описание типа структуры
Структура - это составной объект, занимающий несколько соседних ячеек памяти. Это тип данных, состоящий из фиксированного числа элементов разного типа. Компоненты структуры называются полями, они могут быть разного типа (размера) - байт, слово и т. д. Поля именуются, доступ к полям осуществляется по именам. Для использования структур в программе необходимо выполнить 3 действия.
1. Задать шаблон структуры. По смыслу это означает определение нового типа данных, который впоследствии можно использовать для определения переменных этого типа.
2. Определить экземпляр структуры. Этот этап подразумевает инициализацию конкретной переменной с заранее определенной структурой.
3. Организовать обращение к элементам структуры.
Существует разница между описанием структуры в программе и ее определением. Описание структуры в программе означает лишь указание компилятору ее схемы или шаблона; память при этом не выделяется. Компилятор извлекает из этого шаблона информацию о расположении полей структуры и их значениях по умолчанию. Определение структуры означает указание транслятору на выделение памяти и присвоение этой области памяти символического имени. Описать структуру можно только один раз, а определить любое количество раз.
Описание шаблона структуры.
Прежде чем использовать структуру, надо описать ее тип - указать, сколько в ней полей, какие имена у полей и т. д. Описание типа структуры выглядит так:
Описание типа открывает директива STRUC, где указывается имя, которое дали типу структуры. Это же имя должно быть в директиве ENDS. Между этими двумя директивами может быть указано любое число директив, описывающих поля структуры.
Например, тип структуры DATE из трех полей Y (год), M(месяц), D(день) можно описать так:
Описание типа структуры носит чисто информационный характер, по нему ассемблер ничего не заносит в машинную программу, поэтому такое описание можно размещать в любом месте программы, но обязательно до описания переменных этого типа.
После того как описан тип структуры, можно определять в программе переменные этого типа, отводить под них память. Такие переменные называются переменными-структурами или просто структурами. Описываются они с помощью директив следующего вида:
Пример описания переменных-структур:
Это директивы особого рода. До этого мы рассматривали директивы, названиями которых были служебные слова, а здесь названием является имя DATE. Каждая такая директива описывает одну переменную, имя которой указывается в начале директивы.
DT2 DATE эквивалентно DT2 DATE
DT3 DATE < , , >эквивалентно DT3 DATE
Одной директивой можно описать сразу несколько структур, т. е. можно описать массив, элементами которого являются структуры. Например по директиве
DTS DATE < , 12, 5 >10 dup (<>)
описывается массив из 11 структур типа DATE, причем поля первой из них будут иметь начальные значения: 2004, 12, 5, а остальные десять структур получают один и тот же набор начальных значений, взятых по умолчанию: 2004, 3, ?.
Описав тип структуры и переменные этого типа, получаем право работать с этими переменными-структурами. Как единое целое структуры обрабатываются редко, обычно они обрабатываются по полям. чтобы сослаться на поле структуры, надо использовать конструкцию вида
Такая конструкция обозначает ту ячейку памяти, которую занимает указанное поле указанной переменной. Встречая эту конструкцию, ассемблер заменяет ее на адрес данной ячейки.
Пример. Если в переменной DT1 хранится мартовская дата, то требуется записать сюда дату следующего дня года.
jne FIN ; не март - FIN
je APRL ; 31 марта - APRL
inc DT1.D ; следующий день в марте
APRL: mov DT1.M, 4 ; замена 31 марта 1 апреля
ОБЪЕДИНЕНИЯ
Объединение - тип данных, позволяющий трактовать одну и ту же область памяти как данные, имеющие разные типы и имена. Описание объединений в программе напоминает описание структур, т. е. сначала указывается шаблон, в котором с помощью директив описания данных перечисляются имена и типы полей:
Отличие объединений от структур состоит в том, что при определении переменной типа объединения память выделяется в соответствии с размером максимального элемента. Обращение к элементам объединения происходит по их именам, но при этом нужно помнить, что все поля в объединении накладываются друг на друга. В качестве элементов объединения можно использовать и структуры.
В Windows: Microsoft Windows, VMware ThinApp, Microsoft Visual Studio, IcoFX
В Mac OS: Parallels Desktop 7 для Mac с установленной Microsoft Windows, VMware Fusion 4 с установленной Microsoft Windows, Oracle VM VirtualBox с установленной Microsoft Windows, CodeWeavers CrossOver, Darwine, Kronenberg WineBottler
В Linux: CodeWeavers CrossOver, Oracle VM VirtualBox с установленной Microsoft Windows, Wine, Cedega, DataFlex
В MS-DOS: MS-DOS
В Symbian: Symbian OS
В Sony PlayStation: Sony PlayStation
Описание EXE
Популярность:
Разработчик: Microsoft
Расширение EXE – это файл, который используется традиционно в качестве исполняемого файла для программ со времен первой DOS. Есть несколько версий этого формата, но все служат одной цели – для запуска программы.
EXE формат был, и до сих пор используются во многих операционных системах, включая MS-DOS, Windows, OS/2, Symbian или OpenVMS. Эти файлы могут быть найдены в 16-разрядной, 32-разрядной и 64-разрядной версиях ОС.
Практически каждая программа имеет один или несколько исполняемых файлов для запуска. Вероятно, это один из наиболее часто используемых форматов файлов.
В дополнение к исполняемому коду, *.EXE файлы могут содержать различные данные, например, иконки.
Расширение exz – это ошибочное расширение для EXE.
ВНИМАНИЕ: Исполняемые файлы также используются для распространения троянов и других вредоносных программ. Всегда будьте осторожны при открытии неизвестных файлов *.EXE, так как вы можете заразиться.
MIME тип: application/octet-stream, application/x-msdownload, application/exe, application/x-exe, application/dos-exe, vms/exe, application/x-winexe, application/msdos-windows, application/x-msdos-program
HEX код: 4D 5A
ASCII код: MZ
Другие программы, связанные с расширением EXE
Читайте также: