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

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


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

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

Выпуск № 368
от 16.09.2002, 01:50

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


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

Kiss
Статус: Начальный
Общий рейтинг: 141.93
[Подробней >>]
SonicX
Статус: Доверительный
Общий рейтинг: 123.29
[Подробней >>]
Sinner
Статус: Доверительный
Общий рейтинг: 106.35
[Подробней >>]
 
Dron
Статус: Профессиональный
Общий рейтинг: 120.39
URL: Операционная система с нуля!
[Подробней >>]
kvINT
Статус: Профессиональный
Общий рейтинг: 111.53
Телефон: (34316)2-31-45
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 157.37
[Подробней >>]
 
ASMодей
Статус: Опытный
Общий рейтинг: 123.88
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 134.83
URL: моя рассылка по Protected Mode
[Подробней >>]
DiGiT[old]
Статус: Начальный
Общий рейтинг: 115.55
[Подробней >>]
 
Sensey
Статус: Профессиональный
Общий рейтинг: 128.46
URL: Страничка рассылки по Паскаля...
Телефон: +38 (0572) 41-76-04 дом.
[Подробней >>]
Portnov
Статус: Профессиональный
Общий рейтинг: 122.04
URL: Мой сайтик...
[Подробней >>]
Артём Шегеда
Статус: Профессиональный
Общий рейтинг: 118.2
URL: Пристанище неодинокого программиста
[Подробней >>]
 
Ayl
Статус: Профессиональный
Общий рейтинг: 119.57
[Подробней >>]


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

Вопрос № 1220. Здравствуйте!!! Как отличить версию WindowsNT комерческую от отладочной. Можно ли это сделать имея т... (ответов: 1)
Вопрос № 1221. Уважаемые эксперты! Помогите пожалуйста в решении проблемы: У нас на работе 8 "386" компов... (ответов: 4)
Вопрос № 1224. Доброе время суток, уважаемые эксперты! Я снова по поводу вопроса № 1221. Спасибо всем, кто прислал ... (ответов: 3)
Вопрос № 1225. Ув. эксперты! У кого есть инфа про команду LCS (загрузить регистр CS), 100% помню де то читал нечто ... (ответов: 5)
Вопрос № 1226. Люди, читаю сектор дискеты, однако чтение, по-моему, не происходит (нет знакомого треска). Boot-сект... (ответов: 6)
Вопрос № 1227. обшение c usb средствами assembler'a! ясна что такое возможно , вопрос не в этом. возможно ли такое ... (ответов: 2)
Вопрос № 1228. Здравствуйте ув. Эксперты! Помогите, пожалуйста, разобраться с указателями на Фасме под мастдай. Доп... (ответов: 3)
Вопрос № 1229. Доброе время суток, уважаемые эксперты! В приложении приведены inline-подстановки на языке Pascal. В... (ответов: 5)

Вопросов: 8, ответов: 29


 Вопрос № 1220

Здравствуйте!!!
Как отличить версию WindowsNT комерческую от отладочной.
Можно ли это сделать имея только дистрибутив (не устанавливая систему). И вообще пишется ли на обложке диска с WinNT, какая там находится версия?
Спасибо



Вопрос отправлен: 11.09.2002, 02:19
Отправитель: Сергей (cppdummy@narod.ru)

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

Отвечает Kiss

Доброе время суток, Сергей!
Как правило на обложке пишут версию, но если нет то вызови свойства 'Моего компьютера' или поставь прожку определения конфигураций 'компутера'!
С уважением Kiss!

Ответ отправлен: 11.09.2002, 08:03
Отправитель: Kiss


 Вопрос № 1221

Уважаемые эксперты! Помогите пожалуйста в решении проблемы: У нас на работе 8 "386" компов; дос из под 98 окошек... На каждом из этих компов переодически пропадают файлы, причем не полностью, а частично. Размер файла показываемый досом, нортоном или волковым несоответствует его реальному размеру. Причем, если открыть файл на редактирование ( в том же нортоне или волкове), ввести один байт, стереть его и сохранить "изменения", то мы снова видим реальный размер данного файла и, соответственно, имеем доступ к нему.
Прошу прощения за запутанное объяснение! Это с непревычки!:)
Буду признателен за любые советы и здравые предположения!:)



Вопрос отправлен: 11.09.2002, 09:26
Отправитель: Vitally

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

Отвечает SonicX

Приветствую Вас, Vitally!
Очень вероятно что у вас на компах плохо написанный stealth-вирь.


Ответ отправлен: 11.09.2002, 20:07
Отправитель: SonicX


Отвечает Sinner

Добрый день, Vitally!
Не знаю, как в твоем случае, но у меня когда-то такая проблема решилась отключением smartdrv.
Стало медленнее, но надежнее...

Ответ отправлен: 11.09.2002, 11:23
Отправитель: Sinner


Отвечает Dron

Приветствую Вас, Vitally!
Хм.. интересно...
Темные силы эллектричества наверное... :)
Могу предположить что это вирус.
Или проверить на наличие посторонних резидентов... всякое может быть.

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


Отвечает Kiss

Добрый день, Vitally!
Возможно это просто вирусняк, хотя может быть, что развелся народ котоый издевается над людьми трудящимися. Говорю так, потому что знаком с подобными ситуациями. Также может быть что у Вас очень большой 'винт', и старая версия Dos, подробно о такой проблеме я находил описание в Левине!
С уважением Kiss

Ответ отправлен: 11.09.2002, 11:51
Отправитель: Kiss


 Вопрос № 1224

Доброе время суток, уважаемые эксперты!
Я снова по поводу вопроса № 1221.
Спасибо всем, кто прислал ответы.
Самый большой винчестер, который у нас стоит - 80 метров. Версия Дос, как я уже говорил, взята из под 98 Виндов(SE). Компьютеры обслуживают швейные машины, так что никаких посторонних программ, резидентов и пр. там нет. СмартДрайв не используем....
Самое интересное, что такая проблема происходит не только с файлами, которые УЖЕ на винте, но и теми которые ТОЛЬКО ЧТО переписаны. Беру дискету на которой находится какой-то (нормальный) файл, переношу его командой copy и вижу вместо 31000 байт - 28000 байт... Запускаю Нортон, нажимаю F4 записываю пробел, удаляю пробел, сохраняю "изменения" - 31000 байт!



Вопрос отправлен: 11.09.2002, 13:11
Отправитель: Vitally (Vitally@inbox.ru)

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

Отвечает Dron

Приветствую Вас, Vitally!
Хм.. вероятно всетаки какие-то программы...
давай локализовать проблему...
во первых возьми DOS 6.22 загрузись с дискетки и проверь нормально ли обрабатываются файлы... возможно Win98 не рассчитан на трешки и допускает какой-то глюк?
или всетаки для выявления...
загружаясь нажми F8
все отключи (config.sys, autoexec.bat)
и попробуй проконтролировать размеры файлов. попереписывать, посмотреть. если не поможет - виновата винда или сделай MEM /D и погляди или мне пошли. если поможет надо искать дальше... смотри что грузится.

Ответ отправлен: 11.09.2002, 13:39
Отправитель: Dron


Отвечает SonicX

Здравствуйте, Vitally!
Проверь компы свежим AVP что нибудь да найдешь.


Ответ отправлен: 11.09.2002, 20:07
Отправитель: SonicX


Отвечает Kiss

Здравствуйте, Vitally это снова Kiss!
Как у Вас на работе с антивирусами? Возможно на дискете и занесли вирус который над вами издевается!
С уважением Kiss!

Ответ отправлен: 11.09.2002, 14:29
Отправитель: Kiss


 Вопрос № 1225

