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

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


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

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

Выпуск № 742
от 19.06.2004, 20:40

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


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

Ayl
Статус: Профессиональный
Общий рейтинг: 116.71
[Подробней >>]
rmf
Статус: Доверительный
Общий рейтинг: 123.26
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 105.24
URL: Savage Metal Club - жизнь в стиле рок-н-ролл
Телефон: +7 901 710 3146
[Подробней >>]
 
Евгений Иванов
Статус: Профессиональный
Общий рейтинг: 134.06
URL: Super Assembler Software
Телефон: НСС +7 831 3107039
[Подробней >>]
n0name
Статус: Начальный
Общий рейтинг: 113.33
[Подробней >>]
VOVAN
Статус: Опытный
Общий рейтинг: 105.5
[Подробней >>]
 
Dragoon
Статус: Доверительный
Общий рейтинг: 108.09
[Подробней >>]
Dark_Lord
Статус: Профессиональный
Общий рейтинг: 109.49
[Подробней >>]
Стас
Статус: Опытный
Общий рейтинг: 129.83
[Подробней >>]
 
bocha
Статус: Опытный
Общий рейтинг: 150.73
[Подробней >>]


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

Вопрос № 5442. Здравствуйте, ЭКСПЕРТЫ ! Пожалуйста напишите мне текст проги для вывода на экран хотя бы одного пик... (ответов: 2)
Вопрос № 5444. Здраствуйте. Многие эксперты говорят читай Windows DDK, Windows SDK, RTFM, MSDN...(и это не одно и т... (ответов: 3)
Вопрос № 5445. Здравствуйте уважаемые эксперты. Хотел бы задать вам вот такой вопрос: где можно скачать самые свеж... (ответов: 1)
Вопрос № 5446. Доброе время суток , уважаемые эксперты. Изучал я намедни защищённый режим процессоров интел. И возн... (ответов: 1)
Вопрос № 5447. Привет, Как организовать паузу в проге : CODESG segment assume CS:CODESG org 100h MAIN proc xor AL,A... (ответов: 3)
Вопрос № 5448. test... (ответов: 1)
Вопрос № 5451. Здравствуйте уважаемые эксперты! Подскажите пожайлуста простой способ генерации ip адресов. Я могу с... (ответов: 1)
Вопрос № 5452. Привет всем. Благодарю Стаса за его добрату и терпения! ;) и ещё маленький вопросик: Не как не получ... (ответов: 1)
Вопрос № 5453. Подробности к вопросу № 5452. Стас, пробовал вот так: .data Text dd xz Buf dd ? .code invoke recv,cl... (ответов: 1)
Вопрос № 5454. Здравствуйте! По следующему адресу http://www.wasm.ru/article.php?article=unusualboot находится стат... (ответов: 1)
Вопрос № 5455. Пишу что-то подобное брутфорса, но с перебором ip адресов :) Мне нужно сгенерить случайный ip. Хотел... (ответов: 1)
Вопрос № 5460. Здравствуйте! Нужно написать програмку, запрещающую запуск файлов (это и .txt, и .exe и вообще любые... (ответов: 1)
Вопрос № 5461. Доброе время суток, уважаемый n0name. Я пишу по поводу вопроса № 5445, о win32api help.Спасибо, коне... (ответов: 1)
Вопрос № 5462. Уважаемые эксперты. Подскажите принцип использования видеопамяти (для отображения графики) на Ассемб... (ответов: 1)
Вопрос № 5464. Здравствуйте! Подскажите, пожалуйста, зачем регистр ebp используется для кадра стека, почему нельзя ... (ответов: 4)
Вопрос № 5465. Доброго времени суток! Объясните, пожалуйста, что такое нижняя память и почему ей выделяется 640Kb. ... (ответов: 3)

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


 Вопрос № 5442

Здравствуйте, ЭКСПЕРТЫ !
Пожалуйста напишите мне текст проги для вывода на экран хотя бы одного пикселя(MS-DOS, любой режим)…
Если это возможно…
С нетерпением жду ответа!
Спасибо,



Вопрос отправлен: 10.06.2004, 14:37
Отправитель: Serega

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

Отвечает Ayl

Добрый день, Serega!
В Приложении - вывод точки разными цветами в режиме 13h (320*200*256 цветов)

Приложение:

Ответ отправлен: 11.06.2004, 13:13
Отправитель: Ayl


Отвечает rmf

Доброе время суток, Serega!
http://www.kalashnikoff.ru/issues.exe

Ответ отправлен: 10.06.2004, 14:46
Отправитель: rmf


 Вопрос № 5444

Здраствуйте.
Многие эксперты говорят читай Windows DDK, Windows SDK, RTFM, MSDN...(и это не одно и тоже?)
А что лучше-то себе взять?



Вопрос отправлен: 11.06.2004, 09:29
Отправитель: Семен

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

Отвечает Gibbel

Приветствую Вас, Семен!
DDK - комплект документации по разработке драйверов.
SDK - комплект документации по созданию программ.
RTFM - Read the f***ing manual (прочти замечательную документацию :-) )
MSDN - Microsoft Software Development Network - продукт Microsoft, содержащий в себе огромное количество информации по программированию с использованием всех технологий Microsoft.
Ну и, на всякий случай, API - Application Programming Interface - набор функций, используемый при создании программ (например, WinAPI - функции Windows).

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


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

