Source: http://www.info.univ-angers.fr/pub/richer/dev/emulx86.pdf