- •Лабораторна робота № 1. «Вивчення програмного пакета tasm32»
- •Короткі теоретичні відомості:
- •Програмна модель:
- •Структура програми
- •Група команд передачі даних
- •Інструкція по роботі з програмним пакетом tasm32
- •Завдання
- •Лабораторна робота № 2 tasm32. «Вивчення групи арифметичних команд»
- •Короткі теоретичні відомості: Частина 1
- •Частина 2
- •Лабораторна робота № 3. «Вивчення групи логічних команд»
- •Короткі теоретичні відомості:
- •Завдання
- •Лабораторна робота №4. «Вивчення груп команд безумовних та умовних переходів та команд управління циклом»
- •Короткі теоретичні відомості:
- •Завдання
- •Лабораторна робота №5. «Вивчення команд роботи з підпрограмами»
- •Короткі теоретичні відомості:
- •Завдання
- •Лабораторна робота №6. «Вивчення груп команд порівняння та логічних зсувів»
- •Короткі теоретичні відомості:
- •Завдання
Частина 2
Мнемокод |
Операнд |
Коментар |
MUL |
Ор |
Цілочисельне множення не враховуючи знака (AL)*(Ор8)→(AX) (AX)*(Op16)→(DX):(AX) |
DIV |
Ор |
Беззнакове ділення (AX)/(Op8) → частка в (AL), залишок в (AH) (DX)(AX)/(Op16) → частка в (AX), залишок в (DX) |
AAM |
|
Корекція
після множення двох не упакованих
BCD чисел. Перетворення двійкового
числа меншого за 63h ( |
AAD |
|
Корекція перед діленням двох не упакованих BCD чисел. Перетворення двозначного не упакованого BCD-числа меншого за 63h ( ) у двійковому представленні. |
Команда MUL виконує множення двох операндів без уваги знаків. Алгоритм залежить від формату операнда команди та вимагає явної вказівки місцеположення тільки одного співмножника, який може бути розташований в пам'яті або в регістрі. Місцеположення другого співмножника фіксоване та залежить від розміру першого співмножника.
Для команди DIV необхідне створення двох операндів - діленого і дільника. Ділене задається неявно і розмір його залежить від розміру дільника, який вказується в команді. При виконанні операції ділення можливе виникнення виняткової ситуації: 0 - помилка поділу. Ця ситуація виникає в одному з двох випадків: дільник дорівнює 0 або занадто велике для його розміщення в регістрі ax/al.
ЗАВДАННЯ (Частина 1)
Варіант 1
Обчислити вираз X+Y-Z, де X=2860; Y=88; Z=6; X,Y,Z – десяткові числа. Результат розмістити в комірках пам’яті, починаючи з адреси ds:0005H.
Варіант 2
Знайти суму двох трьохбайтних чисел A5C865H та 74D6CAH. Результат розмістити в комірках пам’яті, починаючи з адреси ds:0010H.
Варіант 3
Знайти суму двох десяткових чисел 2357 та 9599. Результат розмістити в комірках пам’яті, починаючи з адреси ds:0013H.
Варіант 4
Обчислити вираз X+Y-Z, де X=4792; Y=6888; Z=1014; X,Y,Z – десяткові числа. Результат розмістити в комірках пам’яті, починаючи з адреси ds:0011H.
Варіант 5
Знайти різницю двох трьохбайтних чисел D48B15H та 81A7E4H. Результат розмістити в комірках пам’яті, починаючи з адреси ds:0006H.
Варіант 6
Знайти різницю двох десяткових чисел 18723 та 9569. Результат розмістити в комірках пам’яті, починаючи з адреси ds:0007H.
Варіант 7
Знайти суму двох десяткових чисел 9092 та 2624. Результат розмістити в комірках пам’яті, починаючи з адреси ds:0009H.
Варіант 8
Обчислити вираз X+Y-Z, де X=6453; Y=2369; Z=38; X,Y,Z – десяткові числа. Результат розмістити в комірках пам’яті, починаючи з адреси ds:0008H.
Варіант 9
Знайти різницю двох шістнадцятиричних чисел 732112H та 354634H. Результат розмістити в комірках пам’яті, починаючи з адреси ds:0007H.
Варіант 10
Знайти різницю двох десяткових чисел 576623 та 8769. Результат розмістити в комірках пам’яті, починаючи з адреси ds:0003H.
Варіант 11
Знайти різницю двох шістнадцятиричних чисел D4568BH та 4857E4H. Результат розмістити в комірках пам’яті, починаючи з адреси ds:0015 H.
Варіант 12
Знайти суму двох шістнадцятиричних чисел F546D4H та 72D781H. Результат розмістити в комірках пам’яті, починаючи з адреси ds:000FH.
Варіант 13
Знайти суму двох десяткових чисел 549092 та 958261. Результат розмістити в комірках пам’яті, починаючи з адреси ds:001AH.
Варіант 14
Знайти різницю двох десяткових чисел 651521 та 18145. Результат розмістити в комірках пам’яті, починаючи з адреси ds:002DH.
Варіант 15
Обчислити вираз X+Y-Z, де X=86453; Y=12369; Z=238; X,Y,Z – десяткові числа. Результат розмістити в комірках пам’яті, починаючи з адреси ds:0008H.
ЗАВДАННЯ (Частина 2)
Скласти алгоритм та програму обчислення виразу. Результат розмістити у пам’ять.
Варіант 1
(86h*55h+2235h)/(67h*95h), ds:0007h
Варіант 2
(35h*2h+28h*46h)/39h, ds:00013h
Варіант 3
(99h*33h-1211h)/4325h, ds:0026h
Варіант 4
8733h*25h/(22h*34h+87h), ds:0016h
Варіант 5
(23h*75h+25h*33h)/78h-59h), ds:0012h
Варіант 6
(2415h*18h-1648h)/(15h*21h), ds:00018h
Варіант 7
(44h*21h+1783h)/(12h*37h), ds:0020h
Варіант 8
(91h*72h-1968h)/(13h*25h), ds:0017h
Варіант 9
(9124h-18h*28h)(13h*11h), ds:0024h
Варіант 10
(34h*15h-96h)/(4237h-3976h), ds:0032h
Варіант 11
(86h+2Eh*bh)/(28eh-283h), ds:0058h
Варіант 12
(91h*1eh-8bh*0fh)/13h, ds:0072h
Варіант 13
(2876h*29h-256h)/(10h*1eh), ds:0007h
Варіант 14
(456h*7bh+93cdh)/7d6h, ds:0086h
Варіант 15
(786h*845h-29bh)/(876h-6deh), ds:0869h

)
в його не упакований BCD-еквівалент.