Здравствуйте, стал разбираться с программой Isis для эмулирование МК, столкнулся со странной проблемой. Код:
.cseg
.org 0
ldi temp,RamEnd ;инициализация стека
out SPL,temp
ldi temp,0xFF ;настройка порта D на вывод
out DDRD,temp
ldi temp,0x00 ;настройка порта B на ввод
out DDRB,temp
Begin:
clr temp1 ;обнуляем регистр temp1
in temp1, PINB ;записываем данные из порта B в темп1
rcall Delay ;задержка
out PORTD, temp1 ;выводим данные в порт D
rcall Delay ;задержка
rjmp Begin ;сначала
; задержка
Delay:
ldi Temp3,0
ldi Temp4,0
Loop:
dec Temp3
brne Loop
dec Temp4
brne Loop
ret
Программа простая, в зависимости от нажатых кнопочек читаем единицы-нули с порта B и передаем их на порт D. Но тем не менее, на выходе всегда горят единицы, вне зависимости от нажатых кнопок. Что я делаю не так?