Другие языки программирования и технологии

Вопрос по ассемблеру

Простейший способ вывода на экран чисел не превышающих 99:

    mov dl,1Dh
    mov al,dl
    xor ah,ah
    mov dl,10
    div dl
    mov dx,3030h
    add dx,ax
    mov ah,2
    int 21h
    mov dl,dh
    int 21h

И более универсальный способ, который в отличие от предыдущего не выводит незначащий нуль в старшем разряде для чисел меньше 10 и корректно выводит трёхзначные числа:

    mov dl,1Dh
    mov al,dl
    xor cx,cx
    mov dl,10
Prepare:
    xor ah,ah
    div dl
    push ax
    inc cx
    or al,al
    jnz Prepare
Print:
    pop ax
    xchg al,ah
    add al,'0'
    int 29h
    loop Print

P.S. Оба фрагмента для программы в среде MS DOS.
HT
Hurshed Toyirov
51 590
Лучший ответ
Переводи в 10-ичную систему. Но это сложновато для человека, задающего такие вопросы. Лучше переводи в 16-ричную.
YV
Yury Volkov
56 023
лень набирать тут. поиском религия пользоваться запрещает?
если используется dx - то скорее всего DOS, 21-е прерывание.
тогда в dx должен быть адрес строки а не значение!
вот пример краткий
http://rsc-team.ru/index.pl?rzd=2&group=listings&id=b525b14c5fd1d72e542207ab5bb9ef6b&bk=0

если win-консоль, то тогда совсем по другому.