Архитектура ЭВМ Практика 2. Основы ассемблера..

Презентация:



Advertisements
Похожие презентации
Программирование на языке низкого уровня Ассемблер.
Advertisements

Программирование на Ассемблер к.т.н., доц. Красов А.В. Лекция 1 ФакультетМТС Курс3 Семестр6 Форма контролязачет Лекции14 часов Лабораторные работы12 часов.
Средства разработки программ на ассемблере. Assembler. Тема 5:
Архитектура ЭВМ Практика 3. Линейные программы на языке ассемблера.
Директивы сегментации. Упрощенные директивы сегментации. Лекция доцента кафедры ИВТ ГрГУ кандидата технических наук Ливак Е.Н.
Язык ASSEMBLER Команды пересылки данных Лекция доцента кафедры ИВТ ГрГУ кандидата технических наук Ливак Е.Н.
Уровни организации ЭВМ. Машинный уровень Лекция 5.
- - Реальный режим работы (Real mode) – это режим в котором работал базовый 16-и разрядный МП i8086. Это однозадачный режим, который реализовывался операционной.
Этапы решения задач на компьютере 1. Постановка задачи. 2. Построение математической модели. 3. Составление алгоритма. 4. Запись алгоритма на языке программирования(кодирование)
Intel архитектура IA16 Основа большинства современных компьютеров.
Электронная энциклопедия. Содержание Архитектура ПК Системы счисления.
Структурная схема 8-разрядного микропроцессора регистр флагов F ДШК РК АЛУ ВРВА А М SP IP СИД БА БД устройство управления РОН A15-A0.
Лекция 6. Способы адресации в микропроцессорных системах.
Архитектура ЭВМ и микроархитектура процессора Под архитектурой ЭВМ понимают абстрактное представление вычислительной системы на структурном, схемотехническом.
Внутреннее представление чисел в памяти компьютера. Темы: 1.Представление целых чисел. А)положительные числа Б)отрицательные числа 2.Представление вещественных.
Процессоры Intel в защищенном режиме. Недостатки реального режима Невозможно адресовать пространство памяти свыше 1-го Мб Невозможно работать с массивами,
Программирование на Ассемблер к.т.н., доц. Красов А.В. Лекция 3 ФакультетМТС Курс3 Семестр6 Форма контролязачет Лекции14 часов Лабораторные работы12 часов.
Управление памятью Управление физической памятью.
Архитектура ЭВМ Практика 5. Программирование циклов.
Числа со знаком и дополнительный код Синтаксис FASM Для записи отрицательного числа в программе на ассемблере используется символ -, например: x db -5.
Транксрипт:

Архитектура ЭВМ Практика 2. Основы ассемблера.

Информация по Ассемблеру Питер Абель. Язык Ассемблера для IBM PC и программирования. М. «Высшая школа», Юров В.И. Assembler. Сн.П. «Питер», Зубков С.В. Assembler для DOS, Windows и UNIX. М. «Питер», Компьютерные учебники, справочники и методические разработки (например, Лекции.

Ассемблер На аппаратном уровне компьютер «понимает» только язык машинных команд (двоичный код). Язык ассемблера это символическое представление машинного языка. КомандаЗапись в машинных кодах Запись на языке ассемблера Загрузить в регистр AH число 4Ch. B44CMOV AH,4C Умножить число, находящееся в регистре AX на число по адресу [010A] и сохранить результат в AX. F72E0A01IMUL W/[010A] Вычесть из числа, хранящегося в AX число, хранящееся в BX и сохранить результат в AX 2BC3SUB AX,BX

Регистры процессора Регистр – это элемент памяти микропроцессора для временного хранения данных. Каждый регистр процессора имеет своё обозначение и функциональное назначение. Существует 16 пользовательских регистров.

Регистры процессора Регистры общего назначения (РОН): Регистры сегментов: Регистры состояния и управления:

Пользовательские регистры AX (AH/AL) (Accumulator register) аккумулятор. Применяется для хранения промежуточных данных. Например, команды умножения, деления и сдвига предполагают использование регистра AX. BX (BH/BL ) (Base register) базовый регистр. Применяется для хранения базового адреса некоторого объекта в памяти. Может использоваться в качестве "индекса" для расширенной адресации. CX (CH/CL) (Count register) регистр-счетчик. Применяется в командах, производящих некоторые повторяющиеся действия. Его использование зачастую неявно и скрыто в алгоритме работы соответствующей команды. К примеру, команда организации цикла loop кроме передачи управления команде, находящейся по некоторому адресу, анализирует и уменьшает на единицу значение регистра CX; DX (DH/DL) (Data register) регистр данных. Так же, как и регистр AX, он хранит промежуточные данные. В некоторых командах его использование обязательно; для некоторых команд это происходит неявно.

Регистры сегментов Отвечают за хранение базового адреса сегментов данных, кода, стека и дополнительных данных. CS (code segment) содержит адрес сегмента с машинными командами, к которому имеет доступ микропроцессор (то есть эти команды загружаются в конвейер микропроцессора). DS (data segment) хранит адрес сегмента данных текущей программы. SS (stack segment) - содержит адрес сегмента стека. Работа со стеком организуется по принципу: последний записанный в эту область элемент выбирается первым. ES, GS, FS - дополнительный сегмент данных

Регистр флагов

Регистр указателя команды Регистр IP (Instraction Pointer) содержит смещение следующей подлежащей выполнению команды относительно содержимого регистра кода CS в текущем сегменте команд.

Организация доступа к памяти Используется «Сегментированная модель» доступа к памяти. Адрес начала сегмента хранится в соответствующем регистре. Внутри сегмента программа обращается к адресам относительно начала сегмента линейно, т.е. начиная с 0 и заканчивая адресом, равным размеру сегмента. Этот относительный адрес, или смещение, который микропроцессор использует для доступа к данным внутри сегмента, называется эффективным.

Организация доступа к памяти (2) Диапазон изменения физического адреса в реальном режиме от 0 до 1 Мбайт. Максимальный размер сегмента 64 Кбайт. Это объясняется 16-разрядной архитектурой регистров. Максимальное значение, которое может содержать 16-ти разрядный регистр равно: 2 (16-1) = = 64 Кбайт

Организация доступа к памяти (3) В сегментном регистре содержаться только старшие 16 бит физического адреса начала сегмента. Недостающие младшие 4 бита 20-битного адреса получаются сдвигом в сегментном регистре влево на 4 разряда.

Организация доступа к памяти (4) Память FFFFF Сегменты Адрес Сегментный регистр

Пример формирования физического адреса Пусть содержимое сегментного регистра равно: 1А62h После сдвига влево на 4 разряда получим: 1А620h Смещение пусть равно: 01B5h К физическому адресу начала сегмента прибавляется смещение: 1А620h + 01B5h A7D5

Разработка программ на ассемблере Исходный текст программы (*.asm) Объектный модуль (*.obj) Исполняемый модуль (*.exe) Текстовый редактор Транслятор (TASM.EXE) Транслятор (TASM.EXE) Компоновщик (ALINK.EXE) Компоновщик (ALINK.EXE) Отладчик (AFDPRO.EXE) Отладчик (AFDPRO.EXE)

Запуск транслятора, компоновщика, отладчика Трансляция - процесс формирования объектного модуля из текстового файла *.asm. Трансляция выполняется следующей командой (например): C:\TASM\tasm.exe myfile.asm Компоновка - процесс формирования загрузочного модуля из нескольких объектных модулей. Компоновка выполняется следующей командой (например): C:\TASM\alink.exe myfile.obj Отладка - процесс выполнения разработанной программы с целью проверки её работы. Отладка выполняется следующей командой (например): C:\TASM\afdpro.exe myfile.exe

Отладчик AFD PRO Выход из отладчика – выполнить команду quit, написав ее в строке CMD

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

Практическое задание Написать исходный текст программы «Перевод в систему счисления». Скомпилировать и запустить программу в отладчике. Проверить правильность работы программы при переводе в системы счисления с основанием 2, 8, 10. Модифицировать текст программы так, чтобы проверить, правильно ли производится перевод в систему счисления c основанием 16. Объяснить полученный результат.

Работа 1.Ввести текст программы. 2.Скомпилировать программу посредством TASM.EXE и ALINK.EXE, запустить программу в отладчике AFD PRO и пошагово выполнить программу. Сделать скриншот работы программы в отладчике перед началом вывода результата на экран. 3.Сформировать тестовые примеры для перевода чисел из системы счисления 16 в системы счисления 2, 8, 10. Вручную выполнить перевод. Сравнить результаты с работой приложения. 4.Сформировать тестовые примеры для перевода чисел в систему счисления с основанием 16. Вручную выполнить перевод. Сравнить результаты с работой приложения. Объяснить результат.

Отчет должен содеpжать: 1.Текст приложения. 2.Алгоритм работы приложения (т.е. смысл действий, описанных программой). 3.Скриншот выполнения приложения в отладчике AFD PRO. 4.Тестовые примеры перевода чисел из одной системы счисления в другую. 5.Описание модификации текста приложения, обеспечивающие реализацию тестов. 6.Результаты работы тестового приложения на примерах.