Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 356
от 30.08.2002, 15:50
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 1141 Отправлено ответов: 3489 Активность: 305.7 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Broken Sword Статус: Профессиональный Общий рейтинг: 135.84 URL: моя рассылка по Protected Mode [Подробней >>] |
Byter Статус: Доверительный Общий рейтинг: 130 [Подробней >>] |
Pablo Статус: Профессиональный Общий рейтинг: 131.33 URL: Моя страничка [Подробней >>] |
LIFO Статус: Опытный Общий рейтинг: 137.61 Телефон: 8 01710 24758 [Подробней >>] |
Топор Статус: Профессиональный Общий рейтинг: 117.57 URL: Хорошая Русская Металлическая команда Телефон: (8462)500298 [Подробней >>] |
Dark_Lord Статус: Профессиональный Общий рейтинг: 141.83 [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 158.81 [Подробней >>] |
Sensey Статус: Профессиональный Общий рейтинг: 129.76 URL: Страничка рассылки Паскаля... Телефон: +38 (0572) 41-76-04 дом. [Подробней >>] |
Igoryk Статус: Опытный Общий рейтинг: 113.55 URL: В помощь программисту [Подробней >>] |
copycon Статус: Доверительный Общий рейтинг: 112.4 [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 119.77 [Подробней >>] |
Артём Шегеда Статус: Профессиональный Общий рейтинг: 119.3 URL: Пристанище неодинокого программиста [Подробней >>] |
Portnov Статус: Опытный Общий рейтинг: 121.55 URL: Мой сайтик... [Подробней >>] |
baldr Статус: Профессиональный Общий рейтинг: 116.86 URL: Сайт об ОС DOS. Всем, кто любит эту ОС! [Подробней >>] |
Andrey Статус: Начальный Общий рейтинг: 106.15 [Подробней >>] |
ARDoS Статус: Доверительный Общий рейтинг: 105.39 [Подробней >>] |
SonicX Статус: Доверительный Общий рейтинг: 118.98 [Подробней >>] |
Painbringer Статус: Профессиональный Общий рейтинг: 169.88 URL: Музычка, стишки и прочая дрянь [Подробней >>] |
kvINT Статус: Опытный Общий рейтинг: 110.41 [Подробней >>] |
Beeblebrox Статус: Профессиональный Общий рейтинг: 116.19 URL: Beeblebrox / TMA HomePage [Подробней >>] |
Shal Статус: Опытный Общий рейтинг: 107.48 [Подробней >>] |
nix Статус: Опытный Общий рейтинг: 112.23 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 1082. Hi all! Помогите разобраться с этой программой. А именно не понятно вот это: Init: mov ax,8899h in... (ответов: 4)
Вопрос № 1083. Уважаемые все! Заранее извиняюсь на возможную неуместность вопроса. Кто знает где сейчас живет рас... (ответов: 2)
Вопрос № 1086. Мир Вашему дому, уважаемый эксперт! Возникла проблема, надеюсь на помощь. Дано: 1. Запускается прило... (ответов: 3)
Вопрос № 1087. Доброго времени суток господа Эксперты Вы наверняка слышали о стресс тестах которые проводят после ... (ответов: 2)
Вопрос № 1088. Здравствуйте. В книге "Ассемблер? Это просто!Учимся программировать под MS-DOS (Том I)" оп... (ответов: 8)
Вопрос № 1090. Уважаемые эксперты, у меня небольшой вопрос. В стандартной поставке MASM32 есть каталог COM в которо... (ответов: 1)
Вопрос № 1091. Здравствуйте эксперты! Подскажите, как расстояние (например, длина линии на экране) в пикселях перев... (ответов: 8)
Вопрос № 1092. Добрый день уважаемые эксперты. Дополнение к "Вопрос № 1045" Запускаю SoftICE 4 в нем: bp... (ответов: 2)
Вопрос № 1093. Уважаемые эксперты, посоветуйте плз где в сети можно найти побольше инфы по написанию программ на яз... (ответов: 4)
Вопрос № 1094. Здравствуйте, эксперты! У меня к Вам вопрос: При "ассемблировании" файла его надо сначала ... (ответов: 12)
Вопросов: 10, ответов: 46
Вопрос № 1082 |
Hi all!
Помогите разобраться с этой программой.
А именно не понятно вот это:
Init:
mov ax,8899h
int 10h
cmp ax,9988h ; Тут проверка на повторную загрузку
jne Set_resident ; Если не 9988(т.е если не в памяти) то установить
mov ah,9
mov dx,offset In_memory
int 21h
ret
Set_resident:
........
Вроде всё ясно!
Int_10h_proc proc
pushf
cmp ax,8899h;Получается что если мы загружаем 1 раз(ax=8899),то не чего не загружается, ведь если ах=8899 то мы просто делаем 9988 и выходим, а резидент не чего не делает.По мойму должно быть всё наоборот т.е. не cmp ax,8899h а cmp ax,9988h.
jne Next_test
xchg ah,al
popf
iret
Next_test:
cmp ah,88h
jne Go_10h
..........
Мне сложно объяснить чего я не могу понять, сложно сформулировать.Так что прошу постарайтесь понять сказанное выше.
СПАСИБО!!!
Приложение:
Вопрос отправлен: 25.08.2002, 16:16
Отправитель: R@ptor (Spinosaur@narod.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Broken Sword
Здравствуйте, R@ptor!
Во-первых, давай разберемся с понятиями, потому как из твоих предложений видно что с этим проблемы: TSR-прога - это программа, которая останется в памяти ПОСЛЕ завершения. ТА ЧАСТЬ TSR-ПРОГРАММЫ (чаще всего - установочная), которая после выхода в памяти НЕ ОСТАНЕТСЯ, называется трансцендентной (transient), а вот тот кусок который ОСТАНЕТСЯ висеть в памяти и есть непосредственно РЕЗИДЕНТ.
Теперь следи за ходом мысли:
Мы запускаем наш TSR в первый раз. Что происходит?
mov ax,8899h
int 10h
Т.к. мы запускаем наш TSR В ПЕРВЫЙ РАЗ (!), то естественно менять местами ah и al некому, согласен? Стандартный обработчик int 10h такой ерундой не занимается. Т.е. после int 10h мы получим в ax ЧТО УГОДНО, только не 9988h, так?
Т.е. мы на выходе получили AX=БРЕД
Теперь смотри дальше:
cmp ax,9988h
или иначе говоря, cmp наш бред с 9988, естественно ->
jne Set_resident
В SET_RESIDENT перехватится int 10h, навесится уже на наш код и после int 27 (или чего там) останется висеть в памяти. Так?
Шаг номер два: ЗАПУСКАЕМ TSR ВО ВТОРОЙ (!) РАЗ !!!!
Смотри внимательно дальше! Опять все то же самое:
mov ax,8899h
int 10h
СТОП!!! Понмишь наш первый шаг? Тогда после int 10 выполнялся стандартный обработчик. А сейчас?? Ведь мы же перехватили int 10h на первом шаге, верно? Т.е. после int 10h управление передается уже не на стандартный, а на наш Int_10h_proc. СОГЛАСЕН?
СМОТРИ ДАЛЬШЕ:
pushf
cmp ax,8899h
РАВНО ? КОНЕЧНО РАВНО!!! Мы ведь сами только что сделали mov ax,8899h
jne Next_test ; никаких next_test!!! идем дальше по коду
xchg ah,al
МЕНЯЕМ ah и al
popf
iret
возвращаемся.... AX у нас теперь равно 9988 (следишь?) смотрим:
cmp ax,9988h
ДА !!! ВОТ ТЕПЕРЬ ОНИ РАВНЫ
jne Set_resident ; НИФИГА! ЗАЧЕМ ВТОРОЙ РАЗ ЕГО ВЕШАТЬ?
выведем сообщение, что прога уже в памяти
Теперь запусти TSR в третий, четвертый, .... двадцатый раз, и каждый раз все будет происходить в ТОЧНОСТИ, как на втором шаге (т.е. ВТОРОЙ РАЗ ОНА РЕЗИДЕНТОМ НЕ ЛЯЖЕТ!)
Теперь смотри, ты скажешь, так тогда int 10h вообще не будет работать, оно ведь только и делает что меняет ah и al местами, и больше ничего!!! На самом деле нет - посмотри ОЧЕНЬ внимательно на jne Next_test. НА самом деле, ВО ВСЕХ СЛУЧАЯХ, кроме нашего (когда int 10h вызывается в начале нашего TSR-а, или иными словами, когда AX НЕ РАВНО 8899h) будет происходить прыжок именно на Next_test...
Надеюсь, все вопросы отпали. Но если что - не стенсняйся, спрашивай еще, я могу еще более доступно это все повторить )
(хотя это уже будет тяжело сделать...)
Ответ отправлен: 25.08.2002, 19:41
Отправитель: Broken Sword
Отвечает Byter
Доброе время суток, R@ptor!
8899 это позывной
Его будет отправлять наи только наша программа,
а если нам его отправили,то мы ей отвечаем и выходим.
Представь :
Мы уже в памяти
Программа отправляет нам 8899
Мы проверяем на 9988(это как ты хочешь сделать)
Не отправляем программе ответ
И программа считает ,что нас в памяти нет ,и перезаписывает нас туда
Понял?:)
Ответ отправлен: 25.08.2002, 16:28
Отправитель: Byter
Отвечает Pablo
Доброе время суток, R@ptor!
Как раз все правильно, на входе значение ax является номером функции, а на выходе же значение в ax параметр по которому определяется евляется ли прога уже резидентом или нет.
Ответ отправлен: 27.08.2002, 21:43
Отправитель: Pablo
Отвечает LIFO
Доброе время суток, R@ptor!
Так...
Все по-порядку:
Init:
mov ax,8899h
int 10h
далее cmp ax,8899h , т.е. мы делаем проверку на установку, резидент сравнивает и престанавливает местами - мы в памяти.
В противном случае сравниваем только ah = 88 - вызов нашей новой функции, если да (al - все равно), то пишем 'моя строка' если же эти два случая не подошли , то отдаем управление real int 10h...
Ну, алгоритм понятен (посмотри в отладчике обязательно - все станет на свои места, зайди внутрь нашего обработчика с разными значениями ax)
Ответ отправлен: 28.08.2002, 10:46
Отправитель: LIFO
Вопрос № 1083 |
Уважаемые все! Заранее извиняюсь на возможную неуместность вопроса. Кто знает где сейчас живет рассылка rtfm_helpers? Поисковики ведут на yahoogroups, в то время как поиск по группаи ее не находит. Пробовал RTFM_helpers-subscribe@yahoogroups.com, но в ответ тишина, а вдоль дороги мертвые с косами стоять....
Поможите плиз кто может.
Крайне обязан
Саня.
Вопрос отправлен: 25.08.2002, 16:25
Отправитель: Саня
[Следующий вопрос >>] [Список вопросов]
Отвечает Broken Sword
Приветствую Вас, Саня!
www.wasm.ru
(rtfm_helpers@wasm.ru)
Ответ отправлен: 25.08.2002, 19:41
Отправитель: Broken Sword
Отвечает LIFO
Здравствуйте, Саня!
Я подписывался где-то в начале лета через сайт
hi-tech.nsys.by
Ответ отправлен: 27.08.2002, 11:39
Отправитель: LIFO
Вопрос № 1086 |
Мир Вашему дому, уважаемый эксперт!
Возникла проблема, надеюсь на помощь.
Дано:
1. Запускается приложение, при этом, естественно создаётся процесс и принадлежащий ему поток. Назовём этот поток потоком А.
2. Приложение создаёт ещё один поток (Поток В). В этом потоке создаются одно или несколько окон.
3. В конце концов, поток В завершает работу и при этом уничтожает все принадлежащие ему (созданные им) окна («Я тебя породил, я тебя и убью». Тарас Бульба нашёлся!).
Надо:
Чтобы при завершении потока В окна созданные им не уничтожались и продолжали нормально функционировать.
(Как вариант решения: может можно как-то переназначить поток-владельца окна от потока В к потоку А?)
Вопрос отправлен: 25.08.2002, 20:35
Отправитель: ЗасЛанец
[Следующий вопрос >>] [Список вопросов]
Отвечает Топор
Здравствуйте, ЗасЛанец!
Вообще-то, насколько я знаю, в процедуру создания окна надо вручную передавать идентификатор процесса-родителя. Если он нулевой, то это окно вроде должно быть самостоятельным. В вопросе не копался, могу быть и не прав.
Ответ отправлен: 26.08.2002, 17:16
Отправитель: Топор
Отвечает Dark_Lord
Доброе время суток, ЗасЛанец!
Ты попробуй для окон отдельный тред(thred) сделать, у них нет потока породитель, они как-бы независими.
З.ы. только потом удалить их не забудь, ато работать будут до-о-олго!
Ответ отправлен: 25.08.2002, 20:44
Отправитель: Dark_Lord
Отвечает masquer
Приветствую Вас, ЗасЛанец!
Неполучится, при выходе из потока освобождаются все хуки и окна, им созданные.
Создавай окна в потоке А, а в поток В передавай описатель. Можно критическими секциями воспользоваться, если доступ из нескольких потоков будет.
Ответ отправлен: 25.08.2002, 21:12
Отправитель: masquer
Вопрос № 1087 |
Доброго времени суток господа Эксперты
Вы наверняка слышали о стресс тестах которые проводят после оверлокинга компов, для проверки стабильности. Так вот вопрос, чего стрессового эти проги(тесты) делают?
Вопрос отправлен: 25.08.2002, 21:24
Отправитель: Евгений
[Следующий вопрос >>] [Список вопросов]
Отвечает Dark_Lord
Добрый день, Евгений!
Юзают CPU или память на полную мощность (100%) в течении какого-то времени, если всё ОК, то система стабильно!
Просто интересно, при чём тут рассылка по ассемблеру?!
Ответ отправлен: 25.08.2002, 21:36
Отправитель: Dark_Lord
Отвечает Sensey
Приветствую Вас, Евгений!
Ну я например запускаю Q3 Demo - для нагрузки видео и заодно в фоне батничком архивирую каталог виндовс, удаляю архив и по новой :)
То есть нагружаю все что можно...
Для проверки памяти есть неплохая прога на сайте Артема Шегеды shegeda.chat.ru
Ответ отправлен: 27.08.2002, 10:01
Отправитель: Sensey
Вопрос № 1088 |
Здравствуйте. В книге "Ассемблер? Это просто!Учимся программировать под MS-DOS (Том I)" описана функция 09h прерывания 21h. Почему написано, что на выходе функции "ничего"? Если посмотреть её работу в отладчике, то при выходе из функции в AL заносится последний символ строки, т.е. $(24h).
Вопрос отправлен: 25.08.2002, 23:24
Отправитель: Sergei
[Следующий вопрос >>] [Список вопросов]
Отвечает Топор
Доброе время суток, Sergei!
А у Зубкова, например, так и написано - по документации ничего, а на деле - последний символ.
Ответ отправлен: 26.08.2002, 17:12
Отправитель: Топор
Отвечает Byter
Приветствую Вас, Sergei!
Возможно прерывание при выводе строки использует регистр al,
не очищая его после работы.
А может это сделано специально.
Ответ отправлен: 26.08.2002, 16:20
Отправитель: Byter
Отвечает Igoryk
Добрый день, Sergei!
Все дело в том, что автор книги считает ненужным считывать регистр AX, раз после такой операции он равен 24h. Но в книге Зубкова это уже подмечено.
Ответ отправлен: 27.08.2002, 12:41
Отправитель: Igoryk
Отвечает Pablo
Приветствую Вас, Sergei!
А написано так потому, чтобы программст не забивал себе всякой ерудндой голову, в этом коде так, в другом коде по другому. То есть наверное лучше бы написать было бы out: al - destroyed.
Ответ отправлен: 26.08.2002, 13:15
Отправитель: Pablo
Отвечает Broken Sword
Приветствую Вас, Sergei!
Это согласно официальной документации так
p.s. де ты взял эту книгу?
Ответ отправлен: 26.08.2002, 12:17
Отправитель: Broken Sword
Отвечает copycon
Здравствуйте, Sergei!
А енто уже недокументированная фича :)))
Удачи.
Ответ отправлен: 26.08.2002, 00:12
Отправитель: copycon
Отвечает Dark_Lord
Доброе время суток, Sergei!
Потому что в этой книги автор поступил умно и не стал недокументированные вещи писать. Да, ты прав, всё время возвращается последний записанный символ, который всегда равен $, но мелкософт об этом официально не заявлял, тоесть может взять да убрать, поэтому лучше это не использовать!
Ответ отправлен: 26.08.2002, 00:41
Отправитель: Dark_Lord
Отвечает Ayl
Добрый день, Sergei!
Да, есть такая вещь, что помешало мне однажды с оптимизацией :-) А идет, видимо, из документации Microsoft Corp. Причем дублируется во всех справочниках, даже в Tech Help, хотя там наиболее достоверная инфа собрана.
Хотя на самом деле это большая подстава. И не только с этой функцией, я еще несколько раз наталкивался, что изменяются регистры, которые не должны этого делать, согласно документации.
Писали бы, что ли, modified...
Ответ отправлен: 26.08.2002, 02:31
Отправитель: Ayl
Вопрос № 1090 |
Уважаемые эксперты, у меня небольшой вопрос.
В стандартной поставке MASM32 есть каталог COM в котором
есть архив, после его разархивирования имеем ряд каталогов с
расказами об работе с Component Object Model , то есть COM объектами.
там каталог BIN содержит *.BAT файлы для примеров из катклога
EXAMPLES, в котором есть каталог MYCOM, это пример библиотеки
содержащей COM объект. Пример кампилируется файлом BLDDLL.BAT,
получается нормальный DLL файл всем хорош для ассемблера.
Но там же в каталоге TESTAPP есть пример использования этой
библиотеки (MyCom.DLL) в визуал бейсике, а для него при создании
библиотеки (или после её создания) набо создавать файл с
расширением *.TLB (mycom.tlb), он есть в исходном примере,
но при использовании BLDDLL.BAT не создаётся.
При создании аналогичных библиотек в визуал С++ этот библиотечный
файл *TLB создается автоматически, там для этого есть ещё и файл MKTYPLIB.EXE.
И вот вопрос в том как его создать в MASM32, что для этого надо?
Ведь как-то же его создают, раз он есть в этом примере?
Вопрос отправлен: 26.08.2002, 04:23
Отправитель: Kostik (mks@norcom.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Добрый день, Kostik!
Посмотри внимательней, там есть idl файлы, которые с помощью midl.exe компилируются в tlb. Правда, сам midl.exe в пакет не входит, его из визуал студии взять можно.
Ответ отправлен: 26.08.2002, 09:55
Отправитель: masquer
Вопрос № 1091 |
Здравствуйте эксперты!
Подскажите, как расстояние (например, длина линии на экране) в пикселях перевести в миллиметры (см, м, км).
Вопрос отправлен: 26.08.2002, 08:32
Отправитель: EraSer (eraser99@tut.by)
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Добрый день, EraSer!
Разрешение экрана 72 точки на дюйм. От этого и отталкивайся.
Ответ отправлен: 26.08.2002, 09:58
Отправитель: masquer
Отвечает Sensey
Доброе время суток, EraSer!
:)
Ну возми линейку, померяй размер экрана в мм(у меня 285), при разрешении в 1024 пикселя по ширине получаем
1 пиксел == 285:1024=0.278 мм
:)
Ответ отправлен: 27.08.2002, 10:04
Отправитель: Sensey
Отвечает Byter
Доброе время суток, EraSer!
Зависит от разрешения монитора!
Ответ отправлен: 26.08.2002, 16:27
Отправитель: Byter
Отвечает Артём Шегеда
Здравствуйте, EraSer!
Если это программа для DOS, то ничего более умного я уже не посоветую.
Если это программа для Windows, то...
Мерять линейкой длину отрезка на мониторе - это, конечно, интересное занятие (особенно если расчитывать, что программа работает на 10,20,...,1000 различных типах мониторов с разными разрешениями). Но по-моему, лучше вызвать функцию GetDeviceCaps, передав в качестве первого параметра 0, а в качестве второго - LOGPIXELSX (или LOGPIXELSY - для режимов с "квадратными" пикселами они будут равны). Возвращаемый результат - количество точек в дюйме. Дели на 2.54 - будет количество точек в сантиметре.
Ответ отправлен: 26.08.2002, 16:29
Отправитель: Артём Шегеда
Отвечает Portnov
Доброе время суток, EraSer!
Ну, знаете ли...
Скажем, вот с моим монитором. max.разрешение 1280х1024, зерно 0.21mm. Если разрешение именно такое, то pixel==зерно. Т.о., 1px=0.21mm. Сможете отсюда чего надо посчитать? При этом учитывайте, что зерно у каждого монитора свое. И еще, при других разрешениях pixel!=зерно, напр., 800х600: 1280/800=1.6 => 1px=0.21mm*1.6=0.336mm.
C уважением, Portnov.
Ответ отправлен: 26.08.2002, 14:39
Отправитель: Portnov
Отвечает Pablo
Здравствуйте, EraSer!
Ответ отправлен: 26.08.2002, 12:34
Отправитель: Pablo
Отвечает baldr
Здравствуйте, EraSer!
Вообще-то это зависит от разрешения экрана.
Попробуй при известном разрешении вывести на экран линию в 100-500 пикселов и померить линейкой. Там вычисли коэффициент величины пиксела относительно разрешения (во сказал!) и считай.
Ответ отправлен: 26.08.2002, 12:25
Отправитель: baldr
Отвечает copycon
Доброе время суток, EraSer!
Для этого сначало надо узнать коэфицент перевода конкретно для этого монитора/разрешения.
Если монитор P&P может он и сам сможет расказать.
Хотя разные проги (CorelDraw) заставляют пользователя самому с линеечкой экран мерять :)
Удачи.
Ответ отправлен: 28.08.2002, 19:50
Отправитель: copycon
Вопрос № 1092 |
Добрый день уважаемые эксперты.
Дополнение к "Вопрос № 1045"
Запускаю SoftICE 4 в нем:
bpx MessageBoxA
bl
00) bpx User32!MessageBoxA
То есть точку останова он поставил правильно. Далее, создаю простейший проект на Delphi 5. На форму ложу одну кнопку в OnClick кнопки прописываю следующий код
procedure TForm1.Button1Click(Sender: TObject);
begin
Windows.MessageBoxA(Handle, '1111', 'aaaaaa', 1);
end;
Компилирую и запускаю проект. Жму кнопку. Результат НОЛЬ, точка останова не срабатывает. Если устанавливаю BreakPoint на CreateWindowExA или на GetProcAddress то все работает отлично. В чем может быть причина такого странного поведения SoftICE’а?
Версия SoftICE: SoftICE (R) – DriverStudio (tm) 2.5.0 (Build 240)
Устанавливал только SoftICE (и патч для него под WinXP)
OS: Windows XP
Вопрос отправлен: 26.08.2002, 09:48
Отправитель: Green (zelenin_ve@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Добрый день, Green!
Пробуй
MessageBeep, MessageBoxIndirectA, MessageBoxExA
Ответ отправлен: 26.08.2002, 10:12
Отправитель: masquer
Отвечает Broken Sword
Приветствую Вас, Green!
Во-первых, никакого патча не нужно, 150 раз писалось про DS 2.6, а во вторых - в момент написания bpx messageboxa ты должен находится в адресном пр-ве проги. Смотри как это делается:
Запускаешь SI, держишь уже наготове свою прогу на дельфях (чтоб одним кликом ее сразу же и запустить). Жмешь ctrl+D, вводишь bpx loadlibrarya
F5
СРАЗУ же запускаешь свою прогу (это к тому, чтоб ты не шарил в ее поисках по всему винту, т.к. SI будет брякаться практически при каждом открытии папки). Вообщем, прога у тебя была уже выделена, ты жмешь просто enter и оказываешься в SI (loadlibrarya в myprogram.exe)
Теперь жмешь F12, затем bc*, и вот только теперь можно делать bpx messageboxa. Громоздко? Да, но по другому без SL не получится (SL - это Symbol Loader)
Ответ отправлен: 26.08.2002, 12:17
Отправитель: Broken Sword
Вопрос № 1093 |
Уважаемые эксперты, посоветуйте плз где в сети можно найти
побольше инфы по написанию программ на языке ассемблера
под Linux/Unix. В тех книгах по асму, которые я видел в
продаже (в С-Петербурге), этот вопрос если и освещается
то очень поверхностно. Хотелось бы в идеале, чего-нибудь
последовательное, с примерами... TIA
Вопрос отправлен: 26.08.2002, 10:58
Отправитель: Evasive
[Следующий вопрос >>] [Список вопросов]
Отвечает Byter
Добрый день, Evasive!
Есть книга Зубкова "Ассемблер для Windows,Dos и Unix",
но ее нет в цифровом виде.
Ответ отправлен: 26.08.2002, 16:31
Отправитель: Byter
Отвечает Andrey
Здравствуйте, Evasive!
Ничего суперского в инете и книгах не найдете, все из-за того, что большинство программистов под Unix относятся к ASM как к средству понижения переносимости программ. Однако есть несколько сайтов, один из них http://www.linuxassembly.org/. Зайдите также на страницу компилятора NASM http://www.cryogen.com/Nasm/, ну а дальше везде по ссылкам.
Ответ отправлен: 27.08.2002, 14:50
Отправитель: Andrey
Отвечает LIFO
Приветствую Вас, Evasive!
Таких полноценных книг нету ( я не видел ).
В Зубкове посмотри...
Ответ отправлен: 28.08.2002, 10:46
Отправитель: LIFO
Отвечает ARDoS
Доброе время суток, Evasive!
Недавно этот вопрос задавали.
http://www.sourceforge.net
http://www.geocities.com/SiliconValley/Ridge/2544/asm/assembler.html
http://www.lcs-chemie.de/assemb.htm
http://www.tizek.com/tutorials/linuxasm.htm
http://www.linuxassembly.org/
http://home.od.ua/~blackw
http://www.ibiblio.org/pub/Linux/docs/
http://www.citforum.ru
http://dkws.narod.ru
http://www.linuxoid.ru
http://www.kylixportal.chat.ru
http://linux.itsoft.ru
http://www.linux.org.ru
Ответ отправлен: 28.08.2002, 14:40
Отправитель: ARDoS
Вопрос № 1094 |
Здравствуйте, эксперты!
У меня к Вам вопрос: При "ассемблировании" файла его надо сначала Linkовать, а
затем Tasmить?. Напишите мне алгоритм "ассемблирования" файла.
Заранее спасибо.
x_night@amur.ru
Вопрос отправлен: 26.08.2002, 14:53
Отправитель: x (x_night@amur.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает SonicX
Доброе время суток, x!
Например у тебя файл prog.asm:
1)tasm prog
Если файл без ошибок у тебя будет prog.obj
2)tlink prog /tdc
У тебя получается файл prog.com
Ответ отправлен: 27.08.2002, 19:29
Отправитель: SonicX
Отвечает Portnov
Добрый день, x!
Наоборот.
tasm myprog.asm
tlink myprog.obj, если еще поставить /t - будет создан com-файд, а так - exe.
С уважением, Portnov.
Ответ отправлен: 26.08.2002, 17:44
Отправитель: Portnov
Отвечает Painbringer
Доброе время суток, x!
вообще то наоборот.....
Ответ отправлен: 26.08.2002, 18:22
Отправитель: Painbringer
Отвечает Byter
Здравствуйте, x!
Смотри мыло.
Ответ отправлен: 26.08.2002, 16:32
Отправитель: Byter
Отвечает Топор
Доброе время суток, x!
tasm.exe [ключи] proga.asm,,,
Если не было синтаксических ошибок, на выходе будет proga.obj
tlink.exe [ключи] proga.obj
На выходе будет proga.exe, или, если у тлинкера в ключах было /t и соблюдены некоторые условия, proga.com
Ответ отправлен: 26.08.2002, 16:58
Отправитель: Топор
Отвечает kvINT
Доброе время суток, x!
Как раз наоборот.
Ответ отправлен: 26.08.2002, 17:57
Отправитель: kvINT
Отвечает masquer
Доброе время суток, x!
Только наоборот - снача компилятор идет, а потом линкер.
Ага, щаз!!! Алгоритм напишите...
Если так уж хочется Фасм в исходниках идет, бери, разбирайся.
Ответ отправлен: 26.08.2002, 15:35
Отправитель: masquer
Отвечает Beeblebrox
Здравствуйте, x!
Для ассемблирования файла достаточно его просто ассемблировать, то есть tasmить
В результате получается объектный файл, который при желании можно слинковать линкером и получить исполняемый файл (com или exe)
Ответ отправлен: 26.08.2002, 16:14
Отправитель: Beeblebrox
Отвечает LIFO
Приветствую Вас, x!
Нет, сначала тасмить, потом линковать.
Алгоритмы задрало писать по сто раз, скачай 1-ые выпуски рассылки Олега.
Ответ отправлен: 28.08.2002, 10:43
Отправитель: LIFO
Отвечает Shal
Здравствуйте, x!
tasm.exe file.asm
tlink.exe file.obj
Ответ отправлен: 28.08.2002, 00:28
Отправитель: Shal
Отвечает ARDoS
Здравствуйте, x!
Наоборот сначала tasm'ить, а потом link'овать
Пример:1)ЭТО БУДЕТ EXE
tasm proga.asm
link proga.obj
2)А ЭТО БУДЕТ СОМ
tasm proga.asm
link /t proga.obj
3)А ЭТО БУДЕТ EXE для WINDOWS с подключением файла ресурсов
brcc32 proga
tasm32 /ml proga
tlink32 /Tpe /aa /c /x proga,,,,,proga.res
Ответ отправлен: 28.08.2002, 14:40
Отправитель: ARDoS
Отвечает nix
Добрый день, x!
Ассембле транслирует исходный текст в машинный код, а линковщик подправляет в нем адресацию.(на сколько я знаю) Если енто не так, то пусть меня поправит действительно знающий человек:-)))
Ответ отправлен: 30.08.2002, 14:31
Отправитель: nix
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
© 2002 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (40) C / C++ (29) Perl (12) Delphi (16) Pascal (26) Basic / VBA (11) Java / JavaScript (13) PHP (11) MySQL / MSSQL (13) |
Пользователю Windows 95/98/Me (45) Windows NT/2000/XP (31) "Железо" (40) Поиск информации (18) |
Администратору Windows NT/2000/XP (16) Linux / Unix (17) |
Юристу Гражданское право (9) Семейное право (7) Трудовое право (8) КоАП (5) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||