%include "io.inc"
extern io_get_dec
extern io_print_dec
extern io_newline
section .text
global main
main:
call io_get_dec
mov ebx, eax ; a
call io_get_dec
mov esi, eax ; b
call io_get_dec
mov edi, eax ; c
call io_get_dec
mov ebp, eax ; d
sub ebx, esi ; ebx = a - b
mov eax, ebp ; eax = d
xor edx, edx
div edi ; edx = d mod c
mov eax, edi ; eax = c
sub eax, edx ; c - (d mod c)
xor edx, edx
div edi ; edx = (c - (d mod c)) mod c
mov eax, ebx
add eax, edx ; edx = a - b + (c - (d mod c)) mod c
call io_print_dec
call io_newline
xor eax, eax
ret