36941

Ознайомитись з програмною моделлю 32 розрядних процесорів Intel та оволодіти навиками створення програм, використовуючи 32 розрядний асемблер

Лабораторная работа

Информатика, кибернетика и программирование

model flt stdcll option csemp: none ; оголошення службових процедур макросів змінних констант include msm32 include windows.inc include msm32 include kernel32.inc include msm32 include msm32.inc include msm32 include debug.

Украинкский

2013-09-23

122.49 KB

7 чел.

Міністерство освіти і науки, молоді та спорту України

Національний університет “Львівська політехніка”

Кафедра ЕОМ

Лабораторна робота №1
дисципліни:”
Системне програмування

Виконав:

Ст.. гр. –КІ-32

Приймак Д.В.

Перевірив:

 Олексів М.В.

                      

Львів – 2011


Мета: Ознайомитись з програмною моделлю 32 розрядних процесорів Intel та оволодіти навиками створення програм, використовуючи 32 розрядний асемблер.

Теоретичні відомості : 

Регістри користувача

Як випливає з назви, призначеними для користувача регістри називаються тому, що програміст може використовувати їх при написанні своїх програм. До цих регістрів відносяться (рис.1):

  1.  вісім 32-бітових регістрів, які можуть використовуватися програмістами для зберігання даних і адрес (їх ще називають регістрами загального призначення (РЗП|)):
  2.  eax/ax/ah/al;
  3.  ebx/bx/bh/bl;
  4.  edx/dx/dh/dl;
  5.  ecx/cx/ch/cl;
  6.  ebp/bp;
  7.  esi/si;
  8.  edi/di;
  9.  esp/sp.
  10.  шість сегментних регістрів: cs, ds, ss, es, fs, gs;
  11.  регістри управління та стану:
  12.  регістр прапорів eflags/flags;
  13.  регістр покажчика команди eip/ip.

Чому багато з цих регістрів приведені з розділовою межею? (рис. 1)
Ні, це не різні регістри — це частини одного великого 32-розрядного регістра. Їх можна використовувати в програмі як окремі об'єкти. Так зроблено для забезпечення працездатності програм, написаних для молодших 16-розрядних моделей мікропроцесорів фірми Intel, починаючи з i8086. Мікропроцесори i486 і Pentium мають в основному 32-розрядні регістри. Їх кількість, за винятком сегментних регістрів, таке ж, як і у i8086, але розмірність більше, що і відбито в їх позначеннях — вони мають приставку
e (Extended).

 Регістри загального призначення

Всі регістри цієї групи дозволяють звертатися до своїх “молодших” частин (див. рис. 1).

Відмітимо, що використовувати для самостійної адресації можна тільки молодші 16 і 8-бітові частини цих регістрів. Старші 16 біт цих регістрів як самостійні об'єкти недоступні.

До РЗП відносяться|:

  1.  eax/ax/ah/al (Accumulator register) — акумулятор.

Застосовується для зберігання проміжних даних. У деяких командах використання цього регістра обов'язкове;

  1.  ebx/bx/bh/bl (Base register) — базовий регістр.

Застосовується для зберігання базової адреси деякого об'єкту в пам'яті;

  1.  ecx/cx/ch/cl (Count register) — регістр-лічильник.

Застосовується в командах, що проводять деякі дії, що повторюються. Його використання часто неявно і приховано в алгоритмі роботи відповідної команди.
Наприклад, команда організації циклу loop окрім передачі управління команді, що знаходиться за деякою адресою, аналізує і зменшує на одиницю значення регістра ecx/cx;

  1.  edx/dx/dh/dl (Data register) — регістр даних.

Так само, як і регістр eax/ax/ah/al, він зберігає проміжні дані. У деяких командах його використання обов'язково; для деяких команд це відбувається неявно.

