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

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 271
от 19.05.2002, 14:20

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 200
Отправлено ответов: 509
Активность: 254.5 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе]


 Список экспертов, ответы которых опубликованы в данном выпуске

Артём Шегеда
Статус: Профессиональный
Общий рейтинг: 139.59
URL: Пристанище неодинокого программиста
[Подробней >>]
Blackeye
Статус: Опытный
Общий рейтинг: 130.98
URL: Delphi, my programms...
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 165.9
[Подробней >>]
 
Broken Sword
Статус: Профессиональный
Общий рейтинг: 166.76
[Подробней >>]
Dron
Статус: Профессиональный
Общий рейтинг: 157.81
URL: Операционная система с нуля!
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 150.98
[Подробней >>]
 
Gibbel
Статус: Начальный
Общий рейтинг: 109.28
[Подробней >>]
Beeblebrox
Статус: Опытный
Общий рейтинг: 136.16
URL: Beeblebrox / TMA HomePage
[Подробней >>]
VicSimon
Статус: Опытный
Общий рейтинг: 120.9
[Подробней >>]
 
bin
Статус: Начальный
Общий рейтинг: 111.47
[Подробней >>]
vitya
Статус: Опытный
Общий рейтинг: 124.84
[Подробней >>]
kostik
Статус: Опытный
Общий рейтинг: 131.41
Телефон: (4212)393-276
[Подробней >>]
 
UFO
Статус: Опытный
Общий рейтинг: 131.23
[Подробней >>]
Евгений
Статус: Опытный
Общий рейтинг: 123.9
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 171. Ув.эксперты. Кто может подскажите.Надо выключить монитор из проги.Знаю, что посылается месседж, стан... (ответов: 3)
Вопрос № 172. Здравствуйет эксперты! Объясните пожалуйста, что значит у функции 714eh. Формулировки: cl=атрибуты, ... (ответов: 2)
Вопрос № 173. Здравстуйте эксперты! Возник еще один вопрос! Допустим у меня в конце программы определена метка(буф... (ответов: 7)
Вопрос № 174. Добрый день всем! Спасибо за помощь всем, кто откликнулся на мои первые проблемы и вопросы! К вашему... (ответов: 7)
Вопрос № 175. Здрасте! Проблема с установкой SoftIce 3.25. Ставлю под XP. Говорю чтобы грузился до Виндов, перегру... (ответов: 5)
Вопрос № 176. Уважаемые эксперты, подскажите как можно обратиться к BOISу видеокарты (мне необходимо считать от ту... (ответов: 2)

Вопросов: 6, ответов: 26


 Вопрос № 171

Ув.эксперты. Кто может подскажите.Надо выключить монитор
из проги.Знаю, что посылается месседж, стандартные параметры
етой ф-ции просто переводят в текст.режим, у меня Милениум.
Под 2000 только включается.
Так вот не подскажете ли ,где вообще можно посмотреть такую
информацию, в частности-системные сообщения. Спасибо.



Вопрос отправлен: 15.05.2002, 00:02
Отправитель: Arch

[Следующий вопрос >>] [Список вопросов]

Отвечает Артём Шегеда

Доброе время суток, Arch!
На Torry.Net нашёл такой приём:
{ turn off your monitor }
SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0);
{ turn on your monitor }
SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, - 1);
По-моему, там плохого не посоветуют...

Ответ отправлен: 15.05.2002, 10:13
Отправитель: Артём Шегеда


Отвечает Blackeye

Добрый день, Arch!
SC_MONITORPOWEROFF - если не ошибаюсь посылаеться, помотреть это все можно в MSDN доступном на сайте www.msdn.microsoft.com

Ответ отправлен: 15.05.2002, 19:06
Отправитель: Blackeye


Отвечает masquer

Добрый день, Arch!
В MSDN, где ж еще. Я правда не совсем понял, как ты собираешься выключать монитор, куда посылается месадж?

Ответ отправлен: 15.05.2002, 08:36
Отправитель: masquer


 Вопрос № 172

Здравствуйет эксперты!
Объясните пожалуйста, что значит у функции 714eh. Формулировки:
cl=атрибуты, которые файл может иметь.
ch=атрибуты, которые файл должен иметь.
Что это значит и как это применить для поиска файлов?
С уважением, ILYA D.



Вопрос отправлен: 15.05.2002, 00:47
Отправитель: ILYA D.

[Следующий вопрос >>] [Список вопросов]

Отвечает Артём Шегеда