Доброе время суток, Семен!
ВСЁ!
û
весь мир нужен, чтобы его понять.
* EMan: -=- Любовь существует! =-=


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


Отвечает n0name

Приветствую Вас, Семен!
WinDDK - Windows Driver Development Kit(руководство по написанию драйверов)
WinSDK - Windows Software Development Kit(руководство по написанию софта)
RTDM - Read This F**ken Manual(прочитай это руководство)
MSDN - Microsoft Develpment Network(описание API, структур)

Ответ отправлен: 13.06.2004, 18:06
Отправитель: n0name


 Вопрос № 5445

Здравствуйте уважаемые эксперты.
Хотел бы задать вам вот такой вопрос: где можно скачать самые свежие хэлп файлы по win32 api. Те файлы которые идут с Delphi меня не устраивают, уж больно старые они, а хотелось бы чегонить свеженьково.
Большое спасибо.



Вопрос отправлен: 11.06.2004, 12:22
Отправитель: Арт

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

Отвечает n0name

Приветствую Вас, Арт!
зайди на msdn.microsoft.com

Ответ отправлен: 13.06.2004, 18:06
Отправитель: n0name


 Вопрос № 5446

Доброе время суток , уважаемые эксперты.
Изучал я намедни защищённый режим процессоров интел. И возник у меня такой вопрос: На сколько я понял , возможны лишь два режима адресации памяти(я имею ввиду ,конечно, в защищённом режиме). Первый называеться сегментированная адресация, а второй называеться страничной адресацией. На сколько я понял, всеми либые Win32 используют второй способ адресации, и используют лишь два кольца защиты, нулевое(ядро), и третье(приложения). Но вот я только никак не пойму, ведь страничная адресация основанна всётаки на сегментированной адресации, т.е. фундаментальна, всётаки сегментированная адресация(извиние за маразм, который я несу). Почему же всётаки их различают эти два вида адресации?
Большое спасибо, что прочитали эту чушь...



Вопрос отправлен: 11.06.2004, 12:33
Отправитель: Арт

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

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

Сегментирование в основе, да.
Страничность может быть включена или выключена и просто добавляет новые возможности по доступе к памяти и защите.
* EMan: -=- Любовь существует! =-=


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


 Вопрос № 5447

Привет,
Как организовать паузу в проге :
CODESG segment
assume CS:CODESG
org 100h
MAIN proc
xor AL,AL
mov BH,40h
mov CH,5
mov CL,10h
mov DH,10h
mov DL,3Eh
mov AH,6
int 10h
mov ax,4c00h
int 21h
MAIN endp
CODESG ends
end MAIN
чтобы результат её выполнения остался на экране хотя бы на несколько секунд…
Эта прога заканчивает свою работу автоматически. Если капельку переделать её, то она будет завершаться после PRESS ANY KEY. Но, увы, мне это не нужно…




Вопрос отправлен: 11.06.2004, 19:37
Отправитель: Serega

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

Отвечает VOVAN

Добрый день, Serega!
читай таймер по адресу 60:4с, прибавляй нужную задержку
(18 - секунда), читай в цикле, сравнивая с полученным значением. Когда будет больше или равно - выходишь из цикла!

Ответ отправлен: 12.06.2004, 18:47
Отправитель: VOVAN


Отвечает Dragoon

Приветствую Вас, Serega!
Используй прерывание задержки.

Приложение:

Ответ отправлен: 14.06.2004, 18:56
Отправитель: Dragoon


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

Приветствую Вас, Serega!
sub ah,ah
int 22
* EMan: -=- Любовь существует! =-=


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


 Вопрос № 5448

test



Вопрос отправлен: 11.06.2004, 19:40
Отправитель: test

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

Отвечает Dark_Lord

success ;)


Ответ отправлен: 12.06.2004, 21:07
Отправитель: Dark_Lord


 Вопрос № 5451

Здравствуйте уважаемые эксперты!
Подскажите пожайлуста простой способ генерации ip адресов.
Я могу сгенерить числа от 1-255 потом отделять через ".", но это как-то долго и не удобно.
Спасибо заранее!



Вопрос отправлен: 12.06.2004, 18:49
Отправитель: Zveryuga

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

Отвечает Стас

Добрый день, Zveryuga!
Задачу надо ставить кокретнее.
В каком виде у тебя IP адреса, для каких целей?
Например для использования в программе лучше использовать DWORD, а для ввода с клавы/вывода на экран прийдется работать с символьной строкой.
Что подразумеваешь под генерацией? Последовательный перебор или генерацию случайного числа?
А по сути все равно все сведется к тому, чтобы "генерировать" (или инкрименировать) 4 числа и ставить между ними точку.

Ответ отправлен: 12.06.2004, 20:31
Отправитель: Стас


 Вопрос № 5452

Привет всем.
Благодарю Стаса за его добрату и терпения! ;)
и ещё маленький вопросик:
Не как не получается сравнить данные.
.data
Text db "xz",0
Buf dd ?
.code
invoke recv,client,offset Buf,sizeof Buf,0
invoke lstrcmp,offset Text,offset Buf
cmp eax,0
jz _sovpal
p.s. я понимаю что lstrcmp сравнивает текст, а то что в Buf'e - это байты, но и с cmpsb не заработало..



Вопрос отправлен: 12.06.2004, 19:04
Отправитель: Flashik

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

Отвечает Стас

Здравствуйте, Flashik!
Offtopic: И тебе спасибо! Приятно слышать.
Значить по теме: продемонстрируй как ты это делал через CMPSB.
А то я в виндах не очень.

Ответ отправлен: 12.06.2004, 20:07
Отправитель: Стас


 Вопрос № 5453

Подробности к вопросу № 5452.
Стас, пробовал вот так:
.data
Text dd xz
Buf dd ?
.code
invoke recv,client,offset Buf,sizeof Buf,0
mov cx, 2
lea si, Text
lea di, Buf
repe cmpsb
jne _nesovpadaet



Вопрос отправлен: 12.06.2004, 20:33
Отправитель: Flashik

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

Отвечает Стас

Доброе время суток, Flashik!
Во первых, дебаггером проверял? Что, где, почему?
Во вторых, неплоходы перед CMPSB сделать CLD, и удостовериться что ES=DS.
Ну и в третьих, для сравнения всего 4 байт не нужен CMPSB.
Сделай так MOV EAX,[text]; CMP EAX,[Buf].

Ответ отправлен: 13.06.2004, 11:57
Отправитель: Стас


 Вопрос № 5454

Здравствуйте!
По следующему адресу http://www.wasm.ru/article.php?article=unusualboot находится статья о нестандартном
загрузчике. По моему там ошибка из-за которой программа не работает.Ошибка состоит в том, что во фрагменте
a 7CFE
200E:7CFE DB 55,AA
200E:7E00
за адресом 7CFE следует адрес 7E00 хотя должен 7D00
В программе есть ссылки на адрес 7E00 я пробовал их исправить, но программа все-равно не работает.
Подкажите, пожалуйста, как сделать чтоб программа стала работать.

С ув.
Роберт



Вопрос отправлен: 12.06.2004, 21:21
Отправитель: Robert

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

Отвечает Стас

Здравствуйте, Robert!
Специально проверил - все работает.
Ты просто не правильно чтото набрал.
Что бы разобраться ты бы описал как именно не работает.
Ошибка когда после 7cfe у него идет 7e00 ни на что не влияет.
Менять в программе ничего не надо. Действительно, адрес по которому грузится бутсектор 7c00h + 200h (512 байт 1 сектор)=7e00h, где должна распологаться программа вывода сообщения Sector 2 на экран.
Так что это твоя ошибка.
Единственное что меня удивило это то что программа WB.COM на один раз. Попробовал и все. Забыл. Так зачем её вообще было писать, если можно было считать бут сектор, перенести код в него, изменить первый (7c00) JMP и записать его обратно на дискету не выходя из дебаггера несколькими командами...

