А из нулевого регистра данных все нормально читается (также записываю ручками после останова):
Код
.device ATmega128 ;
.INCLUDE "m128def.inc" ;
.cseg
.org 0x0000
ldi r16,5
out UDR0,r16
clr r16
in r16,UDR0//перед выполнением в симуляторе записываю значение в UDR0
nop
странно?!
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...