|
Программирование ICQ 378204653 от Turbokherson |
|
Главная » 2012 » Февраль » 12
Рассмотрим процесс создания программы под компилятор TASM в ASMTool PE, допустим наша программа имеет такой вид: MODEL TINY STACK 256 DATASEG Hellostr DB 'Hello First Step Site ' CODESEG start: mov ax,@data mov ds,ax mov bx,1 mov cx,21 mov dx,offset Hellostr mov ah,40h int 21h mov ah, 04Ch int 21h end start
Копируем ее в ASMTool, или набираем если Вы это делаете с книги, либо из головы: Так как код нашей подразумевает под собой создание EXE файла 16 бит, то выбираем пункт Компиляция -> Компилировать с -> TASM -> Создать EXE 16 bit Либо нажимаем комбинацию Ctrl+B, после чего в окне компиляции видим: Ошибок комп
...
Читать дальше »
Просмотров:
1182
|
Добавил:
Turbokherson
|
Дата:
12.02.2012
|
|
Как упростить компиляцию программ на ассемблере
Как известно, компиляторы ассемблера работают в командной строке, и,
чаще всего, не имеют своего текстового редактора. А если и имеют – то
без синтаксической подсветки. Так что для набора программы можно
пользоваться редактором вроде Bred, а как без проблем компилировать – я
покажу
Инструкция
Уровень сложности: Несложно
1 шаг
Просмотров:
638
|
Добавил:
Turbokherson
|
Дата:
12.02.2012
|
|
Создание программы на языке ассемблера
В отличие от языков программирования высокого уровня, язык
ассемблера поставляется без среды разработки программ. Поэтому
разработчику приходится самостоятельно контролировать весь процесс
создания программы. Для языка ассемблера этот процесс включает в себя
следующие этапы:
- Постановка задачи (точное и подробное описание
функциональности будущей программы, а также описание всех входных и
выходных данных и способа их передачи программе);
- Разработка алгоритма программы (построение блок схемы, граф-схемы или текстовое или математическое описание решения);
- Формализация алгоритма (запись алгоритма на языке программирования).
Создание текстового файла программы с расширением .asm (например my.asm ).
Отсутствие среды разработки позволяет программисту самостоятельно
выбрать текстовый редактор для написания кода программы. Для
...
Читать дальше »
Просмотров:
1271
|
Добавил:
Turbokherson
|
Дата:
12.02.2012
|
|
На рис.1 приведена общая схема процесса разработки программы на
ассемблере. Название программы соответствует рассмотренному ранее
примеру программы. На схеме выделено четыре этапа этого процесса. На
первом этапе, когда вводится код программы, можно использовать любой
текстовый редактор. В Windows таким редактором может быть Блокнот
(Notepad). При выборе редактора нужно учитывать, что он не должен
вставлять «посторонних» символов (специальных символов форматирования). С
этой точки зрения Microsoft Word в качестве основного редактора
ассемблерных программ не годится. Очень интересный редактор — Asm Editor
for Windows. Созданный с помощью текстового редактора файл должен иметь
расширение .asm.
Рис. 1. Схема процесса разработки программы на ассемблере
Для выполнения остальных этапов разработки требуются
специализированные программны
...
Читать дальше »
Просмотров:
5856
|
Добавил:
Turbokherson
|
Дата:
12.02.2012
|
|
Ассемблер.
Альтернативный компилятор ассемблера для х86. Ассемблер написан сам на себе
имеет очень простой синтаксис. Позволяет создавать .com файл для ДОС.
Поддерживает 32 разрядные режимы адресации и данных. Доступен вместе с исходным
кодом.
Описание ассемблера.
Просмотров:
1029
|
Добавил:
Turbokherson
|
Дата:
12.02.2012
|
|
Структура COM файла Наверное всем известны файлы с расширением COM. Главным COM файлом на ПК является вездесущий command.com (командный файл DOS) . Что же такое COM файл, как он работает и запускается ? Структура COM -
файла проста . В файлах данного типа,обычно не имеющими даже заголовка
файла,содержатся только машинный код и данные программы. Размер COM - файла ограничен 64 кб, т.е. размером одного сегмента памяти В основном COM файлы пишут на языке Ассемблера, но это не обязательно. Нописать файл можно на любом языке, который можно потом компилировать. Пример небольшого COM файла выводящего на экран сообщение: .286 ; Ус
...
Читать дальше »
Просмотров:
1742
|
Добавил:
Turbokherson
|
Дата:
12.02.2012
|
|
Ассемблер (от англ. assemble — собирать) — компилятор с языка ассемблера в команды машинного языка.
Под каждую архитектуру процессора и под каждую ОС или семейство ОС
существует свой Ассемблер. Существуют также так называемые
«кросс-ассемблеры», позволяющие на машинах с одной архитектурой (или в
среде одной ОС) ассемблировать программы для другой целевой архитектуры
или другой ОС, и получать исполняемый код в формате, пригодном к
исполнению на целевой архитектуре или в среде целевой ОС.
Архитектура x86
Ассемблеры для DOS
Наиболее известными ассемблерами для операционной системы DOS являлись
Borland Turbo Assembler (TASM) и Microsoft Macro Assembler (MASM). Также
в своё время был популярен простой ассемблер A86.
Изначально они поддерживали лишь 16-битные команды (до появления
процессора Intel 80386). Более поздние версии TASM и MASM поддерживают и
32-битные команды, а также все команды, введённы
...
Читать дальше »
Просмотров:
1216
|
Добавил:
Turbokherson
|
Дата:
12.02.2012
|
|
\tasm\ tasm.exe as1.asm /L (/l - Листинг) tlink.exe as1.obj (/t для .com) as1.exe td.exe as1.exe
alt/F10
__________________________________________________________________ TASM.EXE PROG.ASM
TLINK.EXE PROG.OBJ /t
Параметр "/t" указывает TLINK.EXE, что необходимо создать файл типа COM.
___________________________________________________________________
...
Читать дальше »
Просмотров:
2770
|
Добавил:
Turbokherson
|
Дата:
12.02.2012
|
|
Содержание:
1. Покажите маленькую программку типа 'Hello, world!'
2. А как ее запустить (слинковать, асссемблировать)?
3. А где можно взять tasm и tlink?
4. Что такое PSP?
5. Где хранится командная строка и как ее получить?
6. Как узнать полный путь к запущенной пpогpамме из нее самой?
7. Что такое прерывание и как оно работает?
8. Что такое вектор прерывания?
9. А как можно сгенерировать звук?
10. Что лучше - стандартные или упрощенные директивы определения сегментов?
11. Для чего нужна команда LEA. То же самое может и OFFSET, да и Tasm
заменяет LEA на MOV...OFFSET.
12. Откуда программа узнает адрес сегмента? После компиляции стоит mov ax,1.
13. Как сделать COM с отладочной информацией, понимаемой TD ?
14. Не получается! COM есть, TDS есть, а TD отладочную информацию не
видит: "Program has no symbol table"
15. Как расчитать количество памяти, необходимое для резидента?
16. Не могу запустить дочернюю задачу функцией 4Bh
17. Не выделяется память по функции 48h
18. Да вроде все ес
...
Читать дальше »
Просмотров:
2554
|
Добавил:
Turbokherson
|
Дата:
12.02.2012
|
| |
|
|