Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.09.2010, 00:03   #1
JeyKip
Форумчанин
 
Регистрация: 18.09.2009
Сообщений: 133
Вопрос Прерывание 17h

Всем доброго времени суток...!!! Возникла проблема с выводом символа на принтер через прерывание 17h...любой из 3-х портов, загружаемых в dx, является параллельным...каким образом вывести символы на принтер, подключенный через USB...? Возможно, глупый вопрос, но ассемблер учу только неделю...
JeyKip вне форума Ответить с цитированием
Старый 08.09.2010, 04:29   #2
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

JeyKip
а учебник за эту неделю пробовал хоть раз открыть?
Mikl___ вне форума Ответить с цитированием
Старый 08.09.2010, 08:36   #3
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Напрямую никак. Либо через прослойку типа Dosprinter и прерывание INT 17h, либо через API Windows.
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 09.09.2010, 14:35   #4
JeyKip
Форумчанин
 
Регистрация: 18.09.2009
Сообщений: 133
По умолчанию

еще раз всем добрый день...с выводом на печат разобрался через параллельный порт, но мне нужно еще установить режим двойной ширины(управляющий код 14d, снять - 20d) и плотной печати (установить - 15d, снять - 18d)...не могу понять, как эти коды нужно передать принтеру...ничего не получается, когда передаю через регистры и прерывание 17h...помогите, пожалуйста...!!!
codesg segment
assume cs:codesg, ds:codesg, es:codesg, ss:codesg
org 100h

begin: jmp main

string db 'Vdrug zarabotaet','H'

;строка для прогона страницы
pr_str db 10,13,'H'

main proc near
;инициализация порта с номером 0
mov ah,01h
mov dx,0
int 17h

mov dx,offset pr_str

;3 раза прогнать страницу
mov dl,3


@cic:
;смещение на начало строки
mov bp,0
jmp @progon

@progon:
lea si,[pr_str+bp]
mov ah,00h
mov al,[si]
cmp al,48h ;пока не 'Н' выводить символы
je @ad
int 17h
inc bp ;увеличить смещение по строке на 1
loop @progon

;цикл на прогон страницы 3 раза
@ad: dec dl
cmp dl,0
jne @cic
mov bp,0

;вывод текста на принтер
@vivod: lea si,[string+bp]

mov ah,00h
mov al,[si]
cmp al,48h
je @exit
mov dx,0
int 17h
inc bp
loop @vivod


@exit: mov ah,02h
int 10h


ret
main endp
codesg ends
end begin
JeyKip вне форума Ответить с цитированием
Старый 10.09.2010, 03:43   #5
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

JeyKip
Ищи в инете:
Р.Джордейн Справочник программиста персональных компьютеров типа IBM PC, XT и AT. там сть глава посвященная принтеру и управлением вывода на печать через Esc-последовательности (режим двойной ширины, плотной печати, курсив и т.д.)
Mikl___ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
прерывание в Си Misha_M. Помощь студентам 2 04.02.2010 20:11
Прерывание приложения cherry25 БД в Delphi 6 21.08.2009 08:34
6 прерывание ленусик Фриланс 1 03.06.2008 16:22
6 прерывание ленусик Помощь студентам 5 30.05.2008 16:57