|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Mov dx,offset end_line
Int 21h Mov dx,offset string_1 Int 21h
Здесь оператор offset означает, что в регистр dx загружается начальный адрес области памяти с данными end_line, а затем области памяти с данными string_1. Отметим, что исполняемая часть программы, то есть сегмент кода, всегда должна располагаться после идентификатора.code и обязательно начинаться меткой, например, start или begin или любой другой. После метки начала программы всегда должны стоять две команды:
mov ax,@data Mov ds,ax
Эти две команды обеспечивают загрузку в сегментный регистр ds начального адреса сегмента данных. С этих двух команд всегда должен начинаться сегмент кода всех программ, использующих малую модель памяти. Это необходимо делать, так как в начале исполнения программы сегментные регистры ds и es всегда настроены на начало области памяти, называемую префиксом программного сегмента. Отметим, что непосредственно загружать операндом сегментные регистры командой mov, как и другими командами, нельзя. При необходимости для быстрой настройки регистра es на начало сегмента данных (после того, как регистр ds уже настроен) можно воспользоваться следующими командами: Push ds Pop es
Здесь команда push ds загружает содержимое регистра ds в вершину стека, а команда pop es извлекает из вершины стека два ранее записанных байта и помещает их в регистр es. Конец программы всегда должен заканчиваться следующими инструкциями:
Mov ax,4c00h Int 21h End start Первые две команды обеспечивают выход работающей программы после её завершения в операционную систему DOS. Метка после команды end всегда должна совпадать с меткой, с которой начинается исполняемая часть программы. Таким образом, ассемблерная программа, выводящая на экран монитора с новой строки слово ASSEMBLER будет иметь вид:
. model small Stack 100h Data end_line db ’0dh, 0ah’,’$’ string_1 db ’ASSEMBLER’,’$’ Code begin: mov ax,@data Mov ds,ax Mov ah,09h Mov dx,offset end_line Int 21h Int 21h Mov ax,4c00h Int 21h Mov dx,offset string_1 Int 21h End begin
Отметим, что описание структуры сегмента данных в исходном тексте программы может располагаться и в конце программы перед командой end begin. Для запоминания на жестком диске набранной программы нажимается клавиша F2, а затем клавиша Esc, и после этого имя набранного Вами файла с расширением.asm появится в DOSовских панелях. Для повторного открытия данного файла с целью его редактирования необходимо нажать клавишу F4. После редактирования текста программы отмеченные выше действия для записи файла на диск повторяются, то есть нажимаются клавиши F2, а затем Esc. После набора текста программы и его записи на диск необходимо выполнить трансляцию программы и её компоновку. Трансляция исходной программы осуществляется с помощью DOSовской программы tasm.exe. Для этого формируется командная строка вида:
D:\SHELLS>tasm.exe lab_1.asm
Командную строку можно сформировать следующим образом: вначале маркер (светлая полоса) устанавливается на файл tasm.exe и нажимаются клавиши Ctrl – Enter, затем маркер устанавливается на файл lab_1.asm и также нажимаются клавиши Ctrl – Enter. После формирования командной строки нажимается клавиша Enter и тогда в DOSовских панелях (на жестком диске), если нет синтаксических ошибок в исходном тексте программы, появляется объектный файл с расширением obj, то есть lab_1.obj. Этот файл необходимо скомпоновать с встроенными в операционную систему DOS вспомогательными программами, например подпрограммами, которые обслуживают различные прерывания. Компоновка программы осуществляется так же с помощью DOSовской программы tlink.exe. Для этого набирается командная строка вида:
D:\SHELLS>tlink.exe lab_1.obj
и нажимается клавиша Enter. После этого на диске появится файл с картой распределения памяти lab_1.map и готовый к исполнению бинарный файл с расширением exe, то есть lab_1.exe. Для его исполнения подводится маркер к этому файлу и нажимается клавиша Enter. Если при трансляции программы были обнаружены ошибки, то объектный файл с расширением.obj не образуется и некоторую информацию о них можно получить нажав клавиши Ctrl – o. Эти клавиши используются и для просмотра результата выполнения готовой программы. Для возврата в DOSовские панели после просмотра результатов трансляции или выполнения программы так же используется комбинация этих клавиш.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |