Монадные трансформаторы не очень математически приятны. Тем не менее, мы можем получить хорошие (со) продукты из бесплатных монад и, в более общем смысле, идеальные монады: см. «Копродукции идеальных монад» Гани и Уусталу: http://citeseerx.ist.psu.edu/viewdoc/ Резюме? DOI = 10.1.1.4.2698
C и D являются числами / типами, а H для высоких и L для младших частей верхнего регистра. http://en.wikipedia.org/wiki/X86
Википедия это очень хорошо объясняет.
Еще из Википедии:
* EAX - Accumulator Register
* EBX - Base Register
* ECX - Counter Register
* EDX - Data Register
* ESI - Source Index
* EDI - Destination Index
* EBP - Base Pointer
* ESP - Stack Pointer
Это история. X86 произошел от 8086, который пришел от 8080, который пришел от 8008, который пришел от 4004. Были 16-битные регистры AX, BX и т.д., а для 80386 они были "расширены" до 32 бит.
Добавлено: Кстати, Motorola 68K с самого начала имела 32-битные регистры, поэтому первые пару десятилетий было намного проще программировать. Я работал над проектами, в которых Intel была выбрана по деловым, а не техническим причинам.
Вот несколько хороших ответов: Регистры сборки x86 - Почему они работают именно так?
старые процессоры имеют аккумуляторы с именами A, B и т. Д. (В алфавитном порядке). Когда были разработаны 16- и 32-битные аккумуляторы, инженеры добавили X (расширенный). Так что все дело в истории, поскольку язык C так называется, потому что он был разработан на основе языка B (Bell labs).
Соглашение носит только внутренний характер, чтобы не отставать от имен, с которыми они уже знакомы.