Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 535
от 04.09.2006, 11:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 344, Экспертов: 27
В номере:Вопросов: 2, Ответов: 3


Вопрос № 53701: Доброго времени суток уважаемые эксперты. Как рисовать текст мне более менее понятно, а вот как нарисовать линию или что-то другое в этом роде ?? . Предположим я хочу нарисовать рамку, как мне это сделать? Заранее спасибо. ...
Вопрос № 53710: Доброго времени суток уважаемые эксперты. Как программно на асме проверить и получить инфомацию о аппаратных устройствах. P.S. как зарегестрироваться экспертом, ставлю галку ничего не получается....

Вопрос № 53.701
Доброго времени суток уважаемые эксперты.
Как рисовать текст мне более менее понятно, а вот как нарисовать линию или что-то другое в этом роде ?? . Предположим я хочу нарисовать рамку, как мне это сделать?
Заранее спасибо.
Отправлен: 29.08.2006, 20:49
Вопрос задал: ENS (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Wild_one
Здравствуйте, Nick!
Для рисования графических примитивов существуют специальные функции.(CreatePen, LineTo, Rectangle) Нет смысла описывать каждую из них здесь. Кроме того подобных вопросов возникает много. Могу лишь снова порекомендовать учебники П.В.Румянцева.(www.poiskknig.ru) Там этот вопрос рассматривается. Книга написана для Си++, но реализация на ассемблере практически та же.

Приложение:

Ответ отправил: Wild_one (статус: 3-ий класс)
Ответ отправлен: 29.08.2006, 21:49

Отвечает: Евгений Иванов
Здравствуйте, Nick!

Линия:

;IN->w[KX],w[KY]-первая точка; CX,DX-вторая точка; b[INK]-цвет;
proc Line ;=l1 =======================================
pusha
mov bx,101h
mov ax,cx
sub ax,wptr [bp+KX-dat]
jnc m10l1
mov bh,-1
neg ax
m10l1:
mov cx,ax
mov ax, dx

sub ax,wptr [bp+KY-dat]
jnc m20l1
mov bl,-1
neg ax
m20l1:
mov dx,ax
line_all:
mov wptr [bp+Zip1-dat],bx
cmp cx,dx
jnc m25l1
mov di,cx
sub bh,bh
jmp m30l1

m25l1:
or cx,cx
jz m90l1
mov di,dx
mov dx,cx
sub bl,bl
m30l1:
mov si,dx
mov ax,dx
shr ax,1

m33l1:
add ax,di
jc m35l1
cmp ax,si
jc m37l1
m35l1:
sub ax,si
mov cx,ax
push cx dx
mov cx,wptr [bp+Zip1-dat]
jmp m40l1

m37l1:
mov cx,ax
push cx dx bx
pop cx
m40l1:
movsx dx,cl
movsx cx,ch
add dx,wptr [bp+KY-dat]
add cx,wptr [bp+KX-dat]
mov wptr [bp+KX-dat],cx
mov wptr [bp+KY-dat],dx

;Рисуем точку

pop dx cx
mov ax,cx
dec dx
jnz m33l1

ret
endp

---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Россия, Нижний Новгород
Тел.: +78313145721
Организация: M2Media.ru
Адрес: Нижний Новгород, ул.Малая Ямская, 66
WWW: Eugene Ivanov
ICQ: 214889076
----
Ответ отправлен: 30.08.2006, 00:45


Вопрос № 53.710
Доброго времени суток уважаемые эксперты.
Как программно на асме проверить и получить инфомацию о аппаратных устройствах.
P.S.
как зарегестрироваться экспертом, ставлю галку ничего не получается.
Отправлен: 29.08.2006, 22:22
Вопрос задал: ENS (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: EPDSota
Здравствуйте, Nick!

1 вариант - для ДОСа:
Если устройство PCI - то просканировать шину PCI на наличие на ней подключенных устройств и по коду производителя и коду устройства опознать его... Если устройство подключено к LPT или СОМ - то тут придеться делать проверку на каждое известное устройство (проверять - а не оно ли это подключено).
2 вариант - для WIN:
Прочитать реестр - HKEY_LOCAL_MACHINESYSTEMControlSet001Enum - список всего железа...
---------
Открыть глаза навстречу солнцу
Ответ отправил: EPDSota (статус: Специалист)
Ответ отправлен: 30.08.2006, 09:07


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.35 от 27.07.2006
Яндекс Rambler's Top100

В избранное