Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Охарактеризувати макродирективи асемблера.
Директиви повторення WHILE, REPT ENDM ENDM При використанні цих директив транслятор буде повторювати послідовність_рядків до тих пір, поки константний_вираз не стане рівним нулю. При використанні директиви WHILE константний_вираз має змінюватися всередині послідовність_рядків, директива REPT автоматично зменшує на одиницю значення константного виразу після кожної ітерації. Директиви повторення IRP, IRPC Синтаксис директиви IRP:
послідовність_рядків ENDM
Директива IRP повторює послідовність_рядків n разів, замінюючи формальний_аргумент рядком символів з другого операнду. Синтаксис директиви IRPC:
IRPC формальний_аргумент, < рядок_символів > послідовність_рядків ENDM
Дія даної директиви схожа до IRP, але вона при кожній черговій ітерації замінює формальний_аргумент черговим символом із рядок_символів. Кількість повторень послідовності рядків визначається кількістю символів в рядок_символів.
1.2.3.Директиви умовної компіляції IF, IFE Синтаксис цих директив:
IF(E) логічний_вираз ELSE фрагмент_програми_2 ENDIF
Якщо директиві IF логічний вираз істинний, то в об’єктний модуль поміщується фрагмент_програми_1. Якщо логічний вираз хибний, то при наявності директиви ELSE в об’єктний код поміщується фрагмент_програми_2. Хибним логічний вираз буде, якщо його значення дорівнює нулю, а істинним – при будь-якому значенні, відмінному від нуля. Директива IFE також аналізує значення логічного виразу, але для включення в об’єктний модуль фрагмент_програми_1 потрібно, щоб логічний_вираз мав хибне значення.
y = S (1+ 3i) i=1 y = S (2 * i) i=1 page 60, 80 TITLE EX_LOOP (EXE) STACKSG SEGMENT PARA STACK 'STACK' DW 128 DUP (?) STACKSG ENDS
DATASG SEGMENT PARA 'DATA' ; --------------------------------------------------------------------------------------------------------- N DW 10 I DW 1; Елементи даних RESULT DW 0 ; --------------------------------------------------------------------------------------------------------- DATASG ENDS CODESG SEGMENT PARA 'Code ' BEGIN PROC FAR ASSUME CS: CODESG, DS: DATASG, SS: STACKSG PUSH DS; Ініціалізація програми SUB AX, AX PUSH AX MOV AX, DATASG MOV DS, AX SUB AX, AX MOV CX, N; Запис до СХ числа циклів BEGIN_LOOP:; Початок циклу MOV AX, I; Пересилання І до регістра АХ MOV BX, 2 MUL BX; Отримання добутку 2*І ADD RESULT, AX; Накопичення суми ряду в змінній RESULT SUB AX, AX INC I; Збільшення І на 1 LOOP BEGIN_LOOP; Кінець опису циклу RET BEGIN ENDP CODESG ENDS END BEGIN
№ 21 1. Описати регістри стану і керування. В МП включено декілька регістрів, які постійно містять інформацію як про стан самого МП eflags/flags (flag register) - регістр прапорів. Розрядність 32/16 бітів. Окремі біти мають певне функціональне призначення і називаються прапорами
2. Описати віднімання двійкових чисел. Віднімання двійкових чисел без знаку У системі команд процесора є наступні команди двійкового віднімання:
1. dec операнд Операція декременту, тобто зменшення значення операнда на 1. Приклади: DEC CH DEC Array[Bx+DI]
2. sub операнд1, операнд2 команда віднімання з принципом дії:
операнд1 = операнд1 - операнд2 Приклади: SUB AX, 2000h
|