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

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


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

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

Выпуск № 686
от 12.01.2004, 11:30

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


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

Евгений Иванов
Статус: Профессиональный
Общий рейтинг: 136.89
URL: Super Assembler Software
Телефон: Пчёлка +7 905 6601206
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 116.42
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 146.78
URL: Программирование
[Подробней >>]
 
never_again
Статус: Опытный
Общий рейтинг: 127.09
[Подробней >>]
Artemy
Статус: Опытный
Общий рейтинг: 117.42
Телефон: 8 905 549 38 66
[Подробней >>]
Portnov
Статус: Профессиональный
Общий рейтинг: 107.85
URL: Мой сайтик...
[Подробней >>]
 
Gibbel
Статус: Профессиональный
Общий рейтинг: 106.12
URL: Savage Metal Club - жизнь в стиле рок-н-ролл
Телефон: +7 901 710 3146
[Подробней >>]
VOVAN
Статус: Начальный
Общий рейтинг: 104.95
[Подробней >>]
SedHg
Статус: Доверительный
Общий рейтинг: 116.24
[Подробней >>]
 
Илья
Статус: Профессиональный
Общий рейтинг: 102.36
[Подробней >>]
izLesa
Статус: Начальный
Общий рейтинг: 110.76
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108.24
[Подробней >>]


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

Вопрос № 4754. Уважаемые эксперты! Помогите с лабой- нужен резидент- ЭВМ при нажатии стрелки вправо реагирует как н... (ответов: 2)
Вопрос № 4755. Вот программа. В принципе она должна вводить с клавиатуры строку и выводить ее на экран.При исполь... (ответов: 4)
Вопрос № 4756. Поздравляю всех с Новым годом! Желаю участникам рассылки всего самого наилучшего. Хочу сказать ОГРОМ... (ответов: 1)
Вопрос № 4758. Уважаемые эксперты, вопрос в процедуре обработки диалогового окна пытаюсь вызвать API GetOpenFile... (ответов: 3)
Вопрос № 4759. end of scripts mov register,(address) mov (address1),register return P.S. It's ok ! Isn't it ? С Но... (ответов: 1)
Вопрос № 4760. Где можно найти в Интернете книгу Абеля (а можно и не только Абеля)? Толком нигде не нашел.... (ответов: 4)
Вопрос № 4761. Здравствуйте. Можно-ли перехватить ВП в Windows. Если да, то как.... (ответов: 2)
Вопрос № 4762. Здравствия усем! Можеь то побскажет как по-проще и поскорее делать "резидентный сторож". О... (ответов: 2)
Вопрос № 4764. Здравствуйте дорогие эксперты. Научите меня дурака как добовлять скрипт на сайт. А то я полный лох в... (ответов: 3)
Вопрос № 4765. Помогите разобраться в этом куске кода: ------------- begin ---------------- bits 16 org 100h sta... (ответов: 1)
Вопрос № 4766. Здравствуйте!Неудобно писать такие вещи в вашу рассылку, но другого выбора у меня нет. Я через рассы... (ответов: 2)

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


 Вопрос № 4754

Уважаемые эксперты!
Помогите с лабой- нужен резидент- ЭВМ при нажатии стрелки вправо реагирует как на стрелку влево и наоборот, при нажатии стрелки вниз как на стрелку вверх и наоборот



Вопрос отправлен: 05.01.2004, 19:57
Отправитель: alex

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

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

Добрый день, alex!
Попробуй
мою программу
переделать ;-)
Удачи!
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 05.01.2004, 20:56
Отправитель: Евгений Иванов


Отвечает Ayl

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

А какая помощь требуется?
Тебе требуется написать обработчик прерывания 9. Это аппаратное прерывание от клавиатуры, которое генерируется при любом нажатии или отпускании клавиши. При этом в порт 60h записывается скен-код нажатой клавиши.

Твой обработчик должен выглядить так:
1. Получить скен-код клавиши
2. Проверить, не является ли он скен-кодом одной из стрелочек
3. Если не стрелка - вызвать старый обработчик
4. Послать подтверждение контроллеру клавиатуры о принятии скен-кода
5. Произвести замену принятого скен-кода на нужный
6. Записать код в очередь нажатых клавиш
7. Послать подтверждение контроллеру прерываний о завершении процедуры обработки
8. Выйти из процедуры обработки

Не забудь сохранить все используемые регистры и восстановить их перед выходом.
В приложении - примерный код обработчика.

Приложение:

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


 Вопрос № 4755


Вот программа. В принципе она должна вводить с клавиатуры строку и выводить ее на экран.При использовании обычной переменной , например объявленной тамже Stroka все работает идеально, а при использовании одного из полей струтуры(тамже объявлена) не работае т.помогите пожалуйста.если эта прога заработает все мои проблемы закончатся.
заранее спасибо
stud struc
fam db 255 dup(?)
im db 30 dup(?)
stud ends
dseg segment
max db 255
len db ?
stroka db 255 dup(?)
db ?
ent db 13,10,'$'
s1 stud <>
dseg ends
stseg segment stack
db 60 dup (0)
stseg ends
codseg segment
assume cs:codseg, ds:dseg, ss:stseg
begin:
mov ax, stseg
mov ss,ax
mov ax,dseg
mov ds,ax
mov ah,0ah
lea dx,max
int 21h
mov bl,len
mov bh,0
mov [bx+s1.fam+1],'$'
lea dx,ent
mov ah,09h
int 21h
lea dx, s1.fam
int 21h
mov ah, 4ch
int 21h
codseg ends
end begin



Вопрос отправлен: 05.01.2004, 20:10
Отправитель: Влад

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

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

Приветствую Вас, Влад!
надо ещё копировать строку перед выводом:

mov si, offset stroka
lea di,[(type stud s1).fam]
movzx cx,[len]
jcxz @@no_1
rep movsb
@@no_1:
mov al,'$'
stosb

Бывай!
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 05.01.2004, 21:22
Отправитель: Евгений Иванов


Отвечает Bob Johnson

Добрый день, Влад!
Так ты же не скопировал сам текст в структуру, только добавил '$'. Сделай
push ds
pop es
mov si, offset stroka
mov di, offset s1.fam
mov cx, bx
rep movsb

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 06.01.2004, 02:31
Отправитель: Bob Johnson


Отвечает never_again

Доброе время суток, Влад!
mov ah,0ah
lea dx,max ; Ну и кто так делает?
; dx должен указывать на буфер,
; а у тебя он на что указывает?
int 21h
кроме того. буфер должен быть определённым образом подготовлен:
смещение размер описание
---------------------------
00h BYTE макс. кол-во символов в буфере.
01h BYTE (при вызове) макс. кол-во символов при
последнем вводе которое можно вызвать
ещё раз.
(возвращает) кол-во действительно
прочитаных символов исключаю CR
02h N BYTEs место под строку включая CR.

Ответ отправлен: 06.01.2004, 10:53
Отправитель: never_again


Отвечает Artemy

Доброе время суток, Влад!
попробуй написать вместо...
mov [bx+s1.fam+1],'$'
что-то типа...
mov [bx+(offset s1.fam)+1],byte ptr '$'
и ещё...
ты в какой буфер строку вводишь?
Нужно вводить туда, откуда потом выводить будешь и
не забудь, что в первом байте буфера должна быть макс.
длина вводимой строки и выводить нужно тоже с учетом этого.


Ответ отправлен: 06.01.2004, 11:53
Отправитель: Artemy


 Вопрос № 4756

Поздравляю всех с Новым годом!
Желаю участникам рассылки всего самого наилучшего.
Хочу сказать ОГРОМНОЕ СПАСИБО всем за вопросы и ответы а также
участнику рассылки MUD за его ссылки на трехтомник Кнута причем
в новом издании да еще в таком рульном формате как дежавю,
где почти 700 страниц текста как два бита об асфальт
влезают в 6 метров. Может кто знает ссылки на другие
тома "Исскуство программирования" Кнута. И если не
трудно плз. поделитесь ссылочкой.
Заранее благодарен за ответы 1!



Вопрос отправлен: 05.01.2004, 21:12
Отправитель: 1 (privat-soap@list.ru)

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

Отвечает Portnov

Добрый день, 1!
1. Не понял, что в этом формате такого рульного... 1стр. текста обычно считается 2Кб. Итого 700х2 = 1.4Мб. Ну плюс картинки, таблицы... Так что 6Мб - это, по-моему, максимум... Да, кстати, это вообще формат текстовый, графический или как?
2. Какие вам другие тома? Я так помню, что он на три тома ссылки дал. Тома 4 и 5 Кнут планирует к выпуску никак не раньше середины 2004-2005 года. Причем том 4 будет состоять из трех книг (какждая размером с первый том). Также планируются к выпуску тома 6 и 7, но это вообще неизвестно когда.
С уважением, Portnov.

Ответ отправлен: 06.01.2004, 10:21
Отправитель: Portnov


 Вопрос № 4758

Уважаемые эксперты, вопрос в процедуре обработки диалогового окна пытаюсь вызвать API GetOpenFileName и определяю структуру OPENFILENAME как локальную
LOCAL ofn:OPENFILENAME
в итоге при срабатывание контрола приложение вышибает с ошибкой в kernel32 но если я ту-же структуру определяю как глобальную в секции .data или .data? то все нормально диалоговое окно выскакивает, с чем это может быть связано , и почему структуру нельзя объявлять локально...
Заранее благодарен.



