Pseudocode

function extended_gcd(a, b)
	(old_r, r) := (a, b)
	(old_s, s) := (1, 0)
	(old_t, t) := (0, 1)

	while r != 0 do 
		quo := old_r div r
		(old_r, r) := r, old_r - quo * r
		(old_s, s) := (s, old_s - quo * s)
		(old_t, t) := (t, old_t - quo * t)

	output "Bezout cofficients: ", (old_s, old_t)
	output "Greatest common divisor: ", old_r

A trick to memorize the initial values: Bézout's relationship:

then we have old_s = 1, old_t = 0