С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
DARKPALADIN
6 / 6 / 8
Регистрация: 19.06.2016
Сообщений: 120
Завершенные тесты: 3
1

Порты ввода/вывода

21.02.2018, 11:48. Просмотров 426. Ответов 14
Метки нет (Все метки)

Какой номер порта отвечает за контроллер HDD/SSD(SATA).
Через какие порты с помощью команды in можно получить информацию о подключенных HDD/SSD, а также управлять ими?
И есть ли какой-то мануал по всем портам в ПК(имею в виду нумерацию).

Знаю, что 60h и 61h отвечают за клавиатуру.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2018, 11:48
Ответы с готовыми решениями:

Программа ввода-вывода чисел
Есть простейшая программа, в которой какое число введёшь такое число и выведет,...

Консольные операции ввода - вывода
Доброго времени суток. Нужно написать вот такую программку на ассемблере: ...

Функции ввода и вывода действительных чисел
кто иммет скиньте пожалуста

Программа ввода-вывода текста в машинном коде
Приветствую. Есть задача: написать программу в машинном коде (без...

Разработка программы ввода-вывода и обработки последовательности кодов
Помогите мне пожалуйста решить мне задачу. ЗАДАНИЕ: Написать программу на...

14
Uncle Remus
Заблокирован
21.02.2018, 12:04 2
DARKPALADIN,
Пуск http://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow Компьютерhttp://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrowСвойстваhttp://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrowДиспетчер устройствhttp://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow Системные устройстваhttp://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrowАрифметический сопроцессорhttp://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow Свойстваhttp://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow Ресурсыhttp://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrowДиапазон ввода/вывода (I/O)http://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow порты от 00F0 до 00F0
и так по всем устройствам, которые тебя интересуют, чем искать мануал, которого может и не быть, или сведения в нем устаревшие или ошибочно приписываемые
Но чтобы писать в порты или читать из них придется писать драйвер для kernel mode доступа к портам, иначе Windows не даст с ними работать

читай Зачем нужен драйвер и как написать простейший драйвер
1
DARKPALADIN
6 / 6 / 8
Регистрация: 19.06.2016
Сообщений: 120
Завершенные тесты: 3
21.02.2018, 12:10  [ТС] 3
Цитата Сообщение от Uncle Remus Посмотреть сообщение
Но чтобы писать в порты или читать из них придется писать драйвер для kernel mode доступа к портам, иначе Windows не даст с ними работать
читай Зачем нужен драйвер и как написать простейший драйвер
Вот как раз и интересует какие функции поддерживает тот или иной порт, например нужно помигать диодами на клавиатуре (NUM,CAPS,SCROLL). Для этого нужно в порт передать определенное значение(слово,байт).
И как раз такая инфа должна быть в мануале. А то методом тыка, получается хрень.
0
Uncle Remus
Заблокирован
21.02.2018, 12:31 4
DARKPALADIN,
хочешь мигать светодиодами на клавиатуре? Сам себе Iczelion http://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow "Win32 API. Урок 6b. Светомузыка на клавиатуре", мигай на здоровье используя функцию keybd_event, но чтобы мигать через порты, повторюсь придется писать драйвер
0
DARKPALADIN
6 / 6 / 8
Регистрация: 19.06.2016
Сообщений: 120
Завершенные тесты: 3
21.02.2018, 12:33  [ТС] 5
Цитата Сообщение от Uncle Remus Посмотреть сообщение
хочешь мигать светодиодами на клавиатуре
Не совсем, это был как пример.
На самом деле я не хочу делать это под Windows. Я загружаюсь со своего загрузчика, перехожу в PM-mode и уже там работать с портами под(так сказать) своей недо-системой
0
Uncle Remus
Заблокирован
21.02.2018, 12:39 6
Цитата Сообщение от DARKPALADIN Посмотреть сообщение
На самом деле я не хочу делать это под Windows. Я загружаюсь со своего загрузчика, перехожу в PM-mode и уже там работать с портами под(так сказать) своей недо-системой
DARKPALADIN,
практически все студенты уверены, что на форумах разговаривают с экстрасенсами, а потом обижаются, что их не правильно поняли с первого слова. Вот такие мы хреновые экстрасенсы В любом случае воспользуйся советом с кнопкой "Пуск"
0
DARKPALADIN
6 / 6 / 8
Регистрация: 19.06.2016
Сообщений: 120
Завершенные тесты: 3
21.02.2018, 12:41  [ТС] 7
Цитата Сообщение от Uncle Remus Посмотреть сообщение
в любом случае воспользуйся советом с кнопкой "Пуск"
Посмотрю, попробую, что из этого получится)) А так, спасибо.
0
Constantin Cat
2377 / 1073 / 368
Регистрация: 28.02.2015
Сообщений: 2,378
Завершенные тесты: 1
21.02.2018, 14:10 8
Несвижский В. Программирование аппаратных средств в Windows
Спесивцев А.В. Вегнер В.А. Крутяков А.Ю. Серегин В.В Сидоров В.А. Защита информации в персональных ЭВМ
Кулаков В. Программирование дисковых подсистем
Кулаков В. - Программирование на аппаратном уровне_ специальный справочник.
2
R71MT
4729 / 1445 / 310
Регистрация: 29.07.2014
Сообщений: 2,480
Записей в блоге: 5
21.02.2018, 23:21 9
Цитата Сообщение от DARKPALADIN Посмотреть сообщение
Через какие порты можно получить информацию о подключенных HDD/SSD, а также управлять ими?
Мало знать номера портов, нужно ещё и протоколы устройств изучить. Например, обратится тому-же винту можно только по освобождению его шины (бит(7) BUSY в порту 1F7h), т.е. перед каждой операцией обязательно проверять занятость устроства. Аналогичным образом стоятся отношения и с остальными девайсами, протоколы которых хорошо описаны в книге М.Гука "Аппаратные интерфейсы ПК".