Ответ отправлен: 13.06.2004, 22:07
Отправитель: Стас


 Вопрос № 5455

Пишу что-то подобное брутфорса, но с перебором ip адресов :)
Мне нужно сгенерить случайный ip. Хотел узнать - есть ли простой способ решения этой задачи?



Вопрос отправлен: 12.06.2004, 22:44
Отправитель: Zveryuga

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

Отвечает Стас

Добрый день, Zveryuga!
Алгоритмы получения случайного числа были здесь (в рассылке) совсем недавно.
Получаешь случайное DWORD и вперед! Готовый IP.
Токо вот есть правила по которым эти IP делаются...
Ну да это фигня! :)

Ответ отправлен: 13.06.2004, 12:35
Отправитель: Стас


 Вопрос № 5460

Здравствуйте! Нужно написать програмку, запрещающую запуск файлов (это и .txt, и .exe и вообще любые другие файлы, задающиеся пользователем). Как определить, что пользователь хочет просмотреть текстовый файл или запустить outlook? Как узнать, что пользователь хочет просмотреть содержимое папки? Ведь делается это как-то в FolderGuard и ему подобным программам! Если можно, то поподробнее пожалуйсто.



Вопрос отправлен: 14.06.2004, 16:41
Отправитель: GHopper (gh_trash@bk.ru)

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

Отвечает n0name

Приветствую Вас, GHopper!
Я бы предложил перехват API-функций.
Реализацию смотрите http://dragonteam.nm.ru/Docs/F_HideModule.htm

Ответ отправлен: 14.06.2004, 18:26
Отправитель: n0name


 Вопрос № 5461

Доброе время суток, уважаемый n0name. Я пишу по поводу вопроса № 5445, о win32api help.Спасибо, конечно, что ответил, но, там куда ты меня послал ничего нет.



Вопрос отправлен: 15.06.2004, 09:56
Отправитель: Арт

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

Отвечает n0name

Приветствую Вас, Арт!
Я к сожалению не сохранил текст твоего вопроса.
Напиши мне на мыло markamer@mail.ru

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


 Вопрос № 5462

Уважаемые эксперты. Подскажите принцип использования видеопамяти (для отображения графики) на Ассемблере под ДОС. Режим экрана 640*480 True color. Программа запускается под ДОС-расширитель DOS32A. Если можно поподробнее, например как этот режим (640*480*True color) установить способом, подходящим для большинства адаптеров SVGA, как вычислить адрес конкретного пикселя в памяти по известным координатам. Режим памяти - flat, использован DOS-расширитель.



Вопрос отправлен: 15.06.2004, 16:20
Отправитель: qawsed

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

Отвечает bocha

Доброе время суток, qawsed!
У Зубкова есть пример с подробными комментариями.

Ответ отправлен: 15.06.2004, 17:43
Отправитель: bocha


 Вопрос № 5464

Здравствуйте! Подскажите, пожалуйста, зачем регистр ebp используется для кадра стека, почему нельзя обойтись без него. Хотя бы в двух словах.



Вопрос отправлен: 15.06.2004, 20:04
Отправитель: Alexander

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

Отвечает Ayl

Здравствуйте, Alexander!
Почему нельзя? Можно. Если ты сам прогу пишешь на асме. А при использовании ЯВУ компилятор для процедур и функций формирует пролог и эпилог, локализуя используемые переменные. А так как для динамической поддержки локаций требуется динамическая же область памяти, то и используется аппаратный стек. А регистр bp (ebp) используется только потому, что он по умолчанию связан с сегментом стека, т.е. уменьшается размер программы и увеличивается скорость ее выполнения. В винде вызовы функций API также предполагают использование кадра стека.


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


Отвечает Стас

Доброе время суток, Alexander!
Почему невозможно? Можно и без него.
Но удобнее использовать кадр.

Ответ отправлен: 15.06.2004, 23:06
Отправитель: Стас


Отвечает bocha

