Obvod a obsah obdélníku a rozdíl velikosti stran
bits 16
%include "rw.asm"
segment code
..start:
prologue
mov dx, msg_nacti_a
call Print_Str
call WriteLn
call Read_Word
call WriteLn
mov bx, ax
mov dx, msg_nacti_b
call Print_Str
call WriteLn
call Read_Word
call WriteLn
mov cx, ax
add ax, bx
jo preteceni
add ax, ax
jo preteceni
mov dx, msg_nacti_o
call Print_Str
call Write_Word
call WriteLn
mov ax, cx
mul bx
jo preteceni
mov dx, msg_nacti_s
call Print_Str
call Write_Word
call WriteLn
cmp bx, cx
jae odecet
jmp zaporne
odecet:
sub bx, cx
jo preteceni
mov ax, bx
mov dx, msg_nacti_r
call Print_Str
call Write_Word
call WriteLn
jmp konec
preteceni:
mov dx, msg_nacti_x
call Print_Str
zaporne:
mov dx, msg_nacti_z
call Print_Str
konec:
epilogue
; -----------------------------------------------------------------------
; datovy segment
segment data
msg_nacti_a: db 'Zadejte stranu A$'
msg_nacti_b: db 'Zadejte stranu B$'
msg_nacti_o: db 'Obvod je: $'
msg_nacti_s: db 'Obsah je: $'
msg_nacti_r: db 'Rozdil je: $'
msg_nacti_x: db 'Chyba! Doslo k preteceni!$'
msg_nacti_z: db 'Vysledkem odecitani je zaporne cislo$'