Вопрос отправлен: 06.01.2004, 13:45
Отправитель: greg

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

Отвечает Gibbel

Доброе время суток, greg!
Так ведь нет никакой разницы между тем, объявил ты ее локально или глобально... Может быть ты просто в случае, когда объявляешь локально, неправильно передаешь указатель на нее??? И еще, если компилируешь TASMом, то в нем есть глюк, он не всегда корректно работает с локальными переменными и параметрами процедур (наталкивался пару раз). Загрузи в отладчик, и посмотри, соответствует ли скомпилированный код тому, что ты хотел сделать...

Ответ отправлен: 06.01.2004, 14:27
Отправитель: Gibbel


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

Здравствуйте, greg!
много нюансов
исходник давай.
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 06.01.2004, 14:37
Отправитель: Евгений Иванов


Отвечает Bob Johnson

Приветствую Вас, greg!
Можно. Но при этом:
1. Инициализировать ее надо непосредственно перед вызовом.
2. Чтобы передать ее адрес надо написать, например:
lea eax, [@@LocalStruct]
push eax
Т.к. простой offset в этой ситуации хоть и не выдает ошибки, но работать не может (локальные перменные определены относительно регистра ebp, а команды
push ebp + n нет).

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 09.01.2004, 03:35
Отправитель: Bob Johnson


 Вопрос № 4759

end of scripts
mov register,(address)
mov (address1),register
return
P.S. It's ok ! Isn't it ?

С Новым Годом !!!
Happy New Year !!!



Приложение:


Вопрос отправлен: 06.01.2004, 14:30
Отправитель: MPA

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

Отвечает VOVAN

Здравствуйте, MPA!
yes it is
example:
mov bx,1111h
mov cs:[bx],ax; movs register ax to the address, witch
;consists of curent_segment:1111h
good luck!!!

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


 Вопрос № 4760

Где можно найти в Интернете книгу Абеля (а можно и не только Абеля)? Толком нигде не нашел.



Вопрос отправлен: 06.01.2004, 18:05
Отправитель: Sedric (eiv.ivan@rambler.ru)

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

Отвечает SedHg

Добрый день, Sedric!
Тут тебе и Абель, тут тебе и многое другое - asm.shadrinsk.net
Хотя ошибок в книге Абеля - вагон и маленькая тележка,
это связано, скорее всего, с переводом.


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


Отвечает Илья

Добрый день, Sedric!
>Толком нигде не нашел
Так чего "Толком" ищешь? Ищи яндексом или гуглом ;) На яндексе при запросе "Абель + ассемблер" выдало несколько рабочих ссылок на книгу, как в он-лайн варианте, так и для скачивания.
Если не найдешь, попроси, на мэйл скину.

Приложение:

Ответ отправлен: 06.01.2004, 19:34
Отправитель: Илья


Отвечает VOVAN

Приветствую Вас, Sedric!
http://lib.nexter.ru/book/a/ABEL_E01.zip

Ответ отправлен: 07.01.2004, 12:13
Отправитель: VOVAN


Отвечает Bob Johnson

Доброе время суток, Sedric!
У меня на странице есть - http://bobjohnson.nm.ru

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 09.01.2004, 03:35
Отправитель: Bob Johnson


 Вопрос № 4761

Здравствуйте.
Можно-ли перехватить ВП в Windows.
Если да, то как.



Вопрос отправлен: 06.01.2004, 21:39
Отправитель: Pawel

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

Отвечает izLesa

Добрый день, Pawel!
Если я правильно понял, то ВП - это вызов прерываний?
Еслм да, о перехватить их в Винде нельзя, т.к. они скрыты и предоставляется доступ только к функциям WinAPI, которые в своих недрах и вызывают прерывания, насколько я понимаю.
Так что Вам придётся именно их мониторить.
Пока! [labZ]izLesa

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


Отвечает Bob Johnson

Доброе время суток, Pawel!
Что такое ВП? Какое-то прерывание? Можно, но для этого надо писать драйвер.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 09.01.2004, 03:35
Отправитель: Bob Johnson


 Вопрос № 4762

Здравствия усем!
Можеь то побскажет как по-проще и поскорее делать "резидентный сторож".
Он должон при удалении какого-то файла с дискеты - востанавливать его.



Вопрос отправлен: 06.01.2004, 22:07
Отправитель: Denis (mikelangello@ukr.net)

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

Отвечает izLesa

Доброе время суток, Denis!
Хм. Смотря на какой файловой системе будет работать твой сторож. Самое реальное это FAT, т.к. он обнуляет таблицу расположения файлов, а не удаляет сами файлы.
Поэтому мониторишь прерывание, которое отвечает за удаление, и потом юзаешь функции низкоуровнего чтения/записи к винчестеру.
Пока![labZ]izLesa