Ув. эксперты! У кого есть инфа про команду LCS (загрузить регистр CS), 100% помню де то читал нечто типа такого: "... если мы внимательно посмотрим на таблицу опкодов, то заметим, что в таблице опкодов интела в череде опкодов LDS, LES, LSS и LFS есть пусатая ячейка. Как не трудно догадаться - это недокументированная команда LCS.".
У кого есть этот текст - плз вышлите мне на мыло.
p.s. советую ВСЕМ посмотреть на ЭТО:
http://www.256b.com/processDownload.php?demoId=225



Вопрос отправлен: 11.09.2002, 14:06
Отправитель: Broken Sword (brokensword@mail.ru)

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

Отвечает kvINT

Доброе время суток, Broken Sword!
Ни хрена себе! И всего 256 байт!

Ответ отправлен: 11.09.2002, 19:48
Отправитель: kvINT


Отвечает SonicX

Здравствуйте, Broken Sword!
LCS? Бред и чтоже должно быть в этой "пусатой ячейке"?


Ответ отправлен: 11.09.2002, 20:07
Отправитель: SonicX


Отвечает masquer

Добрый день, Broken Sword!
Я такую инфу нашел, касается 486 проца:
MOV CS, ... is not allowed, since this is already subsumed by JMPs.
LCS ... is not allowed either for the same reason.
Судя по всему эта инструкция работала только для троек и ниже, хотя...
Демки вообще прикольные штуки, красивая трубка :)

Ответ отправлен: 11.09.2002, 14:47
Отправитель: masquer


Отвечает ASMодей

Доброе время суток, Broken Sword!
Примерно с полчаса изучал таблицу опкодов и не нашел никакой
последовательности в этих кодах:
LDS = C5
LES = C4
LSS = 0F B2
LFS = 0F B4
LGS = 0F B5
Единственный пропущенный код здесь - это 0F B3, но это опкод
команды BTR.


Ответ отправлен: 12.09.2002, 11:36
Отправитель: ASMодей


Отвечает ASMодей

Доброе время суток, Broken Sword!
Примерно с полчаса изучал таблицу опкодов и не нашел никакой
последовательности в этих кодах:
LDS = C5
LES = C4
LSS = 0F B2
LFS = 0F B4
LGS = 0F B5
Единственный пропущенный код здесь - это 0F B3, но это опкод
команды BTR.


Ответ отправлен: 12.09.2002, 11:36
Отправитель: ASMодей


 Вопрос № 1226

Люди, читаю сектор дискеты, однако чтение, по-моему, не происходит (нет знакомого треска). Boot-сектор работает, читаю так:
CSEG segment
.186
org 7c00h
begin:
sti
mov ah,0
mov dl,0
int 13h
mov bx,1000h
mov es,bx
mov bx,0
mov dl,0
mov dh,0
mov cx,2h
mov al,2h
int 13h
push 1000h
push 0h
retf
CSEG ends
end begin
Компилю masm'ом, пишу в 0:0:1 дискеты, затем в 0:0:2 сектор 2, но до него управление гне доходит почему???



Вопрос отправлен: 11.09.2002, 15:25
Отправитель: Шурик

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

Отвечает Broken Sword

Привет Шурик!
А номер функции в ah слабо положить перед вторым вызовом int 13h, ато ah у тебя останется равен нулю после первого (если все ОК).


Ответ отправлен: 11.09.2002, 18:41
Отправитель: Broken Sword


Отвечает SonicX

Здравствуйте, Шурик!
FDD не всегда готов. Прочти сектор если AH<>0 то прочти еще раза три, если нет то нет.

Ответ отправлен: 11.09.2002, 20:08
Отправитель: SonicX


Отвечает Kiss

Добрый день, Шурик!
У меня есть ответ на твой вопрос! Ты используешь int 13h, хотя стоило бы использовать int 25h и вся проблема.
Могу предложить прогу по проще и короче. Обращайся!
С уважением Kiss.


Ответ отправлен: 11.09.2002, 16:21
Отправитель: Kiss


Отвечает DiGiT[old]

Добрый день, Шурик!
А там конец сектора должен заканчиваться 55AA или AA55 посмотри на своем жестком.

Ответ отправлен: 12.09.2002, 05:02
Отправитель: DiGiT[old]


Отвечает ASMодей

Доброе время суток, Шурик!
А под отладчиком посмотреть не смог?
У тебя же не задается номер функции в AH.


Ответ отправлен: 12.09.2002, 12:34
Отправитель: ASMодей


Отвечает Sinner

Доброе время суток, Шурик!
CSEG segment
.186
org 7c00h
begin:
sti
mov ah,0
mov dl,0
int 13h
mov bx,1000h
mov es,bx
mov bx,100h
mov dl,0
mov dh,0
mov cx,2h
mov al,2h
int 13h
mov word ptr ds:[0],100h
mov word ptr ds:[2],5000h
jmp dword ptr ds:[0]
CSEG ends
end begin

Ответ отправлен: 13.09.2002, 02:46
Отправитель: Sinner


 Вопрос № 1227

обшение c usb средствами assembler'a!
ясна что такое возможно , вопрос не в этом. возможно ли такое из под дос, есть ли примеры,
может кто знает.
АПИ винды или линуксы не считается, мне нужно всё своими руками.
возможно ли написание программки из под дос для работы с usb.
вообще, откуда начать? только не со спецификации usb, она уже есть. посоветуйте что -нить дельное.
Заранее спасибо.



Вопрос отправлен: 11.09.2002, 17:38
Отправитель: shingrus (shing@mail.ru)

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

Отвечает Sensey

Здравствуйте, shingrus!
Так в спецификации все написано!
Длоя программиста там самая интересная Глава 9


Ответ отправлен: 11.09.2002, 17:55
Отправитель: Sensey


Отвечает ASMодей

Доброе время суток, shingrus!
Насколько я понимаю, для работы с USB должен быть какой-то
контроллер (наподобие контроллера последовательного порта).
И если в спецификации по USB есть описание работы с этим
контроллером через порты, то можно писать программу и для DOS.
А вообще можно найти драйвер USB для Linux, и если он
распространяется с открытыми исходниками, посмотреть как это
делается там.


Ответ отправлен: 12.09.2002, 12:34
Отправитель: ASMодей


 Вопрос № 1228

Здравствуйте ув. Эксперты!
Помогите, пожалуйста, разобраться с указателями на Фасме под мастдай.
Допустим есть в EAX указатель на некую структуру.
Как теперь добраться до конкретного поля этой структуры?
Тоесть
struc POINT
{
.x dd ?
.y dd ?
}
point POINT
mov edx, [point.x] ;Так работает.
А теперь допустим нет у нас никакого point-а, но есть указатетель на POINT. Как теперь добраться к полям? Где тыкнуть этот самый тип POINT?
Заранее благодарю.



Вопрос отправлен: 12.09.2002, 01:26
Отправитель: Бадян (sba@litech.net)

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

Отвечает Portnov

Здравствуйте, Бадян!
Через EAX не получится, надо EBX, но не в том проблема. Делается это так. Пусть в EBX указатель на структуру. Тогда mov edx,[ebx] положит в EDX значение Point.x, а mov edx,[ebx+4] - значение Point.y. Вообще, все просто: в квадратных скобках EBX, потом плюс :), потом смещение поля относительно начала структуры. Последнее легко вычислить, зная размеры полей: складываете все размеры полей с первого до того, к которому обращаетесь (не включая его), и усе. Предположим, более сложная структура:
struc MyStruc
field1 dd ?
field2 db ?
field3 dw ?
field4 db ?
endstruc
(синтаксис смешанный, т.к. с Фасмом вашим я не работал, но, думаю, понятно:)). Так вот, опять же, если в EBX укзатель на эту структуру, то для обращения к полю field4 надо писать [ebx+6], т.к. sizeOf(dd)+sizeOf(db)+sizeOf(dw)=4+1+2=6.
С уважением, Portnov.

