Машинный код, языки программирования низкого уровня, язык ассемблера, ассемблер

Машинный код – система команд конкретной вычислительной машины (процессора), которая интерпретируется непосредственно процессором. Команда, как правило, представляет собой целое число, которое записывается в регистр процессора. Процессор читает это число и выполняет операцию, которая соответствует этой команде.

Язык программирования низкого уровня (низкоуровневый язык программирования) – это язык программирования, максимально приближенный к программированию в машинных кодах. В отличие от машинных кодов, в языке низкого уровня каждой команде соответствует не число, а сокращенное название команды (мнемоника). Язык низкого уровня привязан к конкретному процессору.

Язык ассемблера – это низкоуровневый язык программирования, на котором вы пишите свои программы. Для каждого процессора существует свой язык ассемблера.

Ассемблер – это специальная программа, которая преобразует (ассемблирует, то есть собирает) исходные тексты вашей программы, написанной на языке ассемблера, в исполняемый файл (файл с расширением EXE или COM).

Debug: ассемблирование и дизассемблирование

Debug— Программа-отладчик, которую используют для проверки и отладки выполняемых файлов. Также иногда называют процесс отладки программы.

Ассемблирование - процесс трансляции программы с языка ассемблера в машинный код

Дизассемблирование- процесс и/или способ получения исходного текста программы на ассемблере из программы в машинных кодах.

Строка в ассемблере, исполняемый файл. Трансляция программ

Строка – в ассемблере это обычный тип данных с которым работает программа, ее ассемблер видит как набор байт.

Исполнимый файл (исполняемый) - это разновидность файла, содержимое которого является готовой к непосредственному исполнению компьютерной программой

Обычно исполняемый файл:

- получается в результате трансляции и компоновки объектных модулей;

- содержит машинные команды и/или команды операционной системы.

Трансляция - преобразование программы, представленной на одном из языков программирования, в программу на другом языке и, в определённом смысле, равносильную первой

Программы ассемблера для компьютеров с процессором Intel.Типы программ на языке ассемблера

Программы ассемблера для компьютеров с процессорами Intel:

1. Emu8086. Работает в Windows, хотя программы пишутся под DOS.

2. TASM – Турбо Ассемблер от фирмы Borland. Можно создавать программы как для DOS так и для Windows.

3. MASM – Ассемблер от компании Microsoft

4. Debug - обладает скромными возможностями, но имеет большой плюс - входит в стандартный набор Windows (изучен в 1 и 2 лабораторных работах).

Типы:

· Программа типа COM

· Программа типа EXE

Средства DOS вывода на экран в текстовом режиме

1.Функция DOS 02h — Записать символ в STDOUT с проверкой на Ctrl-Break

Ввод: АН = 02h DL = ASCII-код символа
Вывод: Никакого, согласно документации, но на самом деле: AL = код последнего записанного символа (равен DL, кроме случая, когда DL = 09h (табуляция), тогда в AL возвращается 20h).

2.Функция DOS 06h — Записать символ в STDOUT без проверки на Ctrl-Break

Ввод: АН = 06h DL = ASCII-код символа (кроме FFh)
Вывод: Никакого, согласно документации, но на самом деле: AL = код записанного символа (копия DL)

3.Функция DOS 09h — Записать строку в STDOUT с проверкой на Ctrl-Break

Ввод: АН = 09h DS:DX = адрес строки, заканчивающейся символом $ (24h)
Вывод: Никакого, согласно документации, но на самом деле: AL = 24h (код последнего символа)

4.Функция DOS 40h — Записать в файл или устройство

Ввод: АН = 40h ВХ = 1 для STDOUT или 2 для STDERR DS:DX = адрес начала строки СХ = длина строки
Вывод: CF = 0, АХ = число записанных байт

5.INT 29h: Быстрый вывод символа на экран

Ввод: AL = ASCII-код символа

51. Машинный код, языки программирования низкого уровня, язык ассемблера, ассемблер - student2.ru
Технология получения исполняемого файла

52. !Трассировка программы: область применения. Ключи команд трансляции и компоновки

Трассировка —процесс пошагового выполнения программы. В режиме трассировки программист видит последовательность выполнения команд и значения переменных на данном шаге выполнения программы, что позволяет легче обнаруживать ошибки. Трассировка может быть начата и окончена в любом месте программы.

Наши рекомендации