Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Порядок выполнения лабораторных работ
Для изучения основ ассемблера был выбран микропроцессор семейства Intel P6, как самый распространенный и широкодоступный микропроцессор, так как он чаще всего устанавливается в современных персональных компьютерах. Как уже упоминалось во введении, языков ассемблера много. Все их изучить нет ни времени в учебном курсе, ни необходимости. Однако, изучая ассемблер для одного из передовых, мощных, современных микропроцессоров, какими являются процессоры семейства Intel P6, автоматически охватываются все процессоры семейств x86, IA32, на уровне мнемоники MCS-51 и т.д., и формируются фундамент для быстрого изучения любого ассемблера и микропроцессора. Средой для изучения ассемблера выбрана интегрированная среда быстрой разработки приложений Delphi (IDE RAD Delphi), основанная на языке Pascal и возможности делать в тексте программы ассемблерные вставки. Такой подход видится предпочтительным, так как язык Pascal изучается с первого курса, нет необходимости заниматься программированием интерфейса для ввода и вывода данных в программе на ассемблере, наличие встроенного отладчика на уровне CPU и т.д. Чтобы сосредоточиться на изучении именно языка ассемблера и не терять каждый раз время на подготовку формы главного окна проекта и небольшого сервисного кода, создадим единожды заготовку такого приложения и сохраним его в репозитории (Repository) – специальном механизме, реализованном в Delphi, для сохранения заготовок программных проектов. На первом шаге создадим новый проект в Delphi. Для этого, после запуска Delphi, последовательно выбираем меню «File→New►VCL Forms Application – Delphi for Win32» (см. рис. 1) Рисунок 1. Создание нового проекта приложения на Delphi, основанного на библиотеке визуальных компонентов, для Win32 Форму главного окна приложения «растягиваем» по высоте на всю видимую часть экрана. На форму перетаскиваем из палитры компонентов объект Memo, три объекта Button и PrinterSetupDialog. При этом объекты Button размещаем на одной горизонтальной линии внизу вплотную к нижней границе формы, а объект Memo располагаем в левом верхнем углу формы и «растягиваем» вплотную к Button. Заголовки объектов Button меняем на «Выполнить», «Печать» и «Выход», изменяя соответствующим образом их свойство Caption в окне инспектора объектов. Объект Memo предназначен для вывода дампа памяти, который имеет традиционную форму отображения, а для этого необходимо установить, так называемый, «моноширийный» шрифт. Таким шрифтом является, например, Courier New. Для этого делаем активным объект Memo1, в инспекторе объектов выбираем свойство Font, нажимаем на кнопку с троеточием напротив свойства Font в инспекторе объектов и настраиваем шрифт «Courier New», начертание «обычный», размер «10» (см. рис. 2)
Рисунок 2. Вид главного окна приложения для изучения ассемблера и настройка свойства Font объекта Memo1. На этом же рисунке 2 видно, как должна выглядеть форма главного окна приложения. Далее, остается создать обработчики событий для объектов Button. Текст программы обработчиков событий приведен ниже: {Обработчик событий для кнопки «Выполнить»} procedure TForm1.Button1Click(Sender: TObject); Const DataSize = $200; Var Data: Array [1..DataSize] of Byte; i: Integer; S: String; Begin for i:= 0 to DataSize do Data[i]:= 0;
Asm PUSHAD LEA r32,Data {r32 – любой, выбранный Вами РОН (EAX,EBX,ECX и т.д.)}
{Здесь пишется текст программы на языке ассемблера} {по выполняемой лабораторной работе}
POPAD end;
S:= '0000:'; for i:= 1 to DataSize do if i mod 16 = 0 then Begin Memo1.Lines.Add(S); S:= IntToHex(i,4)+':'; End Else S:= S + ' ' + IntToHex(Data[i],2); { - обозначает пробел} end;
{Обработчик событий для кнопки «Печать»} procedure TForm1.Button2Click(Sender: TObject); Begin Date: 2015-10-19; view: 472; Нарушение авторских прав |