В нулевом порте сформировать бегущую единицу
Как в нулевом порте P0 (p00-p07) сформировать бегущую единицу [1->0->0->0->0->0->0] для микроконтроллера 8051 ?
если там P0 как регистр, то просто сдвигать его содержимое rcr'ом
MOV P0,A;
MOV A,#08;
MOV R1,A;
S1: MOV A,P0;
RR A;
MOV P0,A;
.....задержка....
DJNZ R1,S1;
....Продолжение программы......
START
MOV al, 10000000b;
a:
MOV P0, al;
RR al;
jmp a;
END START
(В задании подразумевалось, чтобы программа не выходила из цикла). Как вы считаете, это правильный код?
она по определению не может выйти из цикла
----
.code
START:
MOV Rn, 10000000b;
a:
MOV P0, Rn;
RR al;
JMP a;
END START
----
почему не собирается?
Нет, на самом деле меня просто попросили сделать эту простенькую лабораторочку. По этому, в течение дня подчитал кое-что по ассемблеру и решил сесть писать. Моему другу этот код нужно будет показать преподавателю. Я не хочу окаказатся в неловком положении, когда он скажет: "Что ты, блин, понаписал?". Так всё таки, в таком виде код можно "отдать в печать" или стоит еще что-нибудь добавить?.. (сори, пока ничего в нём не соображаю)
только меточку "a" надо бы переименовать