загрузка 26 и других 2-значных десятичных чисел в регистры
Это самая легкая часть. Все двузначные десятичные числа находятся в диапазоне [10,99].
Чтобы загрузить те в регистр, как CX
, вы просто пишете
mov cx, 10
mov cx, 11
...
То, что делает ваша программа, это нечто совершенно другое. Вы пытаетесь отобразить такое двузначное десятичное число. Это требует разложения числа на 2 символа. Это делается путем деления числа на 10. Частное число - это первая цифра для печати, а остальная часть - вторая цифра для печати.
mov ax, cx ; Division exclusively works with AX
mov dl, 10 ; Divisor
div dl ; AX / DL -> Quotient in AL, Remainder in AH
add ax, 3030h ; Make both ASCII at the same time
mov dx, ax ; DL holds "quotient"-character, DH holds "remainder"-character
mov ah, 02h ; DOS.DisplayCharacter
int 21h
mov dl, dh ; Bring "remainder"-character in DL
mov ah, 02h ; DOS.DisplayCharacter
int 21h