Цитата Сообщение от DARKPALADIN Посмотреть сообщение
И есть ли какой-то мануал по всем портам в ПК (имею в виду нумерацию).
Код
Список стандартных портов ввода-вывода
----------------------------------------
Порты - это логические номера, через которые ЦП обращается к внешним устройствам. Это аналог адресов ОЗУ, только относящиеся к внешним устройствам. Номер порта - это число от 0 до 65535 (FFFFh). Первые 256 адресов (FFh) зарезервированы под архитектуру компьютеров. Остальные порты могут использоваться сторонним оборудованием, хотя многие из них тоже стандартны. 

000-00F   Контроллер DMA 
010-01F   Контроллер DMA (PS/2) 
020-02F   Главный контроллер прерываний 
030-03F   Подчиненный контроллер прерываний 
040-05F   Programmable Interval Timer (PIT) 
060-06F   Контроллер клавиатуры 
070-071   Часы реального времени 
080-083   DMA Page Register 
090-097   Programmable Option Select (PS/2) 
0A0-0AF   PIC #2 
0C0-0CF   DMAC #2 
0E0-0EF  
0F0-0FF   Математический сопроцессор, PCJr Disk Controller 
100-10F   Programmable Option Select (PS/2) 
110-16F  
170-17F   Hard Drive 1 (AT) 
180-1EF  
1F0-1FF   Hard Drive 0 (AT) 
200-20F   Game Adapter 
210-217   Expansion Card Ports 
220-26F  
278-27F   Parallel Port 3 
280-2A1  
2A2-2A3   Сlock 
2B0-2DF   EGA/Video 
2E2-2E3   Data Acquisition Adapter (AT) 
2E8-2EF   Последовательный порт COM4 
2F0-2F7  
2F8-2FF   Последовательный порт COM2 
300-31F   Prototype Adapter, Periscope Hardware Debugger 
320-32F  
330-33F  
340-35F  
360-36F   Network 
370-377   Контроллер дисковода FDD 
378-37F   Параллельный порт LPT2 
380-38F   SDLC Adapter 
390-39F   Cluster Adapter 
3A0-3AF  
3B0-3BF   Monochrome Adapter 
3BC-3BF   Параллельный порт LPT1 
3C0-3CF   EGA/VGA 
3D0-3DF   Color Graphics Adapter 
3E0-3EF   Последовательный порт COM3 
3F0-3F7   Контроллер дисковода FDD 
3F8-3FF   Последовательный порт COM1
3
Uncle Remus
Заблокирован
22.02.2018, 08:38 10
DARKPALADIN,
у R71MT достаточно полная информация, но если интересно, можно глянуть еще и здесь
Электронный учебник http://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow Глава 20. РАБОТА С ПОРТАМИ ВВОДА/ВЫВОДА
1
Jin X
4636 / 1391 / 162
Регистрация: 14.12.2014
Сообщений: 2,687
Записей в блоге: 8
Завершенные тесты: 2
22.02.2018, 11:08 11
DARKPALADIN, рекомендую почитать про ATA (устаревший) и SATA (современный, но совместимый с ATA).
При желании можно глянуть SCSI, AHCI, NVMe...

http://al-tm.ru/stati/stati-po-mat.-obespecheniyu/serial-ata.1
http://www.opennet.ru/docs/RUS/ext2fs_lowlevel/hdd_io.html
http://masters.donntu.org/2002/fvti/yershov/yershov.doc
и т.д. см. у Яны и Гули.

Спецификации ATA-7:
http://www.t13.org/Documents/Uploade...7_Volume_1.pdf
http://www.t13.org/Documents/Uploade...7_Volume_2.pdf
http://www.t13.org/Documents/Uploade...7_Volume_3.pdf

Не по теме:

Цитата Сообщение от Constantin Cat Посмотреть сообщение
Кулаков В. Программирование дисковых подсистем
Есть у меня такая книга :)
Только сейчас это всё несколько устарело с появлением SATA, AHCI, NVMe... хотя SATA, насколько я знаю, имеет обратную совместимость с ATA.

2
Constantin Cat
22.02.2018, 13:05
  #12

Не по теме:

Цитата Сообщение от Jin X Посмотреть сообщение
Только сейчас это всё несколько устарело с появлением
:)
И у меня есть така. А Спесивцев А.В. Вегнер В.А. Крутяков А.Ю. Серегин В.В Сидоров В.А. Защита информации в персональных ЭВМ, есть протоколы работы с НГМД.
:)

Но как говорит классика:

0
Jin X
22.02.2018, 14:41
  #13

Не по теме:

Constantin Cat, видео не работает :(

0
Constantin Cat
22.02.2018, 14:44
  #14

Не по теме:

Цитата Сообщение от Jin X Посмотреть сообщение
видео не работает
Не знаю почему, вот ссылка

0
R71MT
4729 / 1445 / 310
Регистрация: 29.07.2014
Сообщений: 2,480
Записей в блоге: 5
23.02.2018, 07:23 15
Цитата Сообщение от Jin X Посмотреть сообщение
При желании можно глянуть SCSI, AHCI, NVMe...
..конечно-же можно, только к портам накопителя они не имеют никакого отношения (ну разве-что SCSI). Это интерфейсная часть. При работе с портами рулят только IDE и SATA.

IDE - Integrated Drive Electronics буквально означает "встроеный контроллёр". Т.е. "контроллёр диска" переместили прямо в накопитель, а на мамке остался только "контроллёр интерфейса" (позже и сам IDE стали называть интерфейсом). IDE ещё называют ATA - Advanced Technology Attachment - расширенная технология соединения. С появлением последовательного SATA, параллельный АТА стали называть РАТА.

Таким образом, порты накопителя находятся непосредственно на плате харда, в его контроллёре MCU - Micro Controller Unit. Они используются для управления другими компонентами на плате электроники накопителя, и передаче данных через интерфейcы IDE или SATA (SAS). Помимо MCU, в состав электроники входят: VCM - Voice Coil Motor (внешне похож на MCU, только чуть по-меньше - обрабатывает большинство запросов), флэшки (хранит подпрограмму POST), и кэш-памяти данных.

Инструкции IN/OUT выставляются на шину проца, и если MCU харда видит в регистре(DX) свой номер, то принимает из регистра(АL) однобайтную команду (все они 1-байтные), и пошарив в своих карманах перенаправляет её подопечным на своей плате. Например, нет набора AHСI-команд, а есть только набор ATA-команд, которые поддерживаются любыми носителями и по сей-день. В современных накопителях вводятся новые команды (по аналогии с х64), увеличивается кэш, тактовая частота и пр.., но ATA-команды поддерживаются всеми. Это как Core-i7 понимает команды 8086-го проца.
2
23.02.2018, 07:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2018, 07:23

Принципы организации ввода/вывода текстовых и числовых данных
В ходе выполнения лабораторной работы необходимо разработать программу,...

Ввод/вывод числа типа integer, используя функции BIOS и подпрограммы ввода/вывода
помогите пожалуста с написанием программы. Написать программу ввода/вывода...

Подскажите,как составить код для написание программы ввода 16ти значного числа и вывода
1. Подготовьте и отладьте программу для ввода трехзначного числа с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru