ПРИМЕРНО ТАК, ТОЛЬКО Я НЕ ЗНАЮ КАК это в Си вставить
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено RUAL 26 ноября 2003 г. 11:09
В ответ на: С удовольствием! Но его нет, выше пишу дуб я в ASM86 отправлено at21 26 ноября 2003 г. 10:21

ADDR_LPT EQU 0123H ;АДРЕС ПОРТА !!!!ЦИФРА ОТ БАЛДЫ - НЕ ПОМНЮ АДРЕС

MOV DX, ADDR_LPT ;АДРЕС ПОРТА В dx
MOV AX, SEG BUF1 ;ЗАГРУЗКА В СЕГМЕНТЫЙ РЕГИСТР
MOV DS, AX ;СЕГМЕНТА 1 БУФЕРА
ASSUME DS:SEG BUF1

LOOP_BUF1:
MOV EX, 00h ;ПУНКТ 0: Индекс массива = 0
MOV CX, 0H ;СЧЕТЧИК В 0

READ_LPT1:
IN AL, DX ;1. Читаем данные на разрядах 0-5 на входном регистре LPT
AND AL, 3FH

CMP AL, 0
JZ READ_LPT1 ;2. Если все биты(0-5) = 0 переходим к п.1 иначе идем дальше

TEST_BIT611:
IN AL, DX ;3. Проверяем бит 6 на входном регистре LPT
AND AL, 40H
CMP AL, 0H
JZ TEST_BIT611 ;4. Если бит = 0 то переходим к п.3 иначе идем дальше

IN AL, DX ;5. Читаем данные на разрядах 0-5 на входном регистре LPT
AND AL, 3FH

MOV DS:[EX], AL ;6. Заносим это значение в массив размерностью (!!!!!128КБ) ПЕРВЫЕ 64К

INC EX ;7. Инкрементируем индекс массива

TEST_BIT601:
IN AL, DX ;8. Проверяем бит 6 на входном регистре LPT

AND AL, 40H
CMP AL, 40H
JZ TEST_BIT601 ;9. Если бит = 1 то переходим к п.8 иначе идем дальше

LOOP READ_LPT1 ; 10. Переходим к п. 3


;*********** ДАЛЬШЕ ВСЕ ТОЖ САМОЕ, ТОКА БУФЕР BUF2, СЛЕДУЮЩИЕ 64К

MOV AX, SEG BUF2 ;ЗАГРУЗКА В СЕГМЕНТЫЙ РЕГИСТР
MOV DS, AX ;СЕГМЕНТА 2 БУФЕРА
ASSUME DS:SEG BUF2

LOOP_BUF2:
MOV EX, 00h ;ПУНКТ 0: Индекс массива = 0
MOV CX, 0H ;СЧЕТЧИК В 0

READ_LPT2:
IN AL, DX ;1. Читаем данные на разрядах 0-5 на входном регистре LPT
AND AL, 3FH

CMP AL, 0
JZ READ_LPT2 ;2. Если все биты(0-5) = 0 переходим к п.1 иначе идем дальше

TEST_BIT612:
IN AL, DX ;3. Проверяем бит 6 на входном регистре LPT
AND AL, 40H
CMP AL, 0H
JZ TEST_BIT612 ;4. Если бит = 0 то переходим к п.3 иначе идем дальше

IN AL, DX ;5. Читаем данные на разрядах 0-5 на входном регистре LPT
AND AL, 3FH

MOV DS:[EX], AL ;6. Заносим это значение в массив размерностью (!!!!!128КБ) ВТОРЫЕ 64К

INC EX ;7. Инкрементируем индекс массива

TEST_BIT602:
IN AL, DX ;8. Проверяем бит 6 на входном регистре LPT

AND AL, 40H
CMP AL, 40H
JZ TEST_BIT602 ;9. Если бит = 1 то переходим к п.8 иначе идем дальше

LOOP READ_LPT2 ; 10. Переходим к п. 3

Спрашивай, если че


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru