- •Лабораторна робота № 1. «Вивчення програмного пакета tasm32»
- •Короткі теоретичні відомості:
- •Програмна модель:
- •Структура програми
- •Група команд передачі даних
- •Інструкція по роботі з програмним пакетом tasm32
- •Завдання
- •Лабораторна робота № 2 tasm32. «Вивчення групи арифметичних команд»
- •Короткі теоретичні відомості: Частина 1
- •Частина 2
- •Лабораторна робота № 3. «Вивчення групи логічних команд»
- •Короткі теоретичні відомості:
- •Завдання
- •Лабораторна робота №4. «Вивчення груп команд безумовних та умовних переходів та команд управління циклом»
- •Короткі теоретичні відомості:
- •Завдання
- •Лабораторна робота №5. «Вивчення команд роботи з підпрограмами»
- •Короткі теоретичні відомості:
- •Завдання
- •Лабораторна робота №6. «Вивчення груп команд порівняння та логічних зсувів»
- •Короткі теоретичні відомості:
- •Завдання
Завдання
Варіант 1
Порівняти вміст акумулятора зі вмістом регістра DL, якщо вміст AL дорівнює вмісту регістра DL змінити напівбайти числа у регістрі DL, якщо вміст AL менше вмісту регістру DL вивести у комірку пам’яті ds:0012H, число 12Н, якщо вміст AL більше вмісту регістра DL вивести в комірку пам’яті 0012Н число 21Н.
Варіант 2
Порівняти вміст регістра AL з вмістом комірки пам’яті 0015Н. Якщо вміст акумулятора дорівнює вмісту комірки пам’яті ds:0015H зробити інвертування ALта вивести отримане значення у комірку пам’яті ds:0017H, у протилежному випадку зсунути вміст AL на три розряди вліво та помістити у старший розряд 0, результат запам’ятати у комірці пам’яті ds:0020H.
Варіант 3
Написати програму підрахунку кількості одиниць в байті що знаходиться в AL в регістрі CX знаходиться лічильник циклу, результат (числа одиниць в байті) помістити в регістр BL. Якщо число одиниць в байті що знаходиться в AL менше 2, поміняти місцями напівбайти числа знаходиться в регістрі BL і результат записати в комірку пам'яті ds:0015Н.
Варіант 4
Порівняти вміст AL і регістру BH, якщо вміст AL дорівнює вмісту регістра BH зробити обмін блоків пам'яті розташованих починаючи з адрес ds:1200Е та ds:1210Е і що містять по 6 байт, в іншому випадку зсунути вміст ЇЇ на два розряди вправо.
Варіант 5
Зробити побайтно порівняння масивів даних що містять по 10Н байт і розташованих починаючи з адрес: 0100Н і: 0130Н відповідно. Якщо в зазначеному масиві число неоднакових кодів менше 7 зсунути перше неоднакове число з першої області пам'яті на 4 розряди вліво, в іншому разі на 5 розрядів. Неоднакові коди вивести в комірку пам'яті, починаючи з адреси: 0020Н, результат зсуву першого нерівного числа вивести в комірку пам'яті: 0021Н.
Варіант 6
Порівняти вміст AL з вмістом відділення пам'яті ds:0022Н, якщо вміст AL менше вмісту комірки пам'яті 0022Н зрушити вміст елементу пам'яті 0022Н на змінне число бітів, яке визначається вмістом регістра DL, вивести отримане число в комірку пам'яті 0023Н.
Варіант 7
Порівняти масив даних довжиною 8 байт, розташований починаючи з адреси 0020Н з числом F1H. Числа масиву даних, які дорівнюють F1H, підрахувати їх число і записати його за адресою 0035Н, числа масиву даних, які менше F1H записати в область пам'яті, починаючи з адреси 0040Н, кількість цих чисел записати в комірку пам'яті 0036Н.
Варіант 8
Порівняти масиви даних, що містять по 5 байт і розташованих починаючи з адрес ds:0010Н і ds:0110Н відповідно. Неоднакові коди помістити, починаючи з адреси ds:0120Н, число неоднакових кодів за адресою ds:0130Н. Якщо в зазначеному масиві число неоднакових кодів більше 3 зрушити першого нерівне число на 2 розряду вправо, в іншому випадку вліво настільки ж розрядів. Вивести отримане число в комірку пам'яті ds:0131Н.
Варіант 9
Порівняти масиви даних, що містять по 10Н байт і розташованих починаючи з адрес ds:0300Н і ds:0310Н відповідно. Якщо число неоднакових кодів більше 5, зробити обмін блоків пам'яті. В іншому випадку помножити константи другого блоку пам'яті на 2, використовуючи команди зсувів.
Варіант 10
Порівняти вміст регістра AL з масивом даних довжиною 6 байт, що розташовані починаючи з адреси ds:0150H. Якщо вміст AL більше вмісту кожної комірки пам'яті даного масиву, записати у комірку пам'яті ds:0160H інвертоване значення AL, у протилежному випадку зсунути вміст AL на 4 розряди за допомогою команд циклічного зсуву та результат записати у комірку пам'яті ds:0361H.
Варіант 11
Порівняти масиви даних, що містять по 7 байт і розташованих починаючи з адрес ds:0200Н і ds:0210Н відповідно. Неоднакові коди помістити, починаючи з адреси ds:0020Н, число неоднакових кодів за адресою ds:0231Н. Якщо в зазначеному масиві число неоднакових кодів більше 4 зрушити першого нерівне число на 3 розряду вправо, в іншому випадку вліво настільки ж розрядів. Вивести отримане число в комірку пам'яті ds:0232Н.
Варіант 12
Порівняти масиви даних, що містять по 10Н байт і розташованих починаючи з адрес ds:0320Н і ds:0340Н відповідно. Якщо число неоднакових кодів більше 4, зробити обмін блоків пам'яті. В іншому випадку помножити константи другого блоку пам'яті на 4, використовуючи команди зсувів.
Варіант 13
Порівняти вміст акумулятора зі вмістом регістра BL, якщо вміст AL дорівнює вмісту регістра BL змінити напівбайти числа у регістрі BL, якщо вміст AL менше вмісту регістру BL вивести у комірку пам’яті ds:0025H, перший напівбайт регістру BL, якщо вміст AL більше вмісту регістра BL вивести в комірку пам’яті 0025Н значення другого напівбайту регістра BL.
Література:
Якименко Ю.І., Терещенко Т.О. Мікропроцесорна техніка. 2-ге вид. – К.: ІВЦ "Політехніка", 2004. – 440 с.
Микропроцессорный комплект К1810: Структура, программирование, применение: Справочная книга. /Ю.М. Казаринов, В.Н. Номоконов, Г.С. Подклетнов, Ф.В.Филиппов; под ред. Ю.М. Казаринова. –М.: Высш. Шк. 1990, 269с.
