рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Хід отримання результатів

Хід отримання результатів - раздел Программирование, Виконання програми, написаної на мові Pascal, в налагоджувальному режимі. Нижче Наведена Довідкова Інформація, Необхідна Для Забезпечення Виконання Інд...

Нижче наведена довідкова інформація, необхідна для забезпечення виконання індивідуального завдання в даній лабораторній роботі.

7.4.1. Безпосередньо в програмі на мові Pascal можна записувати асемблерний код шляхом використання асемблерних вставок.

7.4.2. Кожна асемблерна вставка має виглядати так:

 

asm

< сукупність команд на асемблері >

end;

Наприклад:

 

if a < b then

asm

mov ah, a

end

else

asm

mov ah, b

end;

 

У рядку, де записана команда, можна використати коментарі.

Наприклад:

 

asm

mov ax, 1 { (ax) = 1 }

mov cx, 100 { (cx) = 100 }

end;

 

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

 

16-бітові регістри загального призначення (РЗП) AX, BX, CX, DX

8-бітові регістри (молодша частина РЗП) AL, BL, CL, DL

8-бітові регістри (старша частина РЗП) AH, BH, CH, DH

16-бітові вказівні та індексні регістри SP, BP, SI, DI

16-бітові сегментні регістри CS, DS, SS, ES

16-бітовий вказівник команд IP

16-бітовий регістр ознак (без імені)

 

7.4.4. У групу 16-бітових регістрів загального призначення входять регістри AX, BX, CX і DX. Їх особливість полягає в тому, що допускається окремо вказувати їхні старші (H) і молодші (L) байти. Індексні регістри SI і DI часто використовують для адресації даних, які розміщені в пам’яті. Під час виконання програми процесор може звертатись до чотирьох сегментів, базові адреси яких знаходяться в сегментних регістрах CS (коду), DS (даних), SS (стека) і ES (додаткових даних). Регістр CS вказує на початок поточного сегмента коду, тобто програми, звідки вибираються команди для виконання. Регістр SS адресує початок поточного сегмента стека, в якому реалізуються всі стекові операції. Регістр DS визначає поточний сегмент даних, який містить значення змінних. Регістр ES вказує на додатковий сегмент, який звичайно використовується для зберігання даних. Вказівник команд IP здійснює адресацію усередині поточного сегмента коду. Він вказує на ту команду, яка буде вибрана під час чергового звертання до кодового сегмента. Команди завжди вибираються із поточного кодового сегмента – логічна адреса знаходиться в регістрах CS:IP. Стекові операції завжди виконуються шляхом звертання до поточного сегмента стека – логічна адреса міститься в регістрах SS:SP. Змінні звичайно знаходяться в поточному сегменті даних, на нього вказує регістр DS.

Наприклад, виконуючи команду mov AX,[DI], процесор буде звертатись до поточного вмісту регістра DS.

7.4.5. У демонстраційній програмі використані команди: MOV, ADD, SUB, PUSH і POP.

Команда MOV забезпечує, зокрема, передачу значень з регістра в регістр або пам’ять, а також із пам’яті в регістр:

1) MOV DS, AX – переслати (AX) в DS

2) MOV [BX],DX – переслати (DX) в комірку пам’яті, яка адресована (BX)

3) MOV BX,[DI] – переслати вміст із комірки, яка адресована (DI), в регістр BX

Примітка: якщо ім’я регістра вказано в круглих дужках, то вони ототожнюються зі словом “вміст”. Наприклад, (AX) означає “вміст регістра AX”.

 

 

Команди додавання ADD і віднімання SUB мають кожна такий формат:

 

ADD <операнд 1>, <операнд 2>

SUB <операнд 1>, <операнд 2>

 

Вони виконують операцію додавання і відповідно віднімання так:

 

<операнд1> := <операнд1> + <операнд2>

<операнд1> := <операнд1> – <операнд2>

 

Команда PUSH заносить у стек значення, команда POP забирає із стека занесене туди раніше значення. В обох командах використовується тільки один операнд. Це може бути безпосереднє числове значення, вміст регістра чи змінної або зміщення змінної в сегменті.

7.4.6. Один із варіантів обчислення адреси операнда, розміщеного в оперативній пам’яті, полягає в тому, що вміст сегментного регістра, помножений на 16, додається до 16-бітового зміщення. Таким чином,

 

<фізична адреса> = <вміст сегментного регістра> * 16 + <зміщення>

 

Крім терміна “зміщення”, використовують також терміни “абсолютна адреса” або “виконавча адреса”.

Можна використовувати різні варіанти розміщення в команді відомостей про операнди, тобто існують різні способи адресації операндів. У демонстраційній програмі використані:

· Регістрова адресація – операнд вибирається із регістра або завантажується в регістр. Наприклад, MOV AX, CX.

· Безпосередня адресація – як операнд-джерело використовується константа. Наприклад, MOV AX, 500.

· Пряма адресація – виконавча адреса є складовою частиною команди, як один з операндів може слугувати ім’я змінної. Наприклад, MOV AH, Y.

· Непряма регістрова адресація – виконавча адреса міститься в базовому регістрі (BX), регістрі-вказівнику (BP), індексному регістрі (SI чи DI) або в їх комбінації. Можуть бути також числові доданки. Наприклад, MOV AX,[SI]; MOV DI, OFFSET X; MOV [BX+DI], AX; ADD DX, [SI+4]; MOV CX, [BP+6].

· Базова адресація – виконавча адреса обчислюється шляхом додавання до вмісту базового регістра BX числового значення. Наприклад, MOV BX,

OFFSET Array;

MOV AX, [BX + 2].

 

7.4.7. Функція GetMem(). Ця функція створює нову ділянку в пам’яті, (вказаного під час виклику цієї функції розміру), яка динамічно виділяється, і розміщує адресу виділеної ділянки в змінній-вказівнику.

Опис функції: GetMem (var p:pointer; <розмір>:word).

Параметр р являється змінною-вказівником. Параметр <розмір> має довжину в слово і задає розмір (в байтах) ділянки пам’яті, що динамічно виділяється. На заново створену ділянку пам’яті можна посилатися за допомогою вказівника p.

 

– Конец работы –

Эта тема принадлежит разделу:

Виконання програми, написаної на мові Pascal, в налагоджувальному режимі.

ОБМІН ДАНИМИ МІЖ РЕГІСТРАМИ ПРОЦЕСОРА І ОПЕРАТИВНОЮ ПАМ ЯТТЮ КОМП ЮТЕРА... Мета роботи...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Хід отримання результатів

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Завдання до лабораторної роботи
7.3.1. Для виконання лабораторної роботи треба використати середовище Turbo Pascal або Borland Pascal, а також мову вбудованого асемблера в демонстраційній програмі.

Отримання за допомогою демонстраційної програми результатів з метою виконання індивідуального завдання
7.5.1. Спочатку треба демонстраційну програму завантажити в одне з середовищ, яке підтримує програмування на мові Pascal, і забезпечити її виконання в покроковому режимі.

Зміст звіту
7.6.1. Звіт треба оформити в зошиті для звітів або на аркушах формату А4. 7.6.2. Звіт може бути роздрукований. 7.6.3. Звіт викон

Контрольні запитання
1. Назвіть імена і призначення регістрів процесора. 2. Структура команд процесора. 3. Як асемблерні вставки включаються в текст

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги