Вторник, 26.11.2024, 21:13
Приветствую Вас Гость | RSS
Главная | | Регистрация | Вход
Меню сайта
Форма входа
Поиск
Календарь
«  Февраль 2012  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
272829
Архив записей
Наш опрос
Оцените мой сайт
Всего ответов: 20
Мини-чат
Друзья сайта
  • Заказ Художник
  • Рыбалка
  • Новости
  • Наш университет io-96
  • Железо и другие
  • Наш Counter-Strike
  • Google ot Turbokherson
  • Google ot Turbokherson87
  • Android
  • Программы и Софт
  • Программирование
  • Лечение здоровья
  • О Ремонт компьютер
  • Наш сайт Turbokherson
  • Программирование ICQ 378204653 от Turbokherson
    Главная » 2012 » Февраль » 12 » Создание программы на языке ассемблера
    00:36
    Создание программы на языке ассемблера

    Создание программы на языке ассемблера

    В отличие от языков программирования высокого уровня, язык ассемблера поставляется без среды разработки программ. Поэтому разработчику приходится самостоятельно контролировать весь процесс создания программы. Для языка ассемблера этот процесс включает в себя следующие этапы:

    1. Постановка задачи (точное и подробное описание функциональности будущей программы, а также описание всех входных и выходных данных и способа их передачи программе);
    2. Разработка алгоритма программы (построение блок схемы, граф-схемы или текстовое или математическое описание решения);
    3. Формализация алгоритма (запись алгоритма на языке программирования).
      Создание текстового файла программы с расширением .asm (например my.asm). Отсутствие среды разработки позволяет программисту самостоятельно выбрать текстовый редактор для написания кода программы. Для этой цели подойдет любой текстовый редактор с нумерацией строк, мы рекомендуем редактор, встроенный в оболочку "FAR Manager".
    4. Компиляция программы;
      Компиляция - процесс перевода программы из текстового вида в машинный код. При использовании компилятора фирмы Borland необходимо выполнить:
      tasm my.asm
      т.е. запускаем компилятор tasm и передаем с командной строки имя файла, содержащего программу. Если программа имеет синтаксические ошибки, компилятор выдаст сообщение об ошибке с указанием номера строки и описанием для каждой ошибки (нужно вернуться на этап №3 и исправить синтаксические ошибки).
      В случае успешной компиляции будет создан файл, содержащий объектный код программы my.obj, который ещё не является исполняемым модулем.
    5. Компоновка программы;
      Компоновка - создание из файла объектного кода исполняемого модуля.
      tlink my.obj
      В качестве параметра компоновщик tlink принимает имя файла содержащего объектный код программы (в нашем случае - my.obj). В случае успешной компоновки будет создан исполняемый модуль my.exe
    6. Запуск и тестирование исполняемого модуля программы.
      На данном этапе необходимо проверить, соответствует ли написанная программа постановке задачи, сделанной нами на этапе №1. Неправильная работа программы говорит об алгоритмической ошибке (семантическая ошибка), поэтому для успешного её устранения нужно вернуться на этап разработки алгоритма (этап №2).


    Написание первой программы на языке ассемблера

    1. Постановка задачи. Написать программу, которая выводит на экран строчку "Привет!".
    2. Разработка алгоритма программы. Алгоритм линейный, разработки не требует.
    3. Формализация (запись) алгоритма
      В текстовом редакторе создаем файл privet.asm и записываем в него следующий код (без номеров строк) :

      1     data segment ;описание сегмента данных
      2           mes db 'Привет!$' ;строка для вывода на экран. '$' - признак конца строки
      3   data ends ;конец сегмента данных
      4        
      5   code segment ;начало сегмента кода
      6   start: ;метка start - начало нашей программы
      7     assume cs:code, ds: data     ;директива компилятора
      8     mov ax, data ;настройка сегмента данных
      9     mov ds, ax  
      10        
      11     mov ah, 9 ;функция №9 - вывод строки на экран
      12     lea dx, mes ;берём адрес строки
      13     int 21h ;вызов прерывания для вывода строки
      14        
      15     mov ax, 4c00h ;функция завершения программы
      16     int 21h ;завершаем программу
      17   code ends ;конец сегмента кода
      18   end start ;конец программы с точкой входа start

    4. Компиляция программы
      tasm privet.asm
    5. Компоновка программы
      tlink privet.obj
    6. Запуск и тестирование
      privet.exe

    Описание программы privet.asm

    Строки 1 - 3 программы privet.asm содержат описание сегмента данных. Сегмент данных - область память, в которой будут храниться данные для наших программ.
    Строки 5 - 17 — это код программы, её исполняемая часть.
    В 8 и 9 строках выполняется настройка сегмента данных программы.
    Строки 11 - 13 — вывод строки на экран при помощи функции №9 прерывания 21h (подробнее о функциях и работе с ними на следующей лабораторной работе).
    15 и 16 строки — стандартное завершение программы.
    После символа ';' пишутся комментарии, они не обрабатываются компилятором.

    Переход на новую строку

    Для организации перехода на новую строку достаточно вывести на экран символы перевода строки и возврата каретки (CR/LF). Эти символы имеют коды 10 и 13. Если в нашей программе необходимо после вывода строки перейти на новую, то для этого достаточно переписать вторую строку программы:

    mes2 db 'Выводим строку и переходим на новую...', 10, 13, '$'

    Переход на новую строку можно выполнить и до вывода сообщения на экран:

    mes3 db 10, 13, 'Выводим с новой строки...$'

    Задание для выполнения

    Написать программу, которая выводит одно под другим следующие сообщения:
    Привет!
    Меня зовут компьютер!
    До свидания!

    Просмотров: 1273 | Добавил: Turbokherson | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *:
    Создать бесплатный сайт с uCozCopyright MyCorp © 2024