Простые программы на языке ассемблера 8086 с пояснениями

Попробуйте наш инструмент устранения неполадок





Программирование на уровне сборки очень важно для низкоуровневого Встроенная система design используется для доступа к инструкциям процессора для управления оборудованием. Это наиболее примитивный язык машинного уровня, используемый для создания эффективного кода, который потребляет меньшее количество тактовых циклов и занимает меньше памяти по сравнению с язык программирования высокого уровня . Это полный аппаратно-ориентированный язык программирования для написания программы, которую программист должен знать о встроенном оборудовании. Здесь мы предоставляем основы программирования 8086 на уровне ассемблера.

Программирование на уровне ассемблера 8086

Программирование на уровне ассемблера 8086



Программирование на уровне ассемблера 8086

В язык программирования ассемблера это язык низкого уровня, который разработан с использованием мнемоники. Микроконтроллер или микропроцессор могут понимать только двоичный язык, такой как 0 или 1, поэтому ассемблер преобразует язык ассемблера в двоичный язык и сохраняет его в памяти для выполнения задач. Перед написанием программы разработчики встраиваемых систем должны иметь достаточные знания о конкретном аппаратном обеспечении контроллера или процессора, поэтому сначала нам нужно было знать аппаратное обеспечение процессора 8086.


Аппаратное обеспечение процессора

Аппаратное обеспечение процессора



Архитектура процессора 8086

8086 - это процессор, который представлен для всех периферийных устройств, таких как последовательная шина, ОЗУ и ПЗУ, устройства ввода-вывода и т. Д., Которые все внешне подключены к ЦП с помощью системной шины. Микропроцессор 8086 имеет Архитектура на основе CISC , и у него есть периферийные устройства, такие как 32 ввода / вывода, Последовательная связь , воспоминания и счетчики / таймеры . Микропроцессору требуется программа для выполнения операций, требующих памяти для чтения и сохранения функций.

Архитектура процессора 8086

Архитектура процессора 8086

Программирование 8086 на уровне сборки основано на регистрах памяти. Регистр - это основная часть микропроцессоры и контроллеры которые расположены в памяти, что обеспечивает более быстрый способ сбора и хранения данных. Если мы хотим манипулировать данными с процессором или контроллером, выполняя умножение, сложение и т. Д., Мы не можем делать это непосредственно в памяти, где нужны регистры для обработки и хранения данных. Микропроцессор 8086 содержит различные типы регистров, которые можно классифицировать в соответствии с их инструкциями, например:

Регистры общего назначения : ЦП 8086 состоит из 8 регистров общего назначения, и каждый регистр имеет собственное имя, как показано на рисунке, например AX, BX, CX, DX, SI, DI, BP, SP. Все это 16-разрядные регистры, четыре из которых разделены на две части, такие как AX, BX, CX и DX, которые в основном используются для хранения чисел.

Регистры специального назначения : ЦП 8086 состоит из 2 регистров специальных функций, таких как регистры IP и регистры флагов. Регистр IP указывает на текущую выполняющуюся инструкцию и всегда работает для сбора с регистром сегмента CS. Основная функция регистров флагов заключается в изменении операций ЦП после завершения механических функций, и мы не можем получить прямой доступ.
Сегментные регистры: ЦП 8086 состоит из 4-сегментных регистров, таких как CS, DS, ES, SS, которые в основном используются для хранения любых данных в сегментных регистрах, и мы можем получить доступ к блоку памяти с помощью сегментных регистров.


Программы на простом ассемблере 8086

Программирование на ассемблере 8086 имеет некоторые правила, такие как

  • Уровень сборки программирование 8086 код должен быть написан заглавными буквами
  • После меток должно быть двоеточие, например: label:
  • Все надписи и символы должны начинаться с буквы.
  • Все комментарии набираются строчными буквами.
  • Последняя строка программы должна заканчиваться директивой END.

У процессоров 8086 есть две другие инструкции для доступа к данным, такие как WORD PTR - для слова (два байта), BYTE PTR - для байта.

Операционный код и операнд

Операционный код и операнд

Код операции: Одиночная инструкция называется операционным кодом, который может быть выполнен ЦП. Здесь инструкция «MOV» называется операционным кодом.

Операнды: Однокомпонентные данные называются операндами, которые могут управляться операционным кодом. Например, операция вычитания выполняется для операндов, которые вычитаются операндом.
Синтаксис: SUB b, c

8086 микропроцессорных программ на языке ассемблера

Напишите программу для чтения символа с клавиатуры

MOV ah, 1h // подпрограмма ввода с клавиатуры
INT 21h // ввод символов
// символ хранится в al
MOV c, al // копировать символ из alto c

Напишите программу для чтения и отображения символа

MOV ah, 1h // подпрограмма ввода с клавиатуры
INT 21h // считываем символ в al
MOV dl, al // копировать символ в dl
MOV ah, 2h // подпрограмма вывода символов
INT 21h // отображение символа в dl

Напишите программу с использованием регистров общего назначения

ORG 100ч
MOV AL, VAR1 // проверяем значение VAR1, перемещая его в AL.
LEA BX, VAR1 // получить адрес VAR1 в BX.
MOV BYTE PTR [BX], 44h // изменяем содержимое VAR1.
MOV AL, VAR1 // проверяем значение VAR1, перемещая его в AL.
ВЕРНО
VAR1 DB 22ч
КОНЕЦ

Напишите программу для отображения строки с помощью библиотечных функций

include emu8086.inc // Объявление макроса
ORG 100ч
ПЕЧАТЬ «Hello World!»
ГОТОКСИ 10, 5
PUTC 65 // 65 - это код ASCII для 'A'
PUTC ‘B’
RET // вернуться в операционную систему.
END // директива для остановки компилятора.

Арифметические и логические инструкции

Процессы арифметики и логики 8086 разделены на три группы, такие как операции сложения, деления и увеличения. Наиболее Арифметические и логические инструкции влияют на регистр состояния процессора.

Мнемоника программирования 8086 на языке ассемблера представлена ​​в форме кода операции, такого как MOV, MUL, JMP и так далее, которые используются для выполнения операций. Программирование на языке ассемблера 8086 примеров

Добавление
ORG0000h
MOV DX, # 07H // перемещаем значение 7 в регистр AX //
MOV AX, # 09H // переместить значение 9 в аккумулятор AX //
Добавить AX, 00H // добавить значение CX со значением R0 и сохранить результат в AX //
КОНЕЦ
Умножение
ORG0000h
MOV DX, # 04H // перемещаем значение 4 в регистр DX //
MOV AX, # 08H // переместить значение 8 в аккумулятор AX //
MUL AX, 06H // Умноженный результат сохраняется в Accumulator AX //
КОНЕЦ
Вычитание
ORG 0000h
MOV DX, # 02H // перемещаем значение 2 в регистр DX //
MOV AX, # 08H // переместить значение 8 в аккумулятор AX //
SUBB AX, 09H // Значение результата сохраняется в аккумуляторе A X //
КОНЕЦ
Разделение
ORG 0000h
MOV DX, # 08H // перемещаем значение 3 в регистр DX //
MOV AX, # 19H // переместить значение 5 в аккумулятор AX //
DIV AX, 08H // конечное значение сохраняется в Accumulator AX //
КОНЕЦ

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