Наступні два регістри використовуються для підтримки операцій, що проводять послідовну обробку ланцюжків елементів, кожний з яких може мати довжину 32, 16 або 8 біт:

  1.  esi/si (Source Index register) — індекс джерела.
  2.  edi/di (Destination Index register) — індекс приймача (одержувача).

У архітектурі мікропроцесора на програмно-апаратному рівні підтримується така структура даних, як стек. Для роботи із стеком в системі команд мікропроцесора є спеціальні команди, а в програмній моделі мікропроцесора для цього існують спеціальні регістри:

  1.  esp/sp (Stack Pointer register) — регістр покажчика стека.
    Містить покажчик вершини стека в поточному сегменті стека.
  2.  ebp/bp (Base Pointer register) — регістр покажчика бази кадру стека.
    Призначений для організації довільного доступу до даних усередині стека.

Використання жорсткого закріплення регістрів для деяких команд дозволяє компактніше кодувати їх машинне уявлення. Знання цих особливостей дозволить вам при необхідності хоч би на декілька байт заощадити пам'ять, займану кодом програми.

Завдання:

Варіант №22 : Знайти суму перших К елементів масиву A={a[i]}, що задовольняють умову 2*с <= a[i] <=3*d
Виконання роботи :

Програма виконує сумування елементів масиву при умові 2*с <= a[i] <=3*d, числа с і d задаються спочатку. Процес сумування показано на рис.1  ,у полі

Код програми :

 

.586

; використати плоску модель пам'яті і узгодження імен stdcall

.model flat, stdcall

option casemap: none

; оголошення службових процедур, макросів, змінних, констант

include \masm32\include\windows.inc

include \masm32\include\kernel32.inc

include \masm32\include\masm32.inc

include \masm32\include\debug.inc

; підключення службових бібліотек

includelib \masm32\lib\kernel32.lib

includelib \masm32\lib\masm32.lib

includelib \masm32\lib\debug.lib

; оголошення масиву даних

.data

Arr  dd 4,8,5,6,10,7

var_c dd 2

var_d dd 3

var_K dd 3

Sum dd 0

.code

start:

    mov ecx,6

    mov edx,0

     mov eax,3

     mul var_d

     PrintDec eax,"Tob bound"

     mov var_d,eax

     mov eax,2

     mul var_c

     PrintDec eax,"Bottom bound"

     mov var_c,eax

     mov ebx,var_K

     PrintDec ebx,"K"

     

checking:

     cmp ebx,0                     ; перевірка чи K!=0

     jz exit

     mov eax,[Arr+edx*4]

     PrintDec eax,"Arr value"

     cmp eax,var_c                     ; перевірка чи не менше С

     jb  again                ; пропуск даного числа масиву ,оскільки

     cmp eax,var_d             ; перевірка чи не більше d

     ja  again

     add Sum, eax

     dec ebx

     PrintDec Sum, "Sum"

     

again:

     inc edx

     dec ecx

     cmp ecx,0

     jnz checking

exit:     

invoke ExitProcess, NULL ; виклик процедури завершення процесу

end start

Рис. 1

Висновок : в дані лабораторні роботі я ознайомився з програмування з використанням 32 розрядного асемблера, виконавши задачу завдання, в якому необхідно було знайти суму елементів масиву за певною умовою.


 

А также другие работы, которые могут Вас заинтересовать

39405. ГПТ от привода бесконечной мощности с независимым возбуждением 138.57 KB
  Литература Объект регулирования генератор постоянного тока от привода бесконечной мощности с независимым возбуждением далее ГПТ Цель регулирования – разработка компьютерной модели ГПТ и исследование динамических режимов и характеристик Задача исследования – исследование переходных процессов в ГПТ при включении и сбросенабросе нагрузки исследование процесса регулирования напряжения по цепи возбуждения с целью стабилизации выходного тока.1 Выбираем СК связанную со статором так как в ГПТ поле статора неподвижно СК dq для...
