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

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

22.09.2011, 12:34. Показов 2464. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru