Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 355
от 29.08.2002, 15:50
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 1126 Отправлено ответов: 3448 Активность: 306.2 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Sensey Статус: Профессиональный Общий рейтинг: 129.89 URL: Страничка рассылки Паскаля... Телефон: +38 (0572) 41-76-04 дом. [Подробней >>] |
Portnov Статус: Опытный Общий рейтинг: 121.64 URL: Один магнитогорский сайт - для тех, кто первый раз слышит про такой город.. [Подробней >>] |
Pablo Статус: Профессиональный Общий рейтинг: 131.86 URL: Моя страничка [Подробней >>] |
ASMодей Статус: Опытный Общий рейтинг: 126.92 [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 158.92 [Подробней >>] |
Igoryk Статус: Опытный Общий рейтинг: 113.76 URL: В помощь программисту [Подробней >>] |
LIFO Статус: Опытный Общий рейтинг: 138.99 Телефон: 8 01710 24758 [Подробней >>] |
Broken Sword Статус: Профессиональный Общий рейтинг: 136.03 URL: моя рассылка по Protected Mode [Подробней >>] |
Byter Статус: Доверительный Общий рейтинг: 130.65 [Подробней >>] |
SonicX Статус: Начальный Общий рейтинг: 120.89 [Подробней >>] |
Dark_Lord Статус: Профессиональный Общий рейтинг: 141.86 [Подробней >>] |
Топор Статус: Профессиональный Общий рейтинг: 117.51 URL: Хорошая Русская Металлическая команда Телефон: (8462)500298 [Подробней >>] |
kvINT Статус: Опытный Общий рейтинг: 110.59 [Подробней >>] |
ARDoS Статус: Доверительный Общий рейтинг: 105.57 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 1077. Как на асме под виндой (и не тока) прочитать S.M.A.R.T. информацию винта?... (ответов: 1)
Вопрос № 1078. Здравствуйте, уважаемые эксперты. API функция LoadLibrary возвращает в AX значение 5. Объясните, пож... (ответов: 4)
Вопрос № 1079. Всем привет! Как мне "прыгнуть" на какой нибудь адрес. Например на 100h. Я делаю так: jmp... (ответов: 10)
Вопрос № 1080. Где можно найти самые начальные сведения о Assembler'е? Что такое регистры, как они работают для чег... (ответов: 8)
Вопрос № 1081. Здравствуйте, эксперты! Позвольте извиниться. У меня в TASM файла cfg вообще нет, а я вам вопросы ту... (ответов: 6)
Вопросов: 5, ответов: 29
Вопрос № 1077 |
Как на асме под виндой (и не тока) прочитать S.M.A.R.T. информацию винта?
Вопрос отправлен: 24.08.2002, 11:15
Отправитель: Priest
[Следующий вопрос >>] [Список вопросов]
Отвечает Sensey
Приветствую Вас, Priest!
Хочешь вышлю прогу, ты ее дизасемблишь и узнаешь?
Пиши sensey@ukr.net
Ответ отправлен: 27.08.2002, 09:54
Отправитель: Sensey
Вопрос № 1078 |
Здравствуйте, уважаемые эксперты.
API функция LoadLibrary возвращает в AX значение 5. Объясните, пожалуйста популярно "чайнику", что это за ошибка "попытка связать задачу" и при каких обстоятельствах она возникает?
Вопрос отправлен: 24.08.2002, 12:23
Отправитель: Denis (maximov_denis@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Portnov
Доброе время суток, Denis!
Ну да, если возвращаемое значение меньше 32, значит, ошибка, иначе - хэндл загруженной библиотеки. Какая ошибка - ну, например, не найдена нужная библиотека, или формат у нее не тот, или еще что... Скорее всего, в MSDN есть табличка кодов ошибок.
С уважением, Portnov.
Ответ отправлен: 24.08.2002, 15:44
Отправитель: Portnov
Отвечает Pablo
Добрый день, Denis!
Функция LoadLibrary возвражает идентификатор библиотеки, а при ошибке возвращает NULL. Чтоб получить код ошибки, которая возникла при загрузке библиотеки, нужно вызвать функцию GetLastError, которая и вернет код ошибки, а вот ошибка с кодом 5 это АФАЙК доступ запрещен, к чему уж у тебя там доступ запрещен я не знаю.
Ответ отправлен: 24.08.2002, 16:31
Отправитель: Pablo
Отвечает ASMодей
Доброе время суток, Denis!
С чего ты взял что это ошибка? Функция LoadLibrary в случае
ошибки возвращает 0.
Ответ отправлен: 25.08.2002, 09:08
Отправитель: ASMодей
Отвечает masquer
Приветствую Вас, Denis!
В МСДН написано:
If the function succeeds, the return value is a handle to the module
т.е. в еах у тебя будет module handle (на русский сам переводи). А ошибку пожалуйста по английски пиши.
Ответ отправлен: 24.08.2002, 12:43
Отправитель: masquer
Вопрос № 1079 |
Всем привет!
Как мне "прыгнуть" на какой нибудь адрес. Например на 100h.
Я делаю так:
jmp 100h
Но не чего не выходит. У меня получается прыгать только на метки. А на ареса не умею...Помогите!!!
PS
В асме я чайник.Так что извините если что не так скажу.
Приложение:
Вопрос отправлен: 24.08.2002, 21:34
Отправитель: R@ptor (Spinosaur@narod.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Portnov
Доброе время суток, R@ptor!
Недопонял. Что значит "выходит только jmp start". В смысле jmp 100h tasm/masm не понимает? Тогда кодируйте непосредственно, через db опкод, или берите с меня пример, выкидывайте tasm/masm, берите nasm. Или управление передается метке Start? Так у нее смещение и есть 100h, вы же сами написали прямо перед ней - org 100h.
C уважением, Portnov.
Ответ отправлен: 24.08.2002, 21:54
Отправитель: Portnov
Отвечает Igoryk
Здравствуйте, R@ptor!
При 'прыжке' следует учесть, что начальный адрес не 0, а 100h, т.е. если нужно прыгнуть на 20h от начала программы, то пиши так:
jmp 100h+20h
Осуществится переход на нужный адрес.
Ответ отправлен: 25.08.2002, 13:21
Отправитель: Igoryk
Отвечает LIFO
Приветствую Вас, R@ptor!
Брр...Давай вместе разбираться...
1. Метки в программе памяти не занимают (пастулат №1)
т.е. есть код:
org 100h
metka:
mov ax,offset metka
смотрим в дебуггере, что у нас теперь в ax адрес команды mov ax,offset metka - 100h!!!!
Как я помню, метки это директивы ассемблера,а не команды,облегчающие жизнь нам,чтобы не запутаться в адресах.
Поэтому jmp 100h и jmp metka (в моем случае)эквивалентны.
Как в твоем случае jmp 100h и jmp start.
Ну как,понятно?
Ответ отправлен: 25.08.2002, 13:23
Отправитель: LIFO
Отвечает masquer
Приветствую Вас, R@ptor!
Прыгнуть можно или относительно текущего положения, либо на значение, определяемое адресом или регистром
Ответ отправлен: 24.08.2002, 23:15
Отправитель: masquer
Отвечает Broken Sword
Добрый день, R@ptor!
вот понимаешь... почему тебя не удивляет, что компиллятор понимает инструкцию jmp ? int ? Ведь jmp - это EB, а INT - это CD...
Ведь если бы ты сам писал компиль, то мог бы называть все как угодно и через что угодно, главное - это конечный результат. Теперь, почему в ТАСМ-е и МАСМ-е нет такой возможности ? ну это уже спросить нада у разработчиков компилляторов, они посчитали, что все равно не найдется человека, который будет вручную высчитывать смещение, поэтому ДЛЯ нашего же с вами УДОБСТВА придумали метки, какой то синтаксис и т.п.
Это все к тому, что все ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ (как например в твоем случае, или там, инструкцию не понимает компиль какую то новую типа rdtsc) решаются однозначно - db XX ...
Понимаешь? Т.е. теперь тебе нада допустим jmp на 100h
ты и пишешь db 0EBh, XXh, где XX - относительное смещение относительно (каламбур) текущего адреса, т.е. ты короче сам того не осозновая усложняешь себе жизнь
Ответ отправлен: 24.08.2002, 23:28
Отправитель: Broken Sword
Отвечает Byter
Приветствую Вас, R@ptor!
Можно так:
...
jmp word ptr Adres
...
...
Adres dw 100h
Ответ отправлен: 25.08.2002, 17:03
Отправитель: Byter
Отвечает SonicX
Добрый день, R@ptor!
Можно прямым межсегментным переходом:
push cs ; кодовый сегмент
pop ax
mov seg,ax
mov ofs,100h ; или что угодно
db 0eah
ofs dw ?
seg dw ?
Ответ отправлен: 25.08.2002, 17:09
Отправитель: SonicX
Отвечает ASMодей
Приветствую Вас, R@ptor!
Прямой переход на адрес, к сожалению, не позволяют сделать
ни TASM ни MASM. Переход можно сделать так:
push 100h
ret
Ответ отправлен: 25.08.2002, 09:09
Отправитель: ASMодей
Отвечает Dark_Lord
Здравствуйте, R@ptor!
Компилятор не может прыгнуть на уже занятый меткой адрес, может это глюк!?
Ответ отправлен: 25.08.2002, 14:03
Отправитель: Dark_Lord
Отвечает Топор
Приветствую Вас, R@ptor!
Способ раз:
jmp near labl
labl dw 100h ; описать где-нибудь в данных, если com-файл
Способ два, более надёжный:
push 100h
retn
Ответ отправлен: 25.08.2002, 00:23
Отправитель: Топор
Вопрос № 1080 |
Где можно найти самые начальные сведения о Assembler'е?
Что такое регистры, как они работают для чего нужны? Ну в таком духе.
Заранее благодарен.
ToT
Вопрос отправлен: 25.08.2002, 08:50
Отправитель: ToT (tot_chip@fromru.com)
[Следующий вопрос >>] [Список вопросов]
Отвечает kvINT
Добрый день, ToT!
www.wasm.ru
цикл статей "Низкоуровневое программирование для дZенствующих". Начни со статьи "Введение в машинный код"
Ответ отправлен: 25.08.2002, 21:55
Отправитель: kvINT
Отвечает Igoryk
Добрый день, ToT!
На сайте www.kalashnikoff.ru В разделе Начинающим. Скоро нужную тебе информацию выложу и на своем сайте.
Ответ отправлен: 25.08.2002, 13:22
Отправитель: Igoryk
Отвечает LIFO
Здравствуйте, ToT!
hi-tech.nsys.by (там раньше рассылочка неплохая выходила)
kalashnikoff.ru (рассылка)
Ответ отправлен: 25.08.2002, 13:23
Отправитель: LIFO
Отвечает Byter
Добрый день, ToT!
В рассылки Калашникова.
В книге Зубкова."Ассемблер дла Windows,Dos и Unix"
Ответ отправлен: 25.08.2002, 16:21
Отправитель: Byter
Отвечает SonicX
Приветствую Вас, ToT!
Поищи поисковиками.
Ответ отправлен: 25.08.2002, 17:04
Отправитель: SonicX
Отвечает masquer
Приветствую Вас, ToT!
В книгах лучше всего. Посмотри предыдущие выпуски и выбери то что тебе подойдет.
Ответ отправлен: 25.08.2002, 09:37
Отправитель: masquer
Отвечает Dark_Lord
Приветствую Вас, ToT!
В книгах! В рассылке!
Ответ отправлен: 25.08.2002, 14:05
Отправитель: Dark_Lord
Отвечает ARDoS
Доброе время суток, ToT!
Купи себе любую книгу по АСме например Юрова"Ассемблер Учебник" или Пирогова"АССЕМБЛЕР", там это очень хорошо объясняется.
Ответ отправлен: 28.08.2002, 14:39
Отправитель: ARDoS
Вопрос № 1081 |
Здравствуйте, эксперты!
Позвольте извиниться. У меня в TASM файла cfg вообще нет, а я вам вопросы тупые задаю. Ладно.
1. Если не трудно киньте мне на мыло файл конфига для TASM!
Плииз!
Осбенно прошу Dark_Lord!!!
2. Подскажите пожалуйсто: Ломал CustomizerXP. Так когда я его "зарегистрировал" (ввсел пароль) - все ништяк,
но когда запускаю в следующий раз, то вылезает опять NAG с просьбой зарегистрировать.
Что это может быть???
С уважением X_a!ex (x_alex)
x_night@amur.ru
Вопрос отправлен: 25.08.2002, 15:48
Отправитель: x_alex (x_night@amur.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Igoryk
Добрый день, x_alex!
1. А зачем тебе cfg-файл. У меня его нет и программы нормально компилируются, а вот что касается tlink.cfg, то его содержание такое:
-DC: asmlib.
Ответ отправлен: 25.08.2002, 19:15
Отправитель: Igoryk
Отвечает LIFO
Доброе время суток, x_alex!
Не далил процедуру, кот. отвечает за это.
Ответ отправлен: 25.08.2002, 16:19
Отправитель: LIFO
Отвечает masquer
Добрый день, x_alex!
Недоломал значит. Проверок то несколько может быть, причем разных, а ты как думал?
Ответ отправлен: 25.08.2002, 17:05
Отправитель: masquer
Отвечает Dark_Lord
Приветствую Вас, x_alex!
Нету! Ну не знаю, может какой-то у тебя тасм другой, у меня файл tlink.cfg, и в нём:
-LC: asmin
, причём C: asmin, это где мой тасм и мои файлы компиляции!
Ответ отправлен: 25.08.2002, 20:01
Отправитель: Dark_Lord
Отвечает Portnov
Доброе время суток, x_alex!
1.CFG файл у Tasm'а - это, AFAIK, файл, в к-ром на каждой строке выписана опция командной строки. Т.е. если вы хотите ассемблировать всегда
tasm myprog.asm /x /z /iC:\asm\include,
но каждый раз вводить это лень, а вводить хочется просто tasm myprog.asm, то создаете в текущей директории файл tasm.cfg след. содержания:
-=Cut=-
/x
/z
/iC:\asm\include
-=Cut=-
и эти опции будут подставляться автоматически.
С уважением, Portnov.
Ответ отправлен: 26.08.2002, 14:23
Отправитель: Portnov
Отвечает Топор
Доброе время суток, x_alex!
Файл *.cfg для TASM(32).EXE и TLINK(32).EXE можно создать самому. В него просто забиваются часто используемые ключи, и в принципе можно всю командную строку туда засунуть. Если файл имеет имя, совпадающее с соответствующим транслятором или линкером, расширение cfg и лежит с ними в одной папке, то он открывается автоматически. Если нет, то его надо давать в командной строке с символом @, например:
tasm.exe @proga.ta (тогда расширение может быть и не cfg)
tlink.exe @proga.tl (те же яйца)
Ответ отправлен: 26.08.2002, 17:33
Отправитель: Топор
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "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 (30) "Железо" (39) Поиск информации (18) |
Администратору Windows NT/2000/XP (16) Linux / Unix (17) |
Юристу Гражданское право (9) Семейное право (7) Трудовое право (8) КоАП (5) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||