Міністерство освіти і науки України
Національний технічний університет України
«Київський політехнічний інститут ім. І. Сікорського»
Кафедра автоматизації проектування енергетичних процесів і систем
Лабораторна робота № 7
з дисципліни «Операційні системи»
«Організація умовних переходів»
Робота студентки 1 курсу, ТР-15
Тхоржевської Анни Сергіївни
Перевірила д.т.н., проф. Левченко Л.О.
КИЇВ 2022
Мета роботи: Вивчення команд умовних переходів і способів їх використання в асемблерних програмах для реалізації розгалужень в обчисленнях.
Завдання: Обчислити умовний цілочисельний вираз у форматах Integer та Word, використовуючи команди порівняння. Результат перевірити на область допустимих значень.
Теоретична частина
Варіант 14
Завдання за варіантом:
Результати виконання роботи
Код (відповідно до варіанту завдання):
.MODEL small
.Stack 100h
Datas segment
a dw 6
b dw 2
x dw ?
h dw ?
xm dw ?
mess db 'Error! Division by zero.$'
Datas ends
Codes segment
Assume cs:Codes, ds:Datas
First: mov ax, Datas
mov ds, ax
mov ax, a;
cmp ax, b;
jg @more
jl @less
;a==b
xor ax, ax
mov ax, -2
mov x, ax
jmp @ans
;a>b
@more:
xor ax, ax
mov ax, b
cmp ax, 0
je @err
mov ax, a
cwd
idiv b
mov h, 1
add ax, h
mov x, ax
jmp @ans
;a<b
@less: xor ax, ax
mov ax, a
cmp ax, 0
je @err
mov ax, a
sbb ax, b
cwd
idiv a
mov x, ax
jmp @ans
@ans: xor ax, ax
mov ax, x
push ax
cmp ax, 0
jns @plus
mov dl, '-'
mov ah, 02h
int 21h
pop ax
neg ax
@plus: xor cx, cx
mov bx, 10
@exp: xor dx, dx
div bx
push dx
inc cx
test ax, ax
jnz short @exp
mov ah, 02h
@out: pop dx
add dl, 30h
int 21h
loop @out
jmp @end
@err: mov dx, offset mess
mov ah, 09h
int 21h
@end: mov ax, 4c00h
int 21h
Codes ends
end First
Якщо a > b (тоді a = 6, b = 2):
Якщо a == b (тоді a = 4, b = 4):
Якщо a < b (тоді a = 2, b = 6):
Висновок: Під час виконання лабораторної роботи №7 ми вивчили команди умовних переходів і способів їх використання в асемблерних програмах для реалізації розгалужень в обчисленнях. Було виконано завдання згідно з варіантом, оформлено звіт на надіслано викладачу на перевірку.