Добрый день, ILYA D.!
По-моему, это просто...
CH содержит атрибуты файлов, которые искомые файлы должны иметь.
CL содержит атрибуты файлов, которые искомые файлы могут иметь.
То есть, если тебе нужны только папки (все), то ты задаёшь CH = _A_SUBDIR, а в CL = (_A_ARCH or _A_HIDDEN or _A_SYSTEM or _A_RDONLY). Если только нескрытые файлы, то CH = _A_NORMAL, а в CL = (_A_RDONLY or _A_SYSTEM or _A_ARCH).

Ответ отправлен: 15.05.2002, 10:10
Отправитель: Артём Шегеда


Отвечает Broken Sword

Здравствуйте, ILYA D.!
Дело в том, что набор битиков в ch рассматривается как цепочка
[bit1] and [bit2] and [bit3] and ....
т.е. если хотя б по одному условию несовпадение - то файла не найдется.
А в cl - там то же самое, только уже логическое or...


Ответ отправлен: 15.05.2002, 19:50
Отправитель: Broken Sword


 Вопрос № 173

Здравстуйте эксперты!
Возник еще один вопрос! Допустим у меня в конце программы определена метка(буффер в конце программы) и в этот буфер(после выполнения определенных действий) я заношу данные. Я знаю структуру этих данных и знаю, что по смещению +2сh от начальной метки у меня находятся нужные мне данные. Как поставить метку, на эти данные, чтоб потом легко получать ее смещение. Самое главное, хочется чтоб размер программы оставался прежним!!!
С уважением, ILYA D.



Вопрос отправлен: 15.05.2002, 01:05
Отправитель: ILYA D.

[Следующий вопрос >>] [Список вопросов]

Отвечает Dron

Доброе время суток, ILYA D.!
главное чтобы это было в конце программы...
в tasm можешь юзать следующую комбинацию:
можно так:
label: db 24h dup (?)
label2:

или что-то типа того:
label:
org label + 24h
label2:


Ответ отправлен: 15.05.2002, 10:56
Отправитель: Dron


Отвечает Ayl

Доброе время суток, ILYA D.!
Мне кажется, что лучше всего описать запись, в которой перечислить поля твоей структуры данных. В частности, там будет и ссылка на смещение 2ch. А потом просто используешь выражение с точкой, например:
mov al, [bx.my_data]
В bx предварительно должен быть занесен адрес начала структуры. Такая конструкция удобна тем, что при изменении структуры тебе не нужно лазить по всей программе и менять значения смещений - это за тебя компилятор сделает.
Второй вариант - описать константу и далее ее юзать:
cMY_DATA_OFFSET EQU 2ch
Третий вариант - заполняешь свою структуру в исходном тексте какими-либо данными, используешь нормальное обращение к переменным, компилируешь, а затем из своего com-файла отрезаешь эти данные. С какого места отрезать можно посмотреть в листинге.


Ответ отправлен: 15.05.2002, 10:58
Отправитель: Ayl


Отвечает Gibbel

Приветствую Вас, ILYA D.!
metka2: equ $+2Ch
metka1: db ...


Ответ отправлен: 15.05.2002, 11:11
Отправитель: Gibbel


Отвечает Beeblebrox

Доброе время суток, ILYA D.!
; here is your program
; .........
; mov ah,4Ch
; int 21h
; here is your data area
buffer db 2Ch dup(?)
data_needed db ?
last_part_of_buffer db buffer_len-2Dh dup(?)

Ответ отправлен: 15.05.2002, 11:31
Отправитель: Beeblebrox


Отвечает VicSimon

Здравствуйте, ILYA D.!
Например так:
buffer db 2Ch dup (0)
label db buffer_size-2Ch dup (0)
Вместо buffer_size ставится требуемый размер буфера


Ответ отправлен: 15.05.2002, 08:58
Отправитель: VicSimon


Отвечает bin

Дмюоьх делщ, ILYA D.!
Ля пчи аъT номъпм:
START:
.
mov ax, ASD ; яичцьачеп лч памх юярео + ъкешелуе
.
ret
BUF DB 40 DUP (?)
ASD = BUF + 2ch
END START
P.S. ък ноукео а ноуймтелуу

Приложение:

Ответ отправлен: 16.05.2002, 00:24
Отправитель: bin


Отвечает masquer

Добрый день, ILYA D.!
Ну поставь еще одну метку, какие вопросы? Размер от этого не увеличится.

Ответ отправлен: 15.05.2002, 08:37
Отправитель: masquer


 Вопрос № 174

