Похоже на х86 ассемблер.Эта команда добавляет 48 (48 десятичных) к содержанию младшего 8 бита (E) регистра DX.См. x86 регистры общего назначения , но реальные объяснения см. На странице x86 Википедии, раздел «Регистры x86» .
На x86 вы можете получить доступ к частям регистра,Исторически это было сделано для того, чтобы 8086 (16-битные регистры) были максимально совместимы с 8080 (8-битными регистрами).Затем эта схема была расширена на 80286/80386 с помощью 32-разрядных регистров, а затем снова до 64-разрядных в режиме AMD x64.
Таким образом, вы можете получить доступ ко всему 32-разрядному регистру как EDX (в защищенном режиме) инижний 16-битный регистр как DX.Теперь эта 16-битная часть (DX) дополнительно разделена на две части: к старшему 8-битному относятся как DH, а к младшему 8-битному - как DL.
Редактировать после редактирования вопроса:
Давайте объясним процитированный код задом наперед: в конце вызывается прерывание 21hex, которое в IBM PC-совместимых системах отвечает за различные вызовы API DOS .Установка 8-разрядного регистра AH на 2 приводит к выполнению символьного вывода .Выводимый символ находится в 8-битном регистре DL.
Итак, в вашем первом примере напечатан символ ASCII 02, но это управляющий символ, поэтому на выходе не должно быть b
как вы говорите, это что-то невидимое (02 означает начало текста ).Второй пример берет 2, затем добавляет 48, что дает 50 (десятичное число).Это код ASCII для персонажа 2
.
Боже мой, я действительно чувствую себя старым ... Я сделал это 20 лет назад.