Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
8 / 8 / 0
Регистрация: 07.07.2010
Сообщений: 154

Вывести количество параллельных портов

22.09.2011, 12:34. Показов 2450. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, нужно вывести кол. параллельных портов и их базовые адреса.

Есть код:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
MAIN PROC
 
  MOV AX,@DATA
  MOV DS,AX
 
  INT 11H
 
  MOV AH,09H
  LEA DX,AX[14]
  INT 21H
 
;Завершение работы
MOV AX,4C00H
INT 21H 
MAIN ENDP
END MAIN
Но не знаю, работает ли он. Так как нет возможности запустить на win x64. Скиньте пожалуйста скрин результата.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.09.2011, 12:34
Ответы с готовыми решениями:

Определение количества параллельных портов
Необходимо определить количество параллельных портов. .286 .model tiny .code org 100h begin: int 11h number db 0 and...

Вывести n параллельных горизонтальных линий разными цветами
Вывести n параллельных горизонтальных линий разными цветами. Составить и использовать функцию для рисования одной горизонтальной линии.

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

5
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
22.09.2011, 13:16
landan, для начала -- прерывание 11h в регистре АХ в 14 – 15 битах выведет количество установленных параллельных адаптеров, поэтому текст для СОМ-программы будет такой
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
.286
.model tiny
.code
org 100h
begin: int 11h
and ax,0000000000000011b; оставляю в АХ только количество LPТ-портов
or al,30h; превращаю двоичное число в ASCII-символ
mov x,al
mov ax,3;
int 10h;очищаем экран
mov ah,9
mov dx,offset msg
int 21h;выводим сообщение
mov ah,0
int 16h;ждем пока не нажмут на любую клавишу
retn;выходим из программы
msg db 'в компьютере ',x,' параллельных портов$'
end begin
реальное количество портов можно посмотреть в "свойствах компьютера" скорее всего их там и нет
1
8 / 8 / 0
Регистрация: 07.07.2010
Сообщений: 154
22.09.2011, 18:33  [ТС]
а как быть с выводом адресов портов?
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
23.09.2011, 04:40
landan, адресация LPT-портов стандартная. Так как прерывание 11h отводит под количество портов 2 бита, значит их может быть не более 2² - 1 = 3. Любой LPT порт занимает три адреса, первый из них называется базовым. Так, для LPT1 диапазон занимаемых им адресов: 378h-37Ah. Базовый адрес служит для посылки/чтения байта на/из линии d0-d7 (пины 2-9 разъёма DB-25)
порт регистр данных регистр состояния регистр управления
LPT1 378h379h37Ah
LPT2 278h279h27Ah
LPT3 3BCh3BDh3BEh
То есть когда определился с количеством портов -- берешь адресацию из таблички. Программу дописывай сам!
1
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
23.09.2011, 11:51
Mikl___, а вот это не сказано. Читаем Ральфа( http://www.cs.cmu.edu/afs/cs/u... files.html )
MEM 0040h:0008h - BASE I/O ADDRESS OF FIRST PARALLEL I/O PORT
...
MEM 0040h:000Eh - BASE I/O ADDRESS OF FOURTH PARALLEL I/O PORT
Оттуда же:
INT 17 - Enhanced Parallel Port (EPP) BIOS - INSTALLATION CHECK
AX = 0200h
BX = 5050h ('PP')
CH = 45h ('E')
DX = printer port number (00h-02h)
Return: AH = status
00h if installed and port is an enhanced parallel port
CX:AL = installed BIOS type
5050h:45h ('PPE') if EPP v3.0+ BIOS installed
4550h:50h ('EPP') if EPP v1.0 BIOS installed
---EPP 1.0, 3.0---
DX:BX -> far entry point to Advanced BIOS (see #00632)
---EPP Revision 7---
DX = EPP I/O base address
ES:BX -> far entry point to EPP BIOS (see #00632,#00633)
03h if installed but specified port not supported
CF set
Program: The Enhanced Parallel Port BIOS provides support for parallel
port peripherals using the enhanced modes of the IEEE 1284.
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
23.09.2011, 14:12
внимательно посмотрел на программу, должно быть
Assembler
1
2
3
4
begin: int 11h 
shr ah,6; сдвигаю на 6 разрядов вправо и оставляю в АH только количество LPТ-портов
or ah,30h; превращаю двоичное число в ASCII-символ
mov x,ah
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.09.2011, 14:12
Помогаю со студенческими работами здесь

Как узнать количество COM-портов?
Надо узнать количество СОМ портов и их состав. Напимер может быть количество 4, а по составу: сом1, сом2, сом5, сом6

Надо узнать количество СОМ-портов...
Надо узнать количество СОМ портов и их состав на VB.NET Напимер может быть количество 4, а по составу: сом1, сом2, сом5, сом6

Количество портов для Архитектуры X64
Доброго времени суток Уважаемые. Возник такой вопрос про количество пространство портов для архитектуры X64 и где можно почитать именно...

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

Оптимизация скрипта, определяющего количество портов коммутатора
Добрый день. На Shell скриптописанием начал заниматься совсем недавно. Прошу помощи в оптимизации кода и помощи в методе решения. Сделал...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru