Просто у вас программа маленькая. Это - ответ. Поясню: - поскольку у вас маленькая программа, она занимает меньше 255 байт - значит, пресловутый текст находится где-то в районе "База+FF" - значит, если у вас база 0800, то адрес этого text 08хх, в H попадает 08 - а если база 0700, то совершенно аналогично, 07. Уже же до маразма, не кажется? "Товарищи ученые, у меня есть хрень в 13 сантиметров длиной. И вот что я заметил - если ее приложить к линейке у деления 10 см, то получится 23 см. А если у деления 30 см, то 43 см. Я ничего не понимаю, как так происходит???"
при чем тут "как смотришь h"??? lxi h, address заносит в ПАРУ регистров h,l указанный адрес (не содержимое!). Адресуемая память ВМ80 - 64К, адреса занимают 2 байта. Старший байт попадает в H, младший - в L. Если пресловутый адрес text отстоит не более чем на 255 байт от начала программы, то совершенно естественно и логично, что в регистр H попадает именно старший байт адреса, указанного в ORG. Ухожу из темы в шоке чего тут можно НЕ понять-то?