Добрый день, Alexander!
Если функция не имет аргументов, не использует локальные переменные, то можно спокойно обойтись и без базы. В противном случае, в ebp мы сохраняем текущую вершину стека, и от нее отсчитываем аргуметы (ebp+) и локальные переменные (ebp-), выделяем при этом память под локальные переменные простым уменьшением вершины стека на нужное количество байт. Дальше нет необходимости отслеживать, сколько же байт выделено под стековые переменные, перед выходом из функции, восстанавливаем вершину стека простым mov ebp, esp; Можно конечно обойтись и без этого всего, но это уже форменный мазохизьм получится (вылезет геморой, jпа сплющится, разобъешь все пальцы и клаву, и в конце концов попадешь в Желтый дом из-за бессонных ночей, в течение которых пытался вычислить, на каком же уровне вложенности потерял вершину стека, и наконец начал бится головой о стену, после того, как понял, что потеря случилась совершенно в другой процедуре, а стена оказалась крепче, чем можно было предположить:).

Ответ отправлен: 16.06.2004, 00:45
Отправитель: bocha


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

Добрый день, Alexander!
Переключатель сегмента SS используется по умолчанию для EBP.
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 17.06.2004, 13:44
Отправитель: Евгений Иванов


 Вопрос № 5465

Доброго времени суток!
Объясните, пожалуйста, что такое нижняя память и почему ей выделяется 640Kb.
1.Она берется от физической оперативной памяти?
2.И что в ней хранится?
Хотя бы в двух словах, или ссылку киньте.
Большое спасибо, в том числе за предыдущие ответы!



Вопрос отправлен: 15.06.2004, 20:34
Отправитель: Alexander

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

Отвечает Ayl

Здравствуйте, Alexander!
Ноги растут от IBM PC и ее карты памяти.
Т.к. адресная шина процессоров Intel 8086/8088 была 20-разрядной, то с ее помощью можно было адресовать 1Мб памяти: от 00000 до FFFFF.
Так как вместе с ОЗУ надо было адресовать ПЗУ, то чтобы не усложнять схему ПЗУ отображалось на ОЗУ на старшие адреса, а именно на сегмент F000. Т.о. от общей памяти "откусывались" 64К для ПЗУ.
Сегмент E000 зарезервирован для дополнительный модулей ПЗУ.
Адреса от C8000 до DFFFF отводятся для загрузочных картриджей.
Видеопамять занимает адреса от A0000 до BFFFF.
Начиная с процессора 386 и MS DOS 5.0 неиспользуемая видеокартой и расширителями ПЗУ память между адресами A0000 и EFFFF может быть использована как UMB - Upper Memory Block.
Т.о., для ОЗУ остается пространство от 0 до 9FFFF, т.е. 640К.
Но эти 640К не полностью доступны для хранения программ. Во-первых, 1К памяти, начиная с адреса 0, отводится для хранения значений 256 векторов прерываний (4 байта на каждое прерывание). 256 байт за таблицей векторов занимает область данных BIOS.
При работе под DOS сразу же за областью переменных BIOS располагаются переменные DOS, IO.SYS, API DOS, буфера и драйверы устройств для DOS, резидентная часть COMMAND.COM. Далее находятся резидентные программы, загружаемые из файлов CONFIG.SYS и AUTOEXEC.BAT. И только после них находится область, доступная для запуска программ.


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


Отвечает n0name

Добрый день, Alexander!
640 - макс колво оперативной памяти, которое может использоваться в реальном режиме. Это обычная оперативка.

Ответ отправлен: 15.06.2004, 20:55
Отправитель: n0name


Отвечает Стас

Добрый день, Alexander!
Когда-то, давным давно, процессор 8086 мог адресовать всего 1024K байта, т.е. адреса были 20 битными. Тогда умные люди думали что больше никогда не будет, да и не надо никому. Вот и придумали архитектуру PC когда первые 640K отводятся для программ, а после 640K шла видео память, потом разные прибамбасы, и БИОС. Потом эти люди поняли свою ошибку, но было уже поздно. И тогда назвали они эту память нижней. А в верхней разместили еще кучу лабуды вроде кадров для отображения кадров памяти, той, что больше 1Mбайта. UMB всякие и др. Вообщем примерно так...

Ответ отправлен: 15.06.2004, 23:26
Отправитель: Стас



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

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

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

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (22)
C / C++ (12)
Perl (1)
Builder / Delphi (15)
Pascal (21)
Basic / VBA (4)
Java / JavaScript (4)
PHP (13)
Криптография (9)
WinAPI (11)
Радиоэлектроника (9)
Пользователю
Windows 95/98/Me (36)
Windows NT/2000/XP (51)
"Железо" (30)
Поиск информации (14)
Администратору
Windows NT/2000/XP (29)
Linux / Unix (12)
Юристу
Гражданское право (12)
Семейное право (8)
Трудовое право (10)
КоАП (7)

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




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


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


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


В избранное