Во-первых, непонятно что делает процедура setaddress, Вы её не привели. Если она посылает команду индикатору, на что очень похоже, то смотрите распределение памяти на стр.5. PDF.
Во-вторых, почему Вы думаете, что сдвиг вправо передвинет курсор с адреса 7 на адрес 40h?! Не будет такого, сдвиг будет идти с адреса 7 на адрес 8h, потом 9h, потом Ah и т.д. до адреса 27h и только с него курсор перескочит на адрес 40h и появится в 9-й позиции индикатора. Т.е. при сдвиге вправо адреса перебираются 0x0, 0x1, 0x2, ... 0x26, 0x27, 0x40, 0x41, 0x42, 0x43, ... 0x66, 0x67, 0x0, 0x1, ... При сдвиге влево - строго в обратном порядке.