Ответ отправлен: 12.09.2002, 12:25
Отправитель: Portnov


Отвечает ASMодей

Доброе время суток, Бадян!
Придется делать так:
struc POINT
{
.x dd ?
.y dd ?
}
virtual at 0
point POINT
end virtual
mov edi,Address ;Указатель на POINT
mov edx,[edi+point.x]


Ответ отправлен: 12.09.2002, 12:35
Отправитель: ASMодей


Отвечает masquer

Здравствуйте, Бадян!
ASSUME edx:PTR POINT

Ответ отправлен: 12.09.2002, 16:56
Отправитель: masquer


 Вопрос № 1229

Доброе время суток, уважаемые эксперты! В приложении приведены inline-подстановки на языке Pascal. Возможно ли их перевести на язык ассемблера, как это будет выглядеть?
(И значат ли что-нибудь {@0:}, {@1:}, {@2:}?)
Есть ли какие-нибудь правила или закономерности? Заранее признателен за любую помощь, подсказку или ссылку на информацию.
Где можно найти последний TechHelp?


Приложение:


Вопрос отправлен: 12.09.2002, 01:43
Отправитель: undying (undying@ezmail.ru)

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

Отвечает Kiss

Добрый день, undying!
На пасе я не программлю но про {@0:}, {@1:}, {@2:}- слышал сто это отключение макросов, или чтото вроде того!
С уважением Kiss!

Ответ отправлен: 12.09.2002, 09:38
Отправитель: Kiss


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

Доброе время суток, undying!

Твой inline-код дизассемблируется так:

cs:0100 0E push cs
cs:0101 E80000 call 0104
cs:0104 5B pop bx
cs:0105 83EB04 sub bx,0004
cs:0108 07 pop es
cs:0109 53 push bx
cs:010A B4C3 mov ah,C3
cs:010C 26886711 mov es:[bx+11],ah
cs:0110 90 nop
cs:0111 90 nop
cs:0112 B490 mov ah,90
cs:0114 26886711 mov es:[bx+11],ah
cs:0118 90 nop
cs:0119 5B pop bx

все числа - шестнадцатиричные. Очевидно, что в этой вставке идёт модификация кода программы по адресу 11h. Туда забивается машинный код инструкции ret. Для чего - похоже на то, что программа проверяет: есть ли в процессоре контроль модификации кода, уже помещённого в конвейер процессора.


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


Отвечает Ayl

Приветствую Вас, undying!
Конечно, возможно. См. Приложение.
По поводу {@1} и т.д. - я думаю, что это просто комментарии для лучшего понимания...


Приложение:

Ответ отправлен: 12.09.2002, 12:47
Отправитель: Ayl


Отвечает masquer

Приветствую Вас, undying!
Судя по всему это опкоды команд, ну, по памяти, напрмер 90 - nop, и так далее. В hiew смотри.


Ответ отправлен: 12.09.2002, 16:50
Отправитель: masquer


Отвечает Sinner

Приветствую Вас, undying!
см. приложение

Приложение:

Ответ отправлен: 13.09.2002, 03:48
Отправитель: Sinner



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

Внимание!
Форма может работать некорректно в почтовых программах "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 (42)
C / C++ (28)
Perl (10)
Delphi (14)
Pascal (24)
Basic / VBA (11)
Java / JavaScript (12)
PHP (9)
MySQL / MSSQL (11)
Пользователю
Windows 95/98/Me (39)
Windows NT/2000/XP (30)
"Железо" (37)
Поиск информации (12)
Администратору
Windows NT/2000/XP (14)
Linux / Unix (15)
Юристу
Гражданское право (10)
Семейное право (6)
Трудовое право (8)
КоАП (5)

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




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

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


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

В избранное