39406. Совершенствование процесса кредитования физических лиц коммерческим банком в России 188 KB
  Экономическая сущность кредитных операций коммерческого банка. Кредитование физических лиц как приоритетное направление деятельности коммерческого банка. Анализ финансовоэкономического положения банка ОАО Росгосстрах Банк Балльная оценка факторов характеризующих заемщика Введение На современном этапе развития экономических процессов в стране наблюдается тенденция к увеличению коммерческих банков.
39407. Статистика Методические указания по выполнению курсовой работы 2 MB
  Цель работы – закрепление и углубление теоретических знаний полученных в ходе изучения курса Статистика формирование у студентов – будущих специалистов обучающихся по специальности Государственное и муниципальное управление теоретических знаний и практических навыков по сбору обработке и анализу статистической информации выявление эффективных вариантов принимаемых управленческих решений развитие у студентов творческой инициативы и навыков исследовательской деятельности. Примерные темы курсовых работ Статистикоэкономический...
39408. Проектирование цифрового частотомера 840.51 KB
  В роли источника питания может выстапать гальванический элемент или аккумулятор напряжением 15 В. С помощью преобразователя напряжения это значение повышают до 5 В напряжение необходимое для стабильной работы устройства. Вход Рисунок 2 – Функциональная схема В состав блока формирователя импульсного напряжения входит: входное гнездо XS1 на которе подают импульсное или переменное напряжение частоту которого нужно измерить; резисторы R1 ограничивает входной ток R2 R3 устанавливает нижний предел напряжения входного сигнала R4;...
39409. Проект полігонометрії 4 класу 192 KB
  Розграфлення – система поділу топографічних карт на частини з метою одержання листів карт більш крупного масштабу. Основою для створення всіх крупно масштабних карт є карта масштабу 1:1000000. Для того щоб отримати карту масштабу 1:1000000 вся поверхня земної кулі умовно поділяється на колони через 6˚ по довготі від меридіана 180˚ та паралелями на пояси через 4˚ по широті на північ та на південь від лінії екватора. Утворення карти масштабу 1:1000000 Правило подальшого розграфлення листів топографічних карт полягає в постійному поділі листа...
39410. Геодезія, картографія та кадастр 349.5 KB
  070908 Геоінформаційні системи і технології€ ВСТУП Поряд з теоретичною підготовкою з курсу Організація планування і управління топографогеодезичним виробництвом і інших спеціальних дисциплін в лабораторних і індивідуальних заняттях складається курсовий проект для надбання студентами практичних навиків в плануванні і організації геодезичних робіт. Зміст технічних проектів на виконання робіт регламентується Положенням про складання технічних проектів і програм на виконання загальнодержавних топографогеодезичних і картографічних робіт€ та...
39411. Знімальні мережі 345.5 KB
  Мензульне і тахеометричне знімання При мензуальному або тахеометричному зніманні пункти планової знімальної мережі є одночасно пунктами висотної знімальної мережі і служать безпосередньо для встановлення на них мензули з кіпрегелем або теодоліта якими здійснюється набір пікетів для створення контурної частини плану і рельєфу місцевості. В цьому випадку пункти знімальної основи закріплюють на місцевості центрами тривалого збереження з таким розрахунком щоб на кожному планшеті було не менше трьох точок при зніманні в масштабі 1:2000...
39412. Проект робіт при оновленні топографічних карт масштабу 1:10000 515 KB
  Київський Державний Університет Будівництва та Архітектури КУРСОВИЙ ПРОЕКТ з дисципліни Організації управління і планування топографогеодезичного виробництва на тему: Проект робіт при оновленні топографічних карт масштабу 1:10000€ Виконала:...
39413. Реализация и исследование быстрого алгоритма двумерного вещественного ДПФ по основанию 4 представлением данных в гиперкомплексной алгебре 294.73 KB
  Заданный алгоритм был реализован программно с помощью технологии Microsoft. NET Framework на языке программирования C++. Написанное приложение состоит из двух сборок: библиотеки классов FFT, содержащей все необходимое для вычисления ДПФ по формуле и БПФ.