Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Завдання на роботу. Обчислити значення виразу:
Обчислити значення виразу: a) A*B+C*D b) A/B+C/D Операції множення та ділення операндів виконати за допомогою підпрограми.
Таблиця 12.1 - Варіанти завдань
12.4 Приклад оформлення звіту Завдання: Обчислити значення виразу: A*B+C*D, множення виконати зсувом вліво суми часткових добутків аналізом другого множника старшими бітами вперед. A,C – 22-розрядні, В,D – 10 – розрядні операнди. Виконання: model small stack 100h dataseg RES_H dw 0 RES_L dw 0 ends codeseg main: mov ax,@data mov ds,ax mov si,0ABCFh;A_L mov dl,023h;A_H mov bx,0266H;B call mul_p mov RES_H,cx;зберігання результату А*В mov RES_L,di mov si,057AFh;C_L mov dl,013h;C_H mov bx,0347H;D call mul_p add RES_L,di adc RES_H,cx jmp end_main mul_p proc xor di,di xor bp,bp mov cx,10h xor dh,dh mul_1: shl di,1 rcl bp,1 shl bx,1 jnc mul_2 add di,si adc bp,dx mul_2: loop mul_1 mov cx,bp ret mul_p endp end_main: end main Нижче наведено приклад програми, що виконує те ж завдання тільки параметри та результат підпрограми передаються через стек. model small stack 100h dataseg RES_H dw 0 RES_L dw 0 ends codeseg main: mov ax,@data mov ds,ax push 0;резерв для результату push 0;резерв для результату push 0ABCFh;A_L push 0023h;A_H push 0266H;B mov bp,sp call mul_p pop cx;зберігання результату А*В pop dx push 0 push 0 push 057AFh;C_L push 013h;C_H push 0347H;D call mul_p pop RES_H pop RES_L add RES_L,dx adc RES_H,cx jmp end_main mul_p proc push cx;зберігання СХ в стеку mov di,word ptr [bp+4] mov si,word ptr [bp+2] mov cx,10h mul_1: shl word ptr [bp+8],1 rcl word ptr [bp+6],1 shl [bp+1],1 jnc mul_2 add word ptr [bp+8],di adc word ptr [bp+6],si mul_2: loop mul_1 pop cx;відновлення СХ ret 6 mul_p endp end_main: end main ЛАБОРАТОРНА РОБОТА №13
ВИВІД НА ЕКРАН
13.1 Мета роботи
Навчитися визначати та змінювати положення курсору, міняти його розмір, а також виводити інформацію в задані координати екрану.
13.2 Теоретичні відомості
Для роботи з відеоадаптерами переважно використовують функції BIOS переривання 10h, замість програмування регістрів. Такий підхід є безпечнішим і надійнішим з погляду надійності функціонування системи, оскільки існує спеціальний відео-BIOS, встановлений на платі відеоадаптера. Такий відео-BIOS гарантує коректну роботу з регістрами і виключає можливі неправильних режимів роботи. Деякі функції переривання 10h подано в наступній таблиці:
Таблиця 13.1 – Функції переривання 10h
Доцільно зазначити, що координати курсору визначають не тільки місце на екрані, де він розміщується, але і позицію, починаючи з якої відповідні функції BIOS чи DOS будуть виводити на екран рядки або окремі символи. Date: 2015-12-12; view: 490; Нарушение авторских прав |