Ответ отправлен: 07.01.2004, 11:28
Отправитель: izLesa


Отвечает Artemy

Доброе время суток, Denis!
Вешай свой обработчик на функцию 41h 21го инта и перед удалением сохраняй файл в какую-нибудь временную папку.

Ответ отправлен: 08.01.2004, 10:09
Отправитель: Artemy


 Вопрос № 4764

Здравствуйте дорогие эксперты. Научите меня дурака как добовлять скрипт на сайт. А то я полный лох в этом деле. Заранее спасибо.



Вопрос отправлен: 08.01.2004, 05:04
Отправитель: Слава (slavacomb@tagnet.rЗ)

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

Отвечает vitya

Приветствую Вас, Слава!
Вы желаете делать это на ассемблере? Не советую. Попробуйте просто скопировать в папку с сайтом скрипты и проставить где надо в php.ini или что там у вас и соответственно в Apache

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


Отвечает izLesa

Здравствуйте, Слава!
Скрипт то на каком языке? Если на Perl то кидать все скипты
надо в папку cgi-bin и вначале каждого проверить строку по типу этой:
#!/bin/perl
У некоторых хостеров она другая. Если нужно, то изменяй. Она указывает серверу(например Apache) где находится интерпритатор.
Если же скрипт PHP, то всё на много проще. Просто помещаете файл туда где все html-файлы находятся, только незабудте сделать расширение .php, а то они не будут интерпритироватся. Более подробно можно посмотреть у хостера в FAQ. Там должно быть написано об этом.
Пока! [labZ]izLesa

Ответ отправлен: 08.01.2004, 14:19
Отправитель: izLesa


Отвечает Bob Johnson

Доброе время суток, Слава!
Так ты уже кажется спрашивал это...
В любой ситуации - вопрос слишком общий, да в добавок еще и не по теме...

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 09.01.2004, 03:36
Отправитель: Bob Johnson


 Вопрос № 4765

Помогите разобраться в этом куске кода:
------------- begin ----------------
bits 16
org 100h
start mov al, 0x13
cmc
inc dx
int 0x10
push word 0xa000
pop es

pix mul bx
inc ax
add ax, di
adc [si], bx
div word [si+12]
clp fmul dword [si]
fiadd word [si]
fistp word [bx]
sub ax, 130
xchg ax, [bx]
xor cx, ax
fild word [bx]
fmul st0
xor bx, bp
xchg ax, dx
fxch st1
jnz clp

faddp st1, st0
fsqrt
fdivr dword [si]
fild word [bx]
fild word [bp]
fpatan
salc
xchg ax, cx
or al, 0x87
stosb
jmp short pix
------------- end ----------------
Буду очень благодарен, если объясните, для чего применена каждая из команд в этом коде. Я сам ничего не понял. Помогите, плииз...



Вопрос отправлен: 08.01.2004, 10:46
Отправитель: valyala (valyala@tut.by)

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

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

Доброе время суток, valyala!
какая-то демка графическая
но ты вопросы задавай!
ты думаешь, мы понимаем, что она делает?
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 08.01.2004, 14:55
Отправитель: Евгений Иванов


 Вопрос № 4766

Здравствуйте!Неудобно писать такие вещи в вашу рассылку, но другого выбора у меня нет.
Я через рассылку познакомилась с человеком по имени Сергей Каримов.
Сергей, если ты где-то тут, прошу тебя, напиши Гному, а то я просто потеряла твой адрес и не знаю, как теперь тебя искать по-другому. Спасибо рассылке!



Вопрос отправлен: 08.01.2004, 11:29
Отправитель: Гном (Punkygnom@mail.ru)

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

Отвечает never_again

Доброе время суток, Гном!
Серёга! Ответь девушке! А вдруг она та единственная!!!

Ответ отправлен: 08.01.2004, 20:58
Отправитель: never_again


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

Приветствую Вас, Гном!
Если будет свадьба, меня пригласите? ;-)
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 08.01.2004, 15:19
Отправитель: Евгений Иванов



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

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (25)
C / C++ (19)
Perl (5)
Builder / Delphi (20)
Pascal (21)
Basic / VBA (3)
Java / JavaScript (5)
PHP (13)
Криптография (7)
WinAPI (13)
Пользователю
Windows 95/98/Me (41)
Windows NT/2000/XP (58)
"Железо" (29)
Поиск информации (21)
Администратору
Windows NT/2000/XP (29)
Linux / Unix (11)
Юристу
Гражданское право (13)
Семейное право (9)
Трудовое право (10)
КоАП (9)

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




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.


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

В избранное