Добрый день всем!
Спасибо за помощь всем, кто откликнулся на мои первые проблемы и вопросы! К вашему сожалению (или к радости) я от вас так просто не отстану, поскольку вопросов у меня будет еще немало, а прерывать изучение ассемблера я не собираюсь.
У меня возникла проблема при выполнении файла, выводящего прямым отображением в видеобуфер символ. На самом деле - все очень просто, ничего не выводится, кроме мигающего курсора в верхнем левом углу. Правда, остальная часть программы работает нормально, и при нажатии клавиши все нормально завершается. Пробовал менять атрибуты и символ, смещение в di, но безрезультатно. В чем может быть "собака"? Заранее всем благодарен.
Ярослав.


Приложение:


Вопрос отправлен: 15.05.2002, 07:34
Отправитель: Ярослав

[Следующий вопрос >>] [Список вопросов]

Отвечает Артём Шегеда

Доброе время суток, Ярослав!
Странно, но у меня всё работает. Есть предположение (маловероятное, но имеющее право на жизнь), что у тебя текстовый режим монохромный. Тогда надо обращаться не в сегмент B800, а в B000.
Но в таком случае ты - обладатель антиквариата.

Ответ отправлен: 15.05.2002, 10:45
Отправитель: Артём Шегеда


Отвечает Dron

Приветствую Вас, Ярослав!
31h - это я полагаю код символа? или цвет? если цвет, то все правильно, но тогда мне не понятно как отобразиться символ с кодом 1... и как это будет выглядеть темно синем на циане... хотя вроде ничего... :)
если же все наоборот - то код символа должен быть в al, а цвет в dl. и не понятно что за увет такой - 1. темно синий на черном... хорошее сочетание. :)


Ответ отправлен: 15.05.2002, 11:00
Отправитель: Dron


Отвечает Ayl

Добрый день, Ярослав!
Странно, но у меня работает. Вывелась такая веселая рожица - белая на синем фоне в верхнем левом углу экрана.
Не знаю, в чем может быть причина. Может, у тебя режим какой неправильный. Попробуй в начало программы добавить строчки:
mov ax, 3
int 10h
Если не поможет - спроси еще раз, только опиши полностью конфигурацию, на которой это выполняется.


Ответ отправлен: 15.05.2002, 11:09
Отправитель: Ayl


Отвечает Broken Sword

Доброе время суток, Ярослав!
собака в том :), что ты пытаешься смотреть это дело в Win (я подозреваю, что не в 98 даже), а там какая то хрень с shadow видео памяти, и даже в TD под ALT+F5 нихрена не увидишь... Но вот в AVPUtil (никому не известный отладчик) все отлично видно
p.s. атрибут должен валяться в ah, а у тебя помойму наоборот... (вспомни, что при записи слова в память сначала ложиться al)

Ответ отправлен: 15.05.2002, 19:49
Отправитель: Broken Sword


Отвечает Blackeye

Здравствуйте, Ярослав!
Проблема то из ничего созданная :) Запусти свою программу из-под чистого ДОСа или из VolcovCommander,NC,DosNavigator и т.д Все будет на экране. А если хочешь чтобы в Виндовс отображались символы то вначале установи первую страницу в видеорежиме!
mov ax,0500h
int 10h
ret

Ответ отправлен: 15.05.2002, 19:06
Отправитель: Blackeye


Отвечает bin

Дмюоме аоекз ъяпми, Зомъйча!
Я келз аъT а нмоздие - дмамйщлчз омтуфч лч ъулек рмле :)
Я пеюз ъимоее аъежм жйви а чдоеъе пеияшех аудемъпочлуфь. Пь аедщ нуэеэщ лч ляйеаяв, ч кмтеп я пеюз неоачз. Кмтлм уйу номаеоупщ яйу яъпчлмаупщ лятляв.
INT 10h, 0fh - нмйябупщ пеи. аедем улря
амцаочшчеп:
AL - пеи. оетук (ъимоее аъежм B800h, лм кмтеп у B000h)
AH - буъйм пеиъпмаьс имймлми
BH - пеи. аудемъпочлуфч
п.е. а ъйябче ъ аудемоетукмк 7 у неоамх аудемъпочлуфех пеюе лчдм нуъчпщ а B000:0FA0.

Ответ отправлен: 16.05.2002, 00:24
Отправитель: bin


Отвечает vitya

Приветствую Вас, Ярослав!
должен отметить что вы выводите нечитаемый символ.попробуйте
изменить 31 на что-нибудь более больше например 65, а единичку например 7eh.

Ответ отправлен: 15.05.2002, 08:42
Отправитель: vitya


 Вопрос № 175

Здрасте!
Проблема с установкой SoftIce 3.25.
Ставлю под XP.
Говорю чтобы грузился до Виндов,
перегружаю, и ничего.
Он ведт должен откликаться на Ctrl+D?
Или в NT что-то другое.
З.Ы. Кстати, а он под XP вообще пашет?



