DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Лабораторна робота №5 з курсу «Засоби системного програмування»: Дослідження роботи команд переходів. Програмування задач з використанням алгоритмів розгалуження

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Комп’ютерні науки
Кафедра:
Кафедра електронних обчислювальних машин

Інформація про роботу

Рік:
2012
Тип роботи:
Лабораторна робота
Предмет:
Засоби системного програмування
Група:
КІ
Коротко про документ

Про що ця робота

У лабораторній роботі досліджено роботу команд порівняння, умовного та безумовного переходів у програмуванні. Виконано розробку та налагодження задач з використанням алгоритмів розгалуження та обробкою знакових даних.

У роботі розглядаються

  • Системне програмування
  • Команди переходів
  • Алгоритми розгалуження
  • Знакові дані
  • Логічні операції
  • Арифметичні команди

Зміст і розділи

  1. Мета роботи
  2. Завдання
  3. Лістинг програми
  4. Дамп пам'яті
  5. Висновок
Для кого:Студенти технічних спеціальностей вищих навчальних закладів
Викладачі:Викладач кафедри

Ключові поняття

команди переходівумовний перехідбезумовний перехідарифметичні командизнакові данілогічні операціїрозгалуженняпам'ять

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ ЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра ЕОМ / Лабораторна робота №5 з курсу ”Засоби системного програмування” Дослідження роботи команд переходів. Програмування задач з використанням алгоритмів розгалуження. Львів – 2012 Дослідження роботи команд переходів. Програмування задач з використанням алгоритмів розгалуження. Мета: освоїти використання команд порівняння, умовного та безумовного переходів. Набути вміння використовувати арифметичні команди над знаковими даними та команди логічних операцій. Завдання: 12    Лістинг програми DOSSEG .MODEL SMALL .STACK 100h .DATA A db 4 B db 5 X dw 0 Hello db 13,10,' X=(2+b)/a if a>b',13,10,' X=-2 if a==b',13,10,' X=(a-5)/2*b if a<b',13,10,'$' A_B db 13,10, ' a==b ====> X=-2',13,10,'$' Error_A db 13,10,' a<b and a==0 ----> divide by zero',13,10,'$' Error_B db 13,10,' a>b and b==0 ----> divide by zero',13,10,'$' .CODE mov ax,@data ;Перевизначення сегментного регістру ds mov ds,ax mov ah,09 ;Вивід текстового повідомлення про умову задачі mov dx,offset hello int 21h mov al,B ;занести значення з комірки пам’яті, визначеної міткою B, у регістр al cmp al,A ;порівняти значення регістру al та комірки пам’яті A jne A_g_B ;за умови, що вони нерівні, перейти на мітку A_g_B mov X,-2 ;інакше – занести значення константи -2 у пам’ять, визначену як X mov ah,09 ;вивести повідомлення, про рівність вхідних даних і значення результату mov dx,offset A_B int 21h jmp exit ;перейти на мітку exit A_g_b: jg A_n_B ;якщо вміст al > A, то перейти на мітку A_n_B cmp A,0 ;інакше – порівняти значення A з нулем je exit_A ;якщо вони рівні, тобто можливе ділення на нуль, перейти на мітку exit_A mov ah,80h ;занести у регістр ah константу 80h and ah,al ;виділити в регістрі ah знаковий розряд значення, занесеного у регістр al sar ah,8 ;розповсюдити знаковий розряд в регістрі ah mov dl,ah ;перенести знаковий розряд в регістр dl mov dh,dl ;перенести знаковий розряд в регістр dh mov bl,B ;занести у регістр bl значення з комірки пам’яті, визначеної міткою В mov bh,80h ;занести у регістр bh константу 80h and bh,bl ;виділити в регістрі bh знаковий розряд значення, занесеного у регістр bl sar bh,8 ;розповсюдити знаковий розряд в регістрі bh add ax,2 idiv bx ;поділити знакове число, що знаходиться у регістровій парі dx:ax на знакове число ;у регістрі bx mov X,ax ;перенести отриманий результат у комірку Х jmp exit ;перейти на мітку exit exit_A: mov ah,09 ;вивести повідомлення про ділення на нуль, при A==0 mov dx,offset Error_A int 21h jmp exit ;перейти на мітку exit A_n_B: cmp B,0 ;порівняти значення В з нулем je exit_B ;якщо вони рівні, тобто можливе ділення на нуль, перейти на мітку exit_B mov al,A ;занесети значення з комірки пам’яті, визначеної міткою A, у регістр al mov ah,80h ;занести у регістр ah константу 80h and ah,al ;виділити в регістрі ah знаковий розряд значення, занесеного у регістр al sar ah,8 ;розповсюдити знаковий розряд в регістрі ah sub ax,5 ;ax=a-5 ;відняти число 5 від значення у регістрі ах mov dx,8000h ;занести у регістр dh константу 8000h and dx,ax ;виділити в регістрі dx знаковий розряд значення, занесеного у регістр ax sar dx,15 ;розповсюдити знаковий розряд в регістрі dx mov bl,A ;занести у регістр bl значення з комірки пам’яті, визначеної міткою А mov bh,80h ;занести у регістр bh константу 80h and bh,bl ;виділити в регістрі bh знаковий розряд значення, занесеного у регістр bl sar bh,8 idiv bx ;поділити знакове число, що знаходиться у регістровій парі dx:ax на знакове число mov bx,2 ;у регістрі bx imul bx mov X,ax ;перенести отриманий результат у комірку Х jmp exit ;перейти на мітку exit exit_B: mov ah,09 ;вивести повідомлення про ділення на нуль, при А==0 mov dx,offset Error_B int 21h exit: mov ah,4Ch ;завершення програми int 21h end Дамп пам’яті відображено на рис.1, Рис.1. Вмістиме дампу пам’яті / Скріншот роботи програми: / Висновок: В даній лабораторній роботі я освоїв використання команд порівняння, умовного та безумовного переходів. Набув вміння використовувати арифметичні команди над знаковими даними та команди логічних операцій.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!