.model tiny
.code
.486
org 100h
.startup
a:xor ax,ax
int 16h
and ax,255
imul dx,ax,5
add dx,offset roman-'1'*5
mov ah,9
int 21h
jmp a
roman db 'I$$$$II$$$III$$IV$$$V$$$$VI$$$VII$$VIII$IX$'
end
Как вообще этот код переводит арабские цифры в римские?
int16h - записывает то что мы вводим с клавиатуры, например число 5, но при этом тут нет функции, я не понимаю в какой регистр записывается число, чисто из моего предположения в регистр ах
and ax,255 - я так понимаю переводится в двоичный код и сравниваются побитого, значит в ах будет 5? и непонятно зачем это вообще делали
imul dx,ax,5 - 5 умножается на 5 и записывается в dx, dx = 25, непонятно зачем
add dx,offset roman-'1'*5 - добавить к 25 строку??? и что вообще происходит
дальше просто вывод я так понимаю