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

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


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

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

Выпуск № 321
от 19.07.2002, 08:10

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


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

Spike
Статус: Доверительный
Общий рейтинг: 117.18
[Подробней >>]
Zloy
Статус: Опытный
Общий рейтинг: 105.91
URL: The полный отстой
[Подробней >>]
Gibbel
Статус: Опытный
Общий рейтинг: 109.41
URL: Страничка обо мне и моих друзьях
[Подробней >>]
 
masquer
Статус: Профессиональный
Общий рейтинг: 161.09
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 140.57
[Подробней >>]
AnSim
Статус: Опытный
Общий рейтинг: 109.65
[Подробней >>]
 
Александр
Статус: Профессиональный
Общий рейтинг: 117.09
[Подробней >>]
Sensey
Статус: Профессиональный
Общий рейтинг: 137.23
Телефон: +38 (0572) 41-76-04 дом.
[Подробней >>]
Guess Who
Статус: Доверительный
Общий рейтинг: 104.65
[Подробней >>]
 
kvINT
Статус: Опытный
Общий рейтинг: 112.81
[Подробней >>]
GL
Статус: Опытный
Общий рейтинг: 107.65
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 125.64
[Подробней >>]


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

Вопрос № 724. Здравия и долгих дней, уважаемые эксперты! Не сочтите вопрос за проявление лени - читать подробно вс... (ответов: 3)
Вопрос № 725. Братцы, подскажите, как можно снимать скриншоты с SoftIce? Есть примерно такой план: запускаем Айс, ... (ответов: 2)
Вопрос № 726. Здравствуйте, эксперты! Подскажите как переименовать файл под ДОС, я так догадываюсь специальной фун... (ответов: 4)
Вопрос № 727. Здравствуйте эксперты! Простенький такой вопрос, имеется смещение в BX и какое-то значение в перемен... (ответов: 5)
Вопрос № 730. Здравствуйте эксперты! Я по поводу вопроса №727. 2masquer - не и так не работает.:( Проверял, и TASM... (ответов: 1)
Вопрос № 731. Здравствуйте эксперты! Изучать Ассемблер начал недавно. Помогите пожалуйста разобраться со следующей... (ответов: 2)
Вопрос № 732. Здравствуйте эксперты! Есть такая штука как dq – значение с плавающей точкой с двойной точностью – т... (ответов: 1)
Вопрос № 733. Привет эксперты! Это конечно оффтопик, но мне нужен совет: что нужно использовать, что бы сделать сл... (ответов: 2)
Вопрос № 734. Для тех, кто непрочь пораскинуть мозгами. Вот проблема: в зависимости от числа (1...9) происходит пе... (ответов: 2)
Вопрос № 735. Здравствуйте, Эксперты! Не сочтите за труд прояснить один момент. Ситуация следующая. Задач... (ответов: 2)
Вопрос № 736. Господа эскперты рошу ответить мне на вопрос: Как у вас происходит процедура ответа на вопрос по пун... (ответов: 6)

Вопросов: 11, ответов: 30


 Вопрос № 724

Здравия и долгих дней, уважаемые эксперты!
Не сочтите вопрос за проявление лени - читать подробно всю инфу просто времени сейчас нет.
Подскажите, какой видеорежим (лучше, чем 320х200х256 и 640х480х16) наиболее просто программируется? Очень хотелось бы что-то типа странички в памяти, которую легко засунуть в видеопамять и любоваться результатом (как, например, тот же 320х200х256).



Вопрос отправлен: 13.07.2002, 15:34
Отправитель: December

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

Отвечает Spike

Здравствуйте, December!
Легче конечно 13h (320x200x256), т.к. для работы с 12h (640x480x16) требуется програмирование видеоадаптера, потому что в этом видеорежиме используется режим плоскостей.


Ответ отправлен: 14.07.2002, 13:22
Отправитель: Spike


Отвечает Zloy

Добрый день, December!
13h (320х200х256) попроще.


Ответ отправлен: 14.07.2002, 19:50
Отправитель: Zloy


Отвечает Gibbel

Доброе время суток, December!
Да со всеми можешь легко работать. Достаточно использовать VESA 2.0

Ответ отправлен: 15.07.2002, 10:07
Отправитель: Gibbel


 Вопрос № 725

Братцы, подскажите, как можно снимать скриншоты с SoftIce?
Есть примерно такой план: запускаем Айс, делаем дам памяти в файл с адреса видеобуфера, потом как-то это все используем. Если алгоритм действительно такой, расскажите, пжлст, как это сделать технически.
Заранее сенкс.



Вопрос отправлен: 13.07.2002, 19:04
Отправитель: TanaT (tanat@smtp.ru)

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

Отвечает masquer

Добрый день, TanaT!
Не скажу точно как все это делается, но если есть интерес, качай Icedump, там он добавляет команду для снятия экрана айса в файлик, и потом утилитка идет, которая все в html переделывает, с цветами и прочая. Все это в исходниках на асме идет, так что если есть интерес качай и разбирайся.

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


Отвечает Broken Sword

Доброе время суток, TanaT!
Это немного не ТО, но все же...
To save the contents of the SoftICE history buffer to a file,do the following:
1 Make sure the information you want to save is displaying to the Comman window, so that it is saved in the History Buffer. For example,before dumping data,remove the Data window to force the data to display in the Command window.
2 Open Symbol Loader.
3 Either choose SAVE SOFTICE HISTORY AS...from the File menu or click the SAVE SOFTICE HISTORY button.

Ответ отправлен: 14.07.2002, 01:17
Отправитель: Broken Sword


 Вопрос № 726

Здравствуйте, эксперты!
Подскажите как переименовать файл под ДОС, я так догадываюсь
специальной функции для этого нет? Единственный способ, который приходит на ум, что можно где-нибудь FAT подредактировать, но где и как(функции)? Могу конечно ошибаться в своих догадках, но вы меня, надеюсь, поправите!:)
--
С уважением, ILYA D.



Вопрос отправлен: 13.07.2002, 23:57
Отправитель: ILYA D.

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

Отвечает Spike

Приветствую Вас, ILYA D.!
Для этого в DOS есть функция 17h прерывания INT 21h:
Вход: AH = 17h
DS:DX = Адрес блока FCB (File Control Block)
Выход: AL = 0: Операция выполнена успешно
Исходное имя файла находится на старом месте, а новое по смещению 10h.


Ответ отправлен: 14.07.2002, 13:23
Отправитель: Spike


Отвечает AnSim

Здравствуйте, ILYA D.!
Это не в фат, а в каталоге, где файл лежит

Ответ отправлен: 15.07.2002, 14:24
Отправитель: AnSim


Отвечает masquer

Добрый день, ILYA D.!
mov dx, offset old_name
mov di, offset new_name
ah, 56h
int 21h

Ответ отправлен: 14.07.2002, 00:53
Отправитель: masquer


Отвечает Александр

Приветствую Вас, ILYA D.!
А зачем. Есть же command.com. Просто вызови команду "command.com /c ren" с нужными параметрами и не мучайся. А FAT и структура каталогов это две Ооочень разные вещи...
P.S. Прошу прощения за неоригинальность этого совета.


Ответ отправлен: 17.07.2002, 23:00
Отправитель: Александр


 Вопрос № 727

Здравствуйте эксперты!
Простенький такой вопрос, имеется смещение в BX и какое-то значение в переменной, как записать что-то по смещению BX+[значение в переменной] и как можно короче?
Пробовал mov [bx+len],'0' - так в результате прибавляется не значение переменной, а ее смещение. Почему так происходит? Заранее спасибо!
С уважением, ILYA D.



Вопрос отправлен: 14.07.2002, 14:39
Отправитель: ILYA D.

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

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

Здравствуйте, ILYA D.!
Вот так попробуй:
...
mov ax, len
add bx, ax
mov [bx], '0'
...

Ответ отправлен: 16.07.2002, 02:42
Отправитель: --- Нет данных ---


Отвечает Александр

Добрый день, ILYA D.!
Так нельзя. Intel не боги. Используй базово-индексную адресацию. При ней допускается использование следующих сочетаний:
[BX][SI]
[BX][DI]
[BP][SI]
[BP][DI]
Причём начиная с 386 процессора возможно указание масштабного коэффициента(для упрощения доступа к массивам слов и двойных слов).


Ответ отправлен: 17.07.2002, 16:37
Отправитель: Александр


