Размещение абсолютного сегмента данных с адреса "0" в данном случае не совсем корректно, т.к. там размещен нулевой и, в Вашем случае, наверное первый банки регистров. Компоновщик на это мягко ругается, т.е. "в принципе можно, но имейте в виду..."
Как вариант - можно отказаться от описания сегмента "DSEG AT 0" и использовать описания типа
Код
LCD_X DATA 0Ah ;X=R2 in bank 1
LCD_Y DATA 0Bh ;Y=R3 in bank 1
mov LCD_X,#1 ; помещает в ячейку 0Аh значение "1"
Кроме того, вместо адресов регистров банка, выбранного директивой "using", можно использовать имена "AR0"..."AR7", например
Код
using 1
...
push AR0 ; сохраняет в стеке содержимое ячейки 8
...
using 2
pop AR0 ; восстанавливает из стека содержимое ячейки 10h
...
using 0
Фактического переключения банков при этом не происходит