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

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

Jan 13, 2016

Download

Documents

ryu

Архитектура ЭВМ. Практика 2 . Основы ассемблера. Введение. Информация по Ассемблеру. Питер Абель. Язык Ассемблера для IBM PC и программирования. М. «Высшая школа», 1992. Юров В.И. Assembler . Сн.П . «Питер», 2000. Зубков С.В. Assembler для DOS, Windows и UNIX. М. «Питер», 2004. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Архитектура ЭВМ

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

Page 2: Архитектура ЭВМ
Page 3: Архитектура ЭВМ

Информация по Ассемблеру• Питер Абель. Язык Ассемблера для IBM

PC и программирования. М. «Высшая школа», 1992.

• Юров В.И. Assembler. Сн.П. «Питер», 2000.

• Зубков С.В. Assembler для DOS, Windows и UNIX. М. «Питер», 2004.

• Компьютерные учебники, справочники и методические разработки (например, http://oplk.narod.ru/Html/Index_Asm.htm)

• Лекции.

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

Ассемблер• На аппаратном уровне компьютер «понимает»

только язык машинных команд (двоичный код).

• Язык ассемблера — это символическое представление машинного языка.

Команда Запись в машинных кодах

Запись на языке ассемблера

Загрузить в регистр AH число 4Ch.

B44C MOV AH,4C

Умножить число, находящееся в регистре AX на число по адресу [010A] и сохранить результат в AX.

F72E0A01 IMUL W/[010A]

Вычесть из числа, хранящегося в AX число, хранящееся в BX и сохранить результат в AX

2BC3 SUB AX,BX

Page 5: Архитектура ЭВМ
Page 6: Архитектура ЭВМ

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

•Регистр – это элемент памяти микропроцессора для временного хранения данных.

•Каждый регистр процессора имеет своё обозначение и функциональное назначение.

•Существует 16 пользовательских регистров.

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

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

Регистрысегментов:

Регистры состояния и управления:

Page 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, он хранит промежуточные данные. В некоторых командах его использование обязательно; для некоторых команд это происходит неявно.

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

Регистры сегментов• Отвечают за хранение базового адреса

сегментов данных, кода, стека и дополнительных данных.

▫CS (code segment) — содержит адрес сегмента с машинными командами, к которому имеет доступ микропроцессор (то есть эти команды загружаются в конвейер микропроцессора).

▫DS (data segment) —хранит адрес сегмента данных текущей программы.

▫SS (stack segment) - содержит адрес сегмента стека. Работа со стеком организуется по принципу: последний записанный в эту область элемент выбирается первым.

▫ES, GS, FS - дополнительный сегмент данных

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

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

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

Регистр указателя команды

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

Page 12: Архитектура ЭВМ
Page 13: Архитектура ЭВМ

Организация доступа к памяти• Используется «Сегментированная модель»

доступа к памяти.

▫Адрес начала сегмента хранится в соответствующем регистре.

▫Внутри сегмента программа обращается к адресам относительно начала сегмента линейно, т.е. начиная с 0 и заканчивая адресом, равным размеру сегмента. Этот относительный адрес, или смещение, который микропроцессор использует для доступа к данным внутри сегмента, называется эффективным.

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

Организация доступа к памяти (2)•Диапазон изменения физического адреса

в реальном режиме от 0 до 1 Мбайт.

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

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

Организация доступа к памяти (3)•В сегментном регистре содержаться

только старшие 16 бит физического адреса начала сегмента.

•Недостающие младшие 4 бита 20-битного адреса получаются сдвигом в сегментном регистре влево на 4 разряда.

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

Организация доступа к памяти (4)

Память

00000

FFFFF

Сегменты

АдресСегментный

регистр << 4

+Смещение

Эффективный адрес

Физический адрес

...

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

Пример формирования физического адреса• Пусть содержимое сегментного регистра

равно:

1А62h• После сдвига влево на 4 разряда получим:

1А620h• Смещение пусть равно:

01B5h• К физическому адресу начала сегмента

прибавляется смещение: 1А620h+ 01B5h--------- 1A7D5

Page 18: Архитектура ЭВМ
Page 19: Архитектура ЭВМ

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

Текстовый редактор

Транслятор(TASM.EXE)

Компоновщик

(ALINK.EXE)

Отладчик(AFDPRO.EX

E)

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

Запуск транслятора, компоновщика, отладчика• Трансляция - процесс формирования объектного

модуля из текстового файла *.asm. Трансляция выполняется следующей командой (например):C:\TASM\tasm.exe myfile.asm

• Компоновка - процесс формирования загрузочного модуля из нескольких объектных модулей. Компоновка выполняется следующей командой (например):

C:\TASM\alink.exe myfile.obj

• Отладка - процесс выполнения разработанной программы с целью проверки её работы. Отладка выполняется следующей командой (например):

C:\TASM\afdpro.exe myfile.exe

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

Отладчик AFD PRO

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

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

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

Page 23: Архитектура ЭВМ
Page 24: Архитектура ЭВМ

Практическое задание• Написать исходный текст программы

«Перевод в систему счисления». Скомпилировать и запустить программу в отладчике. Проверить правильность работы программы при переводе в системы счисления с основанием 2, 8, 10.

• Модифицировать текст программы так,

чтобы проверить, правильно ли производится перевод в систему счисления c основанием 16. Объяснить полученный результат.

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

Работа1. Ввести текст программы.

2. Скомпилировать программу посредством TASM.EXE и ALINK.EXE, запустить программу в отладчике AFD PRO и пошагово выполнить программу. Сделать скриншот работы программы в отладчике перед началом вывода результата на экран.

3. Сформировать тестовые примеры для перевода чисел из системы счисления 16 в системы счисления 2, 8, 10. Вручную выполнить перевод. Сравнить результаты с работой приложения.

4. Сформировать тестовые примеры для перевода чисел в систему счисления с основанием 16. Вручную выполнить перевод. Сравнить результаты с работой приложения. Объяснить результат.

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

Отчетдолжен содеpжать: 1.Текст приложения.

2.Алгоритм работы приложения (т.е. смысл действий, описанных программой).

3.Скриншот выполнения приложения в отладчике AFD PRO.

4.Тестовые примеры перевода чисел из одной системы счисления в другую.

5.Описание модификации текста приложения, обеспечивающие реализацию тестов.

6.Результаты работы тестового приложения на примерах.