Отвечает Spike

Добрый день, ILYA D.!
Можно так:
mov bx, Disp ;Смещение
mov si, Variable ;Данные из переменной (если у тебя динамические данные, то лучше вообще не хранить в переменной)
mov [bx+si], Number ;Число для записи
Variable dw 0


Ответ отправлен: 14.07.2002, 15:07
Отправитель: Spike


Отвечает masquer

Добрый день, ILYA D.!
Смотря какой размерности число тебе туда запихнуть нужно:
mov byte ptr [bx+len], 31h
либо
mov word ptr [bx+len], 31h
либо
mov dword ptr [bx+len], 31h

Ответ отправлен: 14.07.2002, 15:11
Отправитель: masquer


Отвечает Sensey

Приветствую Вас, ILYA D.!
mov di, len
mov [bx+di], ...
Или si, точно не помню :)- для 8086
В 386 можно любые регистры использовать...


Ответ отправлен: 15.07.2002, 16:22
Отправитель: Sensey


 Вопрос № 730

Здравствуйте эксперты!
Я по поводу вопроса №727.
2masquer - не и так не работает.:( Проверял, и TASM и MASM плюсуют смещение переменной, а не ее значение. Почему так происходит интересно? Придется наверное копировать переменную в регистр, а потом уже адресовать, если другого способа нет.
С уважением, ILYA D.



Вопрос отправлен: 14.07.2002, 17:50
Отправитель: ILYA D.

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

Отвечает masquer

Здравствуйте, ILYA D.!
Да, да, mea culpa
mov ax, len
mov byte ptr [bx+ax], 031h

Ответ отправлен: 14.07.2002, 20:46
Отправитель: masquer


 Вопрос № 731

Здравствуйте эксперты!
Изучать Ассемблер начал недавно.
Помогите пожалуйста разобраться со следующей проблемой.
После ассемблирования программ-примеров из книги "Ассемблер? Это просто! Учимся программировать под MS-DOS",запускаю получившейся *.com файл под W2k но описанного эффекта получаю не отовсех.
Hello,World (/002/PROG01.asm)выводится нормально ,а программа (/002/PROG02.asm)которая должна выводить на экран сообщение и ждать нажатия любой клавиши ,сообщение не выводит.Тоже самое и с (/003/PROG03.ASM), которая должна выводить в верхний левый угол экрана веселую рожицу на синем фоне:рожицы нету :(.И ещё,после выполнения программ заголовок Командной строки представляет собой следующее [хръєштэю D:103Prog03.com].Под WinMe всё работает нормально.



Вопрос отправлен: 14.07.2002, 18:26
Отправитель: ALEX

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

Отвечает Guess Who

Добрый день, ALEX!
Во всем виновата W2k, не используйте ее, ну не позволит она вам научиться писать под ДОС(не позволяет она к железу напрямую обращаться):). Сидите под winMe раз там все работает.


Ответ отправлен: 14.07.2002, 19:15
Отправитель: Guess Who


Отвечает masquer

Доброе время суток, ALEX!
Как мило, работать в Вин2к, а программировать для ДОС. Просто эир очень разные вещи и винда многого не позволит делать, тем более что ДОС там просто эмулируется для совместимости.

Ответ отправлен: 14.07.2002, 23:30
Отправитель: masquer


 Вопрос № 732

Здравствуйте эксперты!
Есть такая штука как dq – значение с плавающей точкой с двойной точностью – типа 64 бита(real8) - есть ли в винде или в макросах асма функция преобразующая это dq к виду LPSTR или любому другому, который можно вывести на экран:) для прочтения…
Заранее спасибо – если нет, то тогда придется завтра ей быть, но только завтра:(
С уважением,
Boris
P.S. – жара такая что мозги плавятся:(



Вопрос отправлен: 14.07.2002, 22:32
Отправитель: Boris

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

Отвечает masquer

Добрый день, Boris!
wsprintf должен подойти

Ответ отправлен: 14.07.2002, 23:43
Отправитель: masquer


 Вопрос № 733

Привет эксперты!
Это конечно оффтопик, но мне нужен совет: что нужно использовать, что бы сделать следующее:
нужно написать например карточную игру через html. Т.е. заходят 4 чела на сайт, один кликает начать, другие коннект. И поле игры видно в браузере. Каждый кликает на карты, а у других это отражается моментально (ну в зависимости от скорости :). Соответственно нужно сделать подержку чтения/записи файлов на сервере.
Использовать обычное программирование не предлагать, т.к. нужна не игра, а нечто иное (что секрет фирмы:)
Ссылки или почта по теме приветствуется.
PS ко мне почему-то пришёл битый вопрос 731 (asm) - жму отправить ничего не происходит :( Остальные вопросы нормально ???



Вопрос отправлен: 14.07.2002, 22:57
Отправитель: Zloy (zloy-site@mail.ru)

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

Отвечает Александр

Доброе время суток, Zloy!
Дарагой ты, что нас своей морокой грузищь. Да это же простой HTML-чат. И кроме того - это действительно оффтопик. Плюс тебе, негодяй ;-) А что же это за секрет такой??? Шепни на ушко(kptz@newmail.ru) - помогу.
P.S. Чем можно програмить на сервере???


Ответ отправлен: 17.07.2002, 16:37
Отправитель: Александр


Отвечает masquer

Приветствую Вас, Zloy!
Хотя я в этом не очень смыслю, но на html ты этого никак не сделаешь, Java+Perl - скорее всего без этого никак. И как ты себе представляешь игру без программирования???

Ответ отправлен: 14.07.2002, 23:35
Отправитель: masquer


 Вопрос № 734

Для тех, кто непрочь пораскинуть мозгами.
Вот проблема: в зависимости от числа (1...9) происходит переход на соотв. метку:
cmp число,4
jb @@1_3
jz @@4
cmp число,9
jb @@5_8
jmp @@9

@@1_3: jmp finish
@@4: sub cl,2
dec bp
jmp finish
@@5_8: dec si
sub cl,4
inc bp
jmp finish
@@9: sub cl,8
sub bp,2
finish:


И вот она вся мощь асма! То же самое можно сократить до:
cmp число,4
jb @@1_3
jz @@4
cmp число,9
jb @@5_8
@@9: dec bp
sub cl,5
@@4: add cl,2
sub bp,2
inc si
@@5_8: dec si
sub cl,4
inc bp
@@1_3:
finish:
(мы вообще избавились от jmp-ов, проверьте, все правильно)
Теперь собственно говоря вопрос: кто может создать еще меньший шедевр из данной задачи и особенная честь и уважение тому, кто опишет хотя бы примерный алгоритм решения всех подобных задач.
p.s. все условие дано для начального значения bp=-1, вот его и можно менять на свое усмотрение как угодно... т.е. если вы его начальное значение примите за 0, то тогда для @@1_3 понадобится dec bp, зато для @@4 sub bp,2 уже можно заменить на dec bp, что на байт короче... (не забудьте про все остальные - они тоже поменяются)
p.s. попробуйте подумать хотя бы минуту...



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

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

Отвечает Gibbel

Приветствую Вас, Broken Sword!
Вот так будет проще, да и быстрее:

Приложение:

Ответ отправлен: 15.07.2002, 10:31
Отправитель: Gibbel


Отвечает masquer

Приветствую Вас, Broken Sword!
На 4 байта меньше - достаточно? Универсального решения, я думаю, нет, все от условий зависит.

Приложение:

Ответ отправлен: 15.07.2002, 00:29
Отправитель: masquer


 Вопрос № 735

Здравствуйте, Эксперты!
Не сочтите за труд прояснить один момент.
Ситуация следующая.
Задача. Запустить комп из выключенного состояния, используя системный сервис в назначенное время.
Имеем: мать, биос которой не поддерживает данную функцию. :-(
Решение (как вариант).
Теория.
Учитывая наличие в КМОП - микросхеме возможность установить время будильника, используем это.
Дальше сложнее.
Узнать какую функцию вызывает будильник при наступлении назначенного времени, перехватить её и вписать в обработчик прерывания
процедуру запуска или начальный адрес старта системы.
Практика.
Как найти где в компе лежит эта нужная процедура (процедура запуска компа, с тестированием как положено) и её размеры для копирования или адрес в памяти, с которого и начинается старт системы.
Хотелось бы узнать Ваши соображения относительно данного геморроя.
К желающим выдать умозрительные ответы просьба - воздержаться от комментариев с пожеланием отправиться погулять по инету.
Погулять можно, но адрес должен быть определён однозначно.
С уважением, Anton.



Вопрос отправлен: 15.07.2002, 02:25
Отправитель: Anton

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

Отвечает masquer

Добрый день, Anton!
То есть тикает таймер и биос должен в назначенное время включить компьютер? Теоретически такое возможно, а вот практически?, попробуй на сайтах производителей чипсетов и материнок порыть.

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


Отвечает Александр

Добрый день, Anton!
Так вот, для тех кто в танке. Этот вопрос тут всплывает каждые 2 недели. НЕВОЗМОЖНО. Программно включить если у тебя не ATX блок питания и BIOS этого не поддерживает - НЕВОЗМОЖНО. Если блок питания можно довести до состояния ATX, сам в интернете статью читал, то кой-чего в BIOS добавить практически невозможно. Для решения вашей задачи дайте начальнику по башке, чтобы на электричестве не экономил и поставьте энергосберегающий режим всего чего можно - монитор, HDD. А уж программ планировщиков-запускальщиков пруд пруди.


Ответ отправлен: 17.07.2002, 16:37
Отправитель: Александр


 Вопрос № 736

Господа эскперты рошу ответить мне на вопрос:
Как у вас происходит процедура ответа на вопрос по пунктам, и если используете браузер то какой?!
Благодарю за ответы!



Вопрос отправлен: 15.07.2002, 08:02
Отправитель: Pablo

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

Отвечает Sensey

Добрый день, Pablo!
1. Читаю вопрос
2. Думаю, лень мне отвечать или нет иначе выход
3. Думаю, есть ли у меня время ответить иначе выход
4. Думаю, знаю ли я ответ сразу
5. Если не знаю сразу, ищу по справочникам или думаю как это решается.
6 Решаю, иначе выход
7. Пишу ответ.
Лично у меня все работает в ОутГлюке Експресс 5.0 (ставится вместе с W2k), никаких проблем, только изредка пробел не срабатывает, но я уже привык - если быстро набирать, то все работает :)


Ответ отправлен: 17.07.2002, 12:43
Отправитель: Sensey


Отвечает masquer

Здравствуйте, Pablo!
Элементарно, получаю почту The Bat!, оттуда message.html перетягиваю в Opera.

Ответ отправлен: 15.07.2002, 09:55
Отправитель: masquer


Отвечает kvINT

Здравствуйте, Pablo!
У меня обычные Аутлук и IE.
1. Просматриваю вопрос в Аутлуке.
2. Если заинтересовал, щелкаю "открыть".
3. В открывшемся файле выбираю "Сохранить как" и сохраняю в формате html, где-нибудь.
4. Когда появляется свободное время открываю сохраненные таким образом файлы (открываются в IE) и отвечаю на вопросы.
5. Если возникают проблемы с дозвоном к провайдеру, копирую текст ответа и сохраняю его где-нибудь, потому что при закрытии файла он потеряется.


Ответ отправлен: 16.07.2002, 12:34
Отправитель: kvINT


Отвечает GL

Добрый день, Pablo!
Иногда отвечаю из аутлука, в остальных случаях сохраняю вопросы в html, открываю их и отправляю с помощью IE6.

Ответ отправлен: 15.07.2002, 14:17
Отправитель: GL


Отвечает Ayl

Доброе время суток, Pablo!
Получаю в Outlook Express (сейчас версия 5)
Открываю письмо и отвечаю. Кстати, при этом нет проблемы с клавишей пробел (какая сволочь все-таки в Мелкософте придумала эту багу?).

Ответ отправлен: 15.07.2002, 14:23
Отправитель: Ayl


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

Здравствуйте, Pablo!
Я открываю приаттаченную к моему письму, HTML страницу, в IE 5.0. Там (предварительно прочитав вопрос) ввожу в поле Текст ответа, свой ответ. Потом, жму кнопку "Отправить до ###### >>>". И все, появляется страничка с уведомлением об отправке ответа.
P.S. Может хватит, а?

Ответ отправлен: 16.07.2002, 02:41
Отправитель: --- Нет данных ---



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

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

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




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

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


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

В избранное