здр. нашел на просторах инета резидентную программу вращения символа слеша на экране. не совсем ясно, зачем автор считывает с видеостраницы что-то, если ранее туда ничего не записывалось. а затем еще полученное сравнивается с одной из позиций вращающегося слеша? да и вообще слеш должен на одном месте крутиться, а смещение (получения какого-то символа и записи одного из позиций вращающегося слеша) постоянно удаляется от начала видеостраницы с помощью lodsw.. пжл, просветите меня.. Код (ASM): CODE SEGMENT USE16 ASSUME CS:CODE ORG 100H START: MOV AX,251CH MOV DX,SLASHROTATOR INT 21H INC DH INT 27H SLASHROTATOR: PUSHA PUSH 0B800H POP DS XOR SI,SI MOV CH,8 ONE: LODSW MOV EDX,7C5C2D2FH THREE: ROL EDX,8 CMP AL,DH JNE SHORT FOUR MOV DS:[SI-2],DL FOUR: CMP DL,2FH JNZ THREE LOOP ONE POPA IRET CODE ENDS END START
Чёт какое-то гуано. Если символ кто-то перепишет извне, то ему может башню снести (гипотеза). Весь код должен сводиться к чтению состояния из ячейки памяти, записи в видеобуфер, и сохранению нового состояния. Код (ASM): state: dd 7C5C2D2FH rotator: pusha ; Инициализируем адрес записи в буфер mov ax, 0b800h xor bx, bx mov es, ax ; Выводим текущее состояние на экран mov eax, state mov es:[bx], al ; Запоминаем новое состояние rol eax, 8 mov state, eax popa iret
proc3nt, вращаться будут все слеши, записанные в нулевой странице видеопамяти. В названии текущей директории, например.
вобщем написал автору по этому поводу и недавно получил ответ.. вроде, все становится на свои места.. оказывается я не совсем правильно понял техническое задание.. нужно было написать программу, которая бы крутила уже имеющиеся слэши на экране, а не записывала бы в первую ячейку видеопамяти (левый верхний угол) один вращающийся слэш..