Програмування задач лінійної структури. Обчислення цілочисельних виразів з використанням знакових даних

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

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Не вказано

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

Рік:
2010
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Засоби системного програмування

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

Міністерство освіти та науки України Національний університет «Львівська політехніка»  ЗВІТ З лабораторної роботи №5 З дисципліни: «Засоби системного програмування» На тему: «Програмування задач лінійної структури. Обчислення цілочисельних виразів з використанням знакових даних» Львів 2010 ЗАВДАННЯ: Створити *.exe програму, яка реалізовує обчислення, заданого варіантом виразу і зберігає результат в пам’яті. Вхідні операнди А, В, С, D, E, F вважати знаковими і довжиною в байтах, згідно з індексу; К – константа, довжина якої визначається значенням(згідно варіанту). Для її опису слід використати директиву EQU. За допомогою Debug, відслідкувати правильність виконання програми (продемонструвати результати проміжних та кінцевих обчислень). Скласти звіт про виконану роботу з приведенням тексту програми та коментарів до неї. Дати відповідь на контрольні запитання. ВАРІАНТ ЗАВДАННЯ: № Вираз K  7 X=A4/B2-C1*(D1+E2-K) 717   Лістинг програми: DOSSEG .MODEL SMALL .STACK 100h .DATA K EQU 1815 A LABEL word dd -1000000 B dw 2 C db -10 D db 15 E dw -10 Temp1 dw 00h Temp2 dw 00h,00h Res dw 00h Temp3 dw 00h,00h X dw 00h,00h ;X=A4/B2-C1*(D1+E2-K) .CODE go: mov ax,@data mov ds,ax mov al,D cbw add ax,E ;Temp1 <- ax - K sub ax, K mov Temp1,ax ;#====================================[DIV]===============================; ;Temp2 <- A / B xor cx,cx xor bx,bx test A+2,8000h jnz inverF mov cx,1 ;if A > 0 second: test B,8000h jnz inverS mov bx,1 ;if B > 0 div_p: mov ax,A+2 mov dx,1 mul dx div B mov Temp2+2,ax mov ax,A div B mov Temp2,ax mov Res,dx sub bx,cx jz next jnz inverR inverF: mov ax, A mov dx, A+2 not ax not dx add ax,1 adc dx,0 mov A,ax mov A+2,dx jmp second inverS: mov ax, B not ax add ax,1 mov B,ax jmp div_p inverR: mov ax, Temp2 mov dx, Temp2+2 not ax not dx add ax,1 adc dx,0 mov Temp2,ax mov Temp2+2,dx jmp next ;#====================================[DIV]===============================; ;Temp3 <- C*Temp1 ;#====================================[MUL]===============================; next: mov al,C cbw ;xor dx,dx mov bx,ax mov ax,Temp1 imul bx mov Temp3,ax mov Temp3+2,dx ;#====================================[MUL]===============================; ;X <- Temp2 - Temp3 clc mov ax,Temp2 mov dx,Temp2+2 sub ax,Temp3 mov X,ax sbb dx,Temp3+2 mov X+2,dx mov ah,4Ch int 21h end go Висновок і результати роботи програми:  Висновок: я навчився виконувати операції над цілими знаковими даними. Використовувати стандартні функції для виконання цих операцій.
Антиботан аватар за замовчуванням

18.03.2013 13:03-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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