Мне немного стыдно спрашивать об этом, но как мне вывести значение байта на ассемблере? Предположим, у меня есть число 62 в регистре AL. Я нацелен на 8086. Кажется, доступны только прерывания, которые выводят значение ascii.
Редактировать: Спасибо, Ник Д., это то, что я искал. Чтобы ответить на пару вопросов, я использую эмулятор emu8086. Код будет использоваться в крошечном приложении на заводе, где используется устаревшее оборудование (т.е. это секрет).
Решение, использующее идею Nick D, выглядит примерно так:
compare number, 99 jump if greater to over99Label compare number, 9 jump if greater to between9and99Label ;if jumps failed, number has one digit printdigit(number) between9and99Label: divide the number by 10 printascii(quotient) printascii(modulus) jump to the end over99Label: divide the number by 100 printascii(quotient) store the modulus in the place that between9and99Label sees as input jump to between9and99Label the end: return
и он отлично работает для беззнаковых байтов :)