Регистры это специальные ячейки памяти. Это самое главное. Вся их прелесть в том, что обращение к регистрам производиться значительно быстрее чем к оперативной памяти ПК. Именно по этой причине регистры используются для команд процессора. От туда процессору удобно и быстро получать информацию. Если говорить o ПК с типом процессоров 286. А мы пока именно такой процессор и рассматриваем то размер регистра 16 бит. Каждый регистр имеет имя и свое назначение. Они бывают следующие по типам.
регистры общего назначения AX, BX, CX, DX, BP, SI, DI, SP cегментные регистры CS, DS, SS, ES счетчик команд IP регистр флагов Flags
Каждое имя регистра несет некоторый смысл
A accumulator аккумулятор B base база C counter счетчик D data данные BP base pointer указатель базы SI source index индекс источника DI destination index индекс приемника SP stack pointer указатель стека CS code segment сегмент команд DS data segment сегмент данных SS stack segment сегмент стека ES extra segment дополнительный сегмент IP instruction pointer счетчик команд
Регистры AX, BX, CX и DX позволяют нам обращаться не к регистру а к старшему и младшему байту
AX AH,AL BX BH,DL DX DH,DL CX CH,CL
На данный момент мы использовали регистр AX в шаге "Шаг 3 - Программа HelloWord". Для задании функции прерывания.
mov ah,40h int 21h mov ah, 04Ch int 21h
При этом использовали только часть регистра, а точнее старший байт:
H high старший L low младший
Почему мы не использовали, скажем, ячейки памяти? Да потому что есть правила, где что должно храниться при вызове прерывания. Точнее что и в каком регистре должно находиться. Правила, эти описаны в документации. Ну, например наша последняя функция описана так
Int 21H Функция 4CH AH=4CH AL=код возврата Возврата нет.
Прекращает процесс и передает операционной системе код возврата.
На данный момент Вы должны понимать что для большинства операций используются регистры, а для прерываний конкретно есть спецификации, в которых написано что и в каком регистре должно находится.