1 / 26

Архитектура ЭВМ

Архитектура ЭВМ. Практика 2 . Основы ассемблера. Введение. Информация по Ассемблеру. Питер Абель. Язык Ассемблера для IBM PC и программирования. М. «Высшая школа», 1992. Юров В.И. Assembler . Сн.П . «Питер», 2000. Зубков С.В. Assembler для DOS, Windows и UNIX. М. «Питер», 2004.

ryu
Download Presentation

Архитектура ЭВМ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Введение

  3. Информация по Ассемблеру • Питер Абель. Язык Ассемблера для IBM PC и программирования. М. «Высшая школа», 1992. • Юров В.И. Assembler. Сн.П. «Питер», 2000. • Зубков С.В. Assembler для DOS, Windows и UNIX. М. «Питер», 2004. • Компьютерные учебники, справочники и методические разработки (например, http://oplk.narod.ru/Html/Index_Asm.htm) • Лекции.

  4. Ассемблер • На аппаратном уровне компьютер «понимает» только язык машинных команд (двоичный код). • Язык ассемблера — это символическое представление машинного языка.

  5. Регистры процессора

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

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

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

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

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

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

  12. Организация доступа к памяти

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

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

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

  16. FFFFF Физический адрес Эффективный адрес ... Сегменты Смещение + Адрес Сегментный регистр << 4 00000 Память Организация доступа к памяти (4)

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

  18. Разработка программ на ассемблере

  19. Разработка программ на ассемблере Текстовый редактор Компоновщик (ALINK.EXE) Транслятор (TASM.EXE) Отладчик (AFDPRO.EXE)

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

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

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

  23. Задание

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

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

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

More Related