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

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

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

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

Звіт з лабораторної роботи №4 з дисципліни «Засоби системного програмування»: Програмування задач лінійної структури. Обчислення виразів

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

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

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

Рік:
2014
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Засоби системного програмування
Група:
КІ-2
Варіант:
2 11
Коротко про документ

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

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

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

  • Системне програмування
  • Мова асемблера
  • Арифметичні операції
  • Обчислення виразів
  • Регістри процесора
  • Налагодження програм

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

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

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

директиваоперандмноженняділеннястеклістингконстантазмінна

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

Міністерство освіти та науки України Національний університет «Львівська політехніка»  ЗВІТ З лабораторної роботи №4 З дисципліни: «Засоби системного програмування» На тему: «Програмування задач лінійної структури. Обчислення виразів.» Мета: вивчити способи задання констант та змінних в Асемблері та набути навиків використання арифметичних команд над даними різного розміру. ЗАВДАННЯ: Створити *.exe програму, яка реалізовує обчислення, заданого варіантом виразу і зберігає результат в пам’яті. Вхідні операнди А, В, С, D, E, F вважати беззнаковими і довжиною в байтах, згідно з індексу; К – константа, довжина якої визначається значенням(згідно варіанту). Для її опису слід використати директиву EQU. За допомогою Debug, відслідкувати правильність виконання програми (продемонструвати результати проміжних та кінцевих обчислень). Скласти звіт про виконану роботу з приведенням тексту програми та коментарів до неї. Дати відповідь на контрольні запитання. ВАРІАНТ ЗАВДАННЯ: № Вираз K  2 X=A4/B2+C3-D1*E1-K 202  Лістинг програми: DOSSEG .MODEL SMALL .STACK 100h .DATA K EQU 202h A dd 10000 ; оголошуємо потрібні нам змінні B dw 10 C dw 01,00 D db 10 E db 12 Temp1 dw 00h,00h ; змінні для проміжних результатів Temp2 dw 00h,00h X dw 00h,00h ; змінна для кінцевого результату ;X=A4/B2+C3-D1*E1-K .CODE go: mov ax,@data mov ds,ax ;Temp1 <- A4/B2 ; в цьому блоці виконуємо операцію ділення mov ax,word ptr A+2 ; переміщуємо старшу частину змінної А в регістр ах mov bx,1 ; переміщуємо 1 в регістр bx mul bx ; робимо множення на 1 div B ; виконуємо ділення mov Temp1+2,ax ; записуємо частку старшої частини в Temp1 зі зміщенням на 2 байти mov ax,word ptr A ; переміщуємо молодшу частину змінної А у регістр ах div B ; виконуємо ділення mov Temp1,ax ; записуємо частку в Temp1 ;Temp2 <- D1*E1 ; в цьому блоці виконуємо операцію множення mov ax,0 ; онулюємо регістр ах mov ax,word ptr D ; переносимо значення змінної D в регістр ax mul E ; виконуємо множення mov Temp2,ax ; молодший результат множення записуємо в Temp2 mov Temp2+2,dx ; старший результат множення записуємо в Temp2 зі зміщення у 2 байти ;Temp1 + C3 - Temp2 – K ; в цьому блоці виконуємо операцію додавання та віднімання з використанням ; проміжних результатів та змінних mov ax,0 ; онулюємо регістр ах mov ax, word ptr C ; переносимо значення зміноої С в регістр ах add ax,Temp1 ; виконуємо додавання adc dx,Temp1+2 ; виконуємо додавання з врахуванням переносу sub ax,Temp2 ; виконуємо віднімання sbb dx,0 ; виконуємо віднімання з запозиченням add ax,K ; виконуємо додавання mov X,ax ; переміщаємо молодшу частину результату з регістру ах у змінну Х mov X+2,dx ; переміщаємо старшу частину результату з регістру dх у змінну Х зі зміщенням на 2 байти int 21h ; переривання end go Висновок: я навчився виконувати операції над цілими без знаковими даними. Використовувати стандартні функції для виконання цих операцій.
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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