Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Завдання на роботу. Обчислити значення виразу:





 

Обчислити значення виразу:

a) A*B+C*D

b) A/B+C/D

Операції множення та ділення операндів виконати за допомогою підпрограми.

 

Таблиця 12.1 - Варіанти завдань

№ варіанту A B C D Варіант рівняння
          a
          a
          a
          b
          b
          a
          a
          a
          b
          b
          a
          a
          a
          b
          b

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

Функція Опис
00h Вибір режиму роботи відеоадаптера
01h Зміна форми курсору в текстовому режимі
02h Зміна положення курсору
03h Визначення поточного положення курсору
08h Зчитування символу та його атрибутів
09h Запис символу з атрибутами в поточне положення курсору
0Аh Запис символу в поточну позицію курсору
0Fh Визначення поточного режиму роботи відеоадаптера

Доцільно зазначити, що координати курсору визначають не тільки місце на екрані, де він розміщується, але і позицію, починаючи з якої відповідні функції BIOS чи DOS будуть виводити на екран рядки або окремі символи.







Date: 2015-12-12; view: 490; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.009 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию