тем не менее это поставило меня в ступор.
простой код
Цитата
U8 i
for(i = 0; i < 255; i++);//задержка
for(i = 0; i < 255; i++);//задержка
который я бы "скомпилировал" бы так
Цитата
mov r0, 0xFF;
LOOP: djnz r0, LOOP;
LOOP: djnz r0, LOOP;
компилируется в бесконечный цикл с непонятным колдовством в теле
Цитата
0B: CLR A;
0C: MOV R7, A;
0D: MOV A, R7; //СЮДА ЦИКЛ ПРЫГАТЬ БУДЕТ
0E: MOV R5, A;
0F: RLC A; //какие-то сдвиги
10: SUBB A, 0xE0; //какие-то непонятные константы
12: MOV R4, A;
13: CLR C;
14: MOV A, R5;
15: SUBB A, #0xFE; //какие-то вычитания
17: MOV A, R4;
18: XRL A, #P0 (0x80); // там был адрес указан, а не P0
1A: SUBB A, #P0 (0x80); // он что, ещё и с портом решил поработать зачем-то????
1C: JNC C:21; // я так понял выход из цикла, зачем???
1E: INC R7; //R7 я так понял, это счётчик i
1F: SJMP C:0D;//наверх //так и убрали бы всё кроме этих двух команд
21:
0C: MOV R7, A;
0D: MOV A, R7; //СЮДА ЦИКЛ ПРЫГАТЬ БУДЕТ
0E: MOV R5, A;
0F: RLC A; //какие-то сдвиги
10: SUBB A, 0xE0; //какие-то непонятные константы
12: MOV R4, A;
13: CLR C;
14: MOV A, R5;
15: SUBB A, #0xFE; //какие-то вычитания
17: MOV A, R4;
18: XRL A, #P0 (0x80); // там был адрес указан, а не P0
1A: SUBB A, #P0 (0x80); // он что, ещё и с портом решил поработать зачем-то????
1C: JNC C:21; // я так понял выход из цикла, зачем???
1E: INC R7; //R7 я так понял, это счётчик i
1F: SJMP C:0D;//наверх //так и убрали бы всё кроме этих двух команд
21:
Мне собственно было бы всё равно, если б цикл выполнялся правильно,
но он зависает в бесконечном цикле!!!
как в этом может быть ошибка???
Цитата
U8 i
for(i = 0; i < 255; i++);//задержка
for(i = 0; i < 255; i++);//задержка
ЗЫ Кейл юВижн 3.6