Мне немного стыдно спрашивать об этом, но как мне вывести значение байта в ассемблере?
Предположим, у меня есть номер 62 в регистре AL. Я нацеливаюсь на 8086. Кажется, что доступны только прерывания, которые выводят его значение ascii.
Редактировать: Спасибо, Ник Д., это было то, что я искал. Чтобы ответить на пару вопросов, я на самом деле использую эмулятор emu8086. Код будет использоваться в крошечном приложении на фабрике, которая использует устаревшее оборудование (т.е. это секрет).
Решение, использующее идею Ника Д., выглядит примерно так:
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
и отлично работает для неподписанных байтов:)