Вопрос отправлен: 15.05.2002, 14:15
Отправитель: Eugene

[Следующий вопрос >>] [Список вопросов]

Отвечает kostik

Приветствую Вас, Eugene!
Этот отладчик запускается из autoexec.bat в старых ОС.
Так как в ВИНХР отказались от ДОС. Там же нет такого, что можно загрузиться в режиме эмуляции. не получится у Вас грузить его до запуска Виндовс

Ответ отправлен: 15.05.2002, 14:39
Отправитель: kostik


Отвечает UFO

Доброе время суток, Eugene!
Это уже становится интересным, как это в ХР грузиться до виндов?
Ну да лана, бог с ним, - раз ты умеешь значит умеешь :) - этого не отнять :)
Ну, а простые смертные, такие как я, ставят себе версию 4.05 для NT,а потом меняют 2 файла ntice.sys и sivwid.sys, криво с глюками, но, бывает и работает.

Ответ отправлен: 15.05.2002, 14:45
Отправитель: UFO


Отвечает masquer

Здравствуйте, Eugene!
Под 2000 я у себя вручную его запускаю, по мере необходимости. И у меня стоит DriverStudio 2.6 - там айс 4.26. Попробуй более новую версию достать. Убедись что это версия для NT/2k/XP, они отличаються от 9х.

Ответ отправлен: 15.05.2002, 17:28
Отправитель: masquer


Отвечает Broken Sword

Добрый день, Eugene!
Про все SoftIce X.XX под XP забудь, т.к. под XP идет тока Soft Ice из комплекта Numega Driver Studio 2.5 (я имею ввиду, что Numega закрыла SoftIce, как отдельный продукт и влепило его в Driver Studio, а все старые (отдельные) софтайсы под XP не катят)


Ответ отправлен: 15.05.2002, 19:49
Отправитель: Broken Sword


Отвечает Евгений

Доброе время суток, Eugene!
Существует специальная версия Softice for XP, входит в Driver Studio 2.6 от Numega

Ответ отправлен: 15.05.2002, 23:51
Отправитель: Евгений


 Вопрос № 176

Уважаемые эксперты,
подскажите как можно обратиться к BOISу видеокарты (мне необходимо считать от туда Название видеокарты).
Если Вас не затруднит, то пожалуйста напишите пример такой программы считывающей Название видеокарты (модель).
(желательно на языке Assembler)



Вопрос отправлен: 15.05.2002, 14:14
Отправитель: Igvek

[Следующий вопрос >>] [Список вопросов]

Отвечает Beeblebrox

Приветствую Вас, Igvek!
Запусти досовский debug.exe и посмотри сегмент C000

Ответ отправлен: 15.05.2002, 15:44
Отправитель: Beeblebrox


Отвечает --- Нет данных ---

Приветствую Вас, Igvek!
int 10h AH=4fh AL=00 - получить общую SVGA-информацию.
Inp.:
AX = 4F00h
ES:DI -> buffer for SuperVGA information
Return: AL = 4Fh if function supported
AH = status
00h successful
ES:DI buffer filled
01h failed
-------------------------------
Format of SuperVGA information:
Offset Size Description
00h 4 BYTEs (ret) signature ("VESA")
(call) VESA 2.0 request signature ("VBE2"), required to receive
version 2.0 info
04h WORD VESA version number (one-digit minor version -- 0102h = v1.2)
06h DWORD pointer to OEM name
"761295520" for ATI
0Ah DWORD capabilities flags (see #00078)
0Eh DWORD pointer to list of supported VESA and OEM video modes
(list of words terminated with FFFFh)
12h WORD total amount of video memory in 64K blocks
---VBE v1.x ---
14h 236 BYTEs reserved
---VBE v2.0 ---
14h WORD OEM software version (BCD, high byte = major, low byte = minor)
16h DWORD pointer to vendor name
1Ah DWORD pointer to product name
1Eh DWORD pointer to product revision string


Ответ отправлен: 15.05.2002, 19:13
Отправитель: --- Нет данных ---



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


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


Получить ответов:


 Выбор рассылки

Программисту
Assembler (58)
C / C++ (33)
Perl (11)
Delphi (20)
Pascal (32)
Basic / VBA (16)
Java / JavaScript (12)
PHP (8)
MySQL / MSSQL (6)
Пользователю
Windows 95/98/Me (56)
Windows NT/2000/XP (40)
"Железо" (45)
Поиск информации (19)
Администратору
Windows NT/2000/XP (16)
Linux / Unix (10)
Юристу
Гражданское право (17)
Уголовное право (4)
Семейное право (8)
Трудовое право (9)
КоАП (6)

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




be number one SUPERTOP Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное