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

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


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

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

Выпуск № 300
от 25.06.2002, 19:00

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


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

Shal
Статус: Доверительный
Общий рейтинг: 105.5
[Подробней >>]
kvINT
Статус: Опытный
Общий рейтинг: 115.57
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 132.3
[Подробней >>]
 
igorash
Статус: Опытный
Общий рейтинг: 123.82
[Подробней >>]
Portnov
Статус: Опытный
Общий рейтинг: 160.2
[Подробней >>]
Guess Who
Статус: Доверительный
Общий рейтинг: 105.21
[Подробней >>]
 
Zloy
Статус: Доверительный
Общий рейтинг: 105.3
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 160.06
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 146.73
[Подробней >>]
 
Sensey
Статус: Профессиональный
Общий рейтинг: 144.33
Телефон: +38 (0572) 41-76-04 дом.
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 120.82
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]


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

Вопрос № 488. Уважаемые эксперты! спасибо всем вам. Теперь вопрос, прерывание 29, где найти описание ? Может быть ... (ответов: 6)
Вопрос № 490. Здравствуйте уважаемые эксперты! Это не вопрос, а скорее ответ читателю АлекСандр. Я прошу у... (ответов: 1)
Вопрос № 491. Не понимаю, почему все задают такие глупые вопросы по поводу ошибок в их программах,когда сам masm г... (ответов: 3)
Вопрос № 492. Уважаемые эксперты! Подскажите следующие: Как в софтайсе реализовать так называемую "Back trace... (ответов: 2)
Вопрос № 493. Эксперты! А где же взять этот TECH HELP ? У меня вот есть один "HELP". Под редакцией Абеля... (ответов: 5)
Вопрос № 494. спасибо экспертам:Портнов, Shal,Ayl,kvINT,Guess Who,Dark Lord, Vint by Shz. С вашей помощью преодоле... (ответов: 1)
Вопрос № 495. Здравствуйте X-перты! Огромная просьба - закидайте мой мэйл инфой о связи ASM'а с ЯВУ (а именно С). ... (ответов: 2)
Вопрос № 496. Вырожаю свою благодарность Экспертам "Beeblebrox" и "Alex" за ваши ответы и вним... (ответов: 1)
Вопрос № 497. Здравствуйте уважаемые эксперты. Хотел бы задать такой вопрос: как можно программно узнать на какое ... (ответов: 1)
Вопрос № 498. Доброе время суток ув. Эксперты! Хочу уточнить свой вопрос: мне не нужен MSDN и что-то типа asm ... (ответов: 2)
Вопрос № 499. Здравствуйте, господа Эксперты. Каким образом можно определить настройки прокси для данного пользова... (ответов: 2)

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


 Вопрос № 488

Уважаемые эксперты! спасибо всем вам.
Теперь вопрос, прерывание 29, где найти описание ?
Может быть кому нибудь не лень.
2.Команда shrd чем отличается от shr/У меня старый справочник Скэнлона, там этого нет.



Вопрос отправлен: 20.06.2002, 13:08
Отправитель: oleg

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

Отвечает Shal

Приветствую Вас, oleg!
1.int 29h- вывод символа из al.
2.shrd приемник, источник, счетчик-сдвиг повышенной точности вправо. Приемник сдвтгается вправо на число битов, указанное в счетчике. Старший бит не обнуляется, а считывается из источника. значение которог не изменяется.
3.shr-лочиче-й сдвиг вправо. Младший бит заносится в CF, все биты сдвигаются на 1 вправо, старший бит обнуляется.


Ответ отправлен: 20.06.2002, 19:08
Отправитель: Shal


Отвечает kvINT

Добрый день, oleg!
shrd - сдвиг вправо двойной точности.Входит в систему команд начиная с 386.
shrd операнд_1,операнд_2,счетчик_сдвигов
Команда производит замену путем сдвига битов операнда операнд_1 вправо, заполняя его биты слева значениями битов, вытесняемых из операнд_2. Количество сдвигаемых бит определяется значением счетчик_сдвига, диапазон 0...31. Оно или задается операндом счетчик_сдвига или должно содержаться в регистре cl. Значение операнд_2 не изменяется.


Ответ отправлен: 20.06.2002, 15:44
Отправитель: kvINT


Отвечает Ayl

Доброе время суток, oleg!
Ну типа, а чего его описывать? Выводит символ на экран. Символ задается в регистре al.
Отличается очень сильно. Во-первых, требует 3-х параметров - ячейку памяти (16-ти или 32-хразрядную), регистр соответствующего размера и количество сдвига либо CL.
Рассматривает регистр и содержимое памяти как одно 32-хразрадное или 64-разрядное число и выполняет сдвиг на соответствующее количество разрядов.
Скэнлон, разумеется, уже устарел. Пользуйся Tech Help...

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


Отвечает igorash

Добрый день, oleg!
1. Interrupt list
2. SHR - логический сдвиг вправо. Команда сдвигает биты
вправо, последний, младший, бит попадает во флаг переноса, а в
старший бит попадает ноль. Сдвиг на один разряд эквивалентен
деленению на два. Операнды такие же, как и в командах ротации.
Команда устанавливает по результатам операции флаги CF, PF, ZF
и SF, флаги AF и OF не определены.
SHRD (в процессоре 8086 отсутствует) - логический двойной
сдвиг вправо. Команда сдвигает биты вправо из одногоо регистра в
другой. Значение первого при этом не изменяется. Все
биты второго также сдвигаются вправо. Команда имеет три
операнда, два регистра или значения в памяти и величину сдвига.
Разрядности операндов равны, кроме величины сдвига. Команда
устанавливает по результатам операции флаги CF, PF, ZF и SF,
флаги AF и OF не определены.


Ответ отправлен: 21.06.2002, 18:07
Отправитель: igorash


Отвечает Portnov

Здравствуйте, oleg!
Пожалуйста...
1) Прерывание 29 или 29h? Int 29, или Int 1dh - это вообще не прерывание, по адресу, соотв. этому прерыванию в таблице векторов прерываний лежит указатель на область данных с видеопараметрами. А прерывание 29h выводит на экран символ из AL, с учетом некоторых управляющих кодов вроде 07 - звонок, 13,10 - CR,LF и т.п. Т.е. вместо
mov ah,2
mov dl,'X'
int 21h
можно писать
mov al,'X'
int 29h
Называется это почему-то "быстрый вывод". В TechHelp сказано, что это только чуть быстрее, чем если выводить на консоль через Handle Oriented I/O.
2) Это называется "Double precision shift".
SHRD dest,src,count (есть и SHLD)
Сдвигает dest на count бит вправо/влево, а в освободившиеся биты записываются а) при SHRD - младшие, б) при SHLD - старшие биты src. Например:
mov dx,1234h
mov ax,5678h
Теперь после SHRD dx,ax,4 будет dx=8123h,ax=5678h,
а после SHLD dx,ax,4 будет dx=2345h,ax=5678h.
С уважением, Portnov.

Ответ отправлен: 20.06.2002, 19:30
Отправитель: Portnov


Отвечает Guess Who

Добрый день, oleg!
1) Сейчас тебе 10 человек напишут, что все по прерываниям ищи в Ralf Brown's Interrupt List, юзай поисковик, сразу найдешь! Это на будущее, а так, это вывод символа из al на экран.
2)Команда sh(l,r)d - сдвиг повышенной точности влево,вправо.
Формат команды:
sh(l,r)d [приемник],[источник],[кол-во_сдвигов]
Приемник: 16 или 32 регистр или переменная в памяти этих же размеров.
Источник: 16 или 32 регистр только.
Кол-во сдвигов: непосредственное число(8 бит) или число в cl.
Флаг CF устанавливается равным последнему выдвинутому из приемника биту.

Ответ отправлен: 20.06.2002, 17:24
Отправитель: Guess Who


 Вопрос № 490

Здравствуйте уважаемые эксперты!
Это не вопрос, а скорее ответ читателю АлекСандр. Я прошу у него прощения, за то что отвечая на его вопрос, об электронном адресе В.И. Юрова, ввел его в заблуждение. Я не являюсь этим человеком.:) Я не могу ответить на его персональный вопрос в силу не понятных мне причин, отсутствует поле для ответа!:) Поэтому прошу отправить экспертов, это письмо в рассылку. Смотрите ПОДРОБНЕЙ чтоб десять раз не отвечать!
Спасибо за внимание.



Вопрос отправлен: 20.06.2002, 17:39
Отправитель: Guess Who

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

Отвечает Ayl

Добрый день, Guess Who!
Отправляю...

Ответ отправлен: 20.06.2002, 17:51
Отправитель: Ayl


 Вопрос № 491

Не понимаю, почему все задают такие глупые вопросы по поводу ошибок в их программах,когда сам masm говорит в какой строке ошибка, и намного интереснее самомму разобраться где напортачил...8)
Могу посоветовать блокнот Edit Plus 2,он как раз нумерует все строки...
А вообще хотелось бы выразить огромную благодарность всем занимающимся этим проектом...
ЗЫ:if ответите,пишите в латынице,у меня ящик глючит 8(
ЗЫЫ:Заранее спасибо!!!



Вопрос отправлен: 20.06.2002, 18:58
Отправитель: Darkheart (Darkheart@hotbox.ru)

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

Отвечает Zloy

Доброе время суток, Darkheart!
Obichno takie voprosi zadaiud te, kto ne znaem, chto takoe masm !!!!


Ответ отправлен: 20.06.2002, 20:32
Отправитель: Zloy


Отвечает igorash

Приветствую Вас, Darkheart!
polnostiu soglasen


Ответ отправлен: 21.06.2002, 18:04
Отправитель: igorash


Отвечает Portnov

Zdravstvuite, Darkheart!
Esli eto vopros, to ya ispanskij letchik! A za chto spasibo-to??

Ответ отправлен: 20.06.2002, 19:39
Отправитель: Portnov


 Вопрос № 492

Уважаемые эксперты! Подскажите следующие:
Как в софтайсе реализовать так называемую "Back trace"?
Перепробывал всё!И все документы перекопал, все хелпы, и память под етот сраный бак трейс увеличивал до 100кб а он всё своё , типа не бэк траёс симулятион моде, знаю што набив trace вываливает бэк траёс симулятион моде офф!А не знаю как сделать он.
Помогите кто чем может, очеееень надо..



Вопрос отправлен: 20.06.2002, 20:35
Отправитель: лёшка

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

Отвечает masquer

Здравствуйте, лёшка!
Насколько я знаю, оно на автомате работает, я уже с пяток лет в айсе работаю, никогда такого не видел. Пиши подробнее, что ты хочешь сделать. Туда просто история команд заноситься и все, по умоляанию 8кб на это дело выделяется.

Ответ отправлен: 21.06.2002, 18:31
Отправитель: masquer


Отвечает Broken Sword

Приветствую Вас, лёшка!
не гони, все пашет! жмешь -
TRACE b
(маленькая латинская "б" (буква :) )
но ОБЯЗАТЕЛЬНО (!) в буфе должна быть хотя б одна выполн. инструкция
Если не поможет - пиши brokensword@mail.ru разберемся

Ответ отправлен: 20.06.2002, 23:37
Отправитель: Broken Sword


 Вопрос № 493

Эксперты!
А где же взять этот TECH HELP ?
У меня вот есть один "HELP". Под редакцией Абеля, версия 1.2., это то что надо ? Или вы о другом Хелпе говорите. Потому что в Абелевском не было 29н.
Спасибо.



Вопрос отправлен: 20.06.2002, 22:30
Отправитель: Олег

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

Отвечает Guess Who

Добрый день, Олег!
Нет, который у тебя, он русский, а про который говорят - это английский и версия 6.0. Возьми его на сайте Артема Шегеды, там он точно был! И ищи, как я тебе уже сказал, Ralf Brown's Interrupt List.


Ответ отправлен: 20.06.2002, 23:03
Отправитель: Guess Who


Отвечает Shal

Приветствую Вас, Олег!
У меня есть хелпники. Но они на английском. Если тебя это устараивает, то пиши. Там есть ВСЕ!


Ответ отправлен: 21.06.2002, 07:47
Отправитель: Shal


Отвечает Portnov

Приветствую Вас, Олег!
Вот у меня лежит TechHelp версия 6. Я его взял на сайте нашего уважаемого Dron'а, asmdev.narod.ru - сейчас точно не помню, не то в разделе документации, не то разделе средств разработки. В общем посмотрите, должно там где-то быть.
С уважением, Portnov.

Ответ отправлен: 21.06.2002, 08:17
Отправитель: Portnov


Отвечает Sensey

Доброе время суток, Олег!
Ссылка


Ответ отправлен: 21.06.2002, 11:21
Отправитель: Sensey


Отвечает baldr

Доброе время суток, Олег!
TechHELP был на www.kalashnikoff.ru. Если там уже нет,
то посмотри на http://www.asm.al.ru/.
А что касается INT 29h, то вот выдержка из одного справочника:
=====================

INT 29 - внутреннее DOS 2+ - FAST PUTCHAR
- быстрый вывод символа -
AL = выводимый символ
Возвращает: ничего
Примечания: это прерывание вызывается изнутри программ вывода DOS если вывод
производится на устройство отличное от файла, и установлен 4 бит
слова атрибута драйвера устройства (10h).
COMMAND.COM v3.2 и v3.3 сравнивает вектор INT 29 с вектором INT 20
и считает что ANSI.SYS установлен если сегмент больше.
Драйвер по умолчанию под DOS 2.x и 3.x просто вызывает INT 10/AH=0Eh
Драйвер по умолчанию под DESQview 2.2 распознаёт последовательность
очистки экрана [2J, и вызывает INT 10/AH=0Eh во всех осталь-
ных случаях
Смотри: INT 79

=====================


Ответ отправлен: 23.06.2002, 00:49
Отправитель: baldr


 Вопрос № 494

спасибо экспертам:Портнов, Shal,Ayl,kvINT,Guess Who,Dark Lord, Vint by Shz.
С вашей помощью преодолен очередной барьер в познания матрицы!( гы-гы, над собой смеюсь)
Вообщем приятно, когда ты не один, и знаешь, что есть наод хооший, на котоый можно положиться!
Олег.



Вопрос отправлен: 20.06.2002, 22:39
Отправитель: Олег

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

Отвечает Portnov

Приветствую Вас, Олег!
Пожалуйста.
С уважением, Portnov.

Ответ отправлен: 21.06.2002, 08:18
Отправитель: Portnov


 Вопрос № 495

Здравствуйте X-перты!
Огромная просьба - закидайте мой мэйл инфой о связи ASM'а с ЯВУ (а именно С).
Спасибо.
bin



Вопрос отправлен: 21.06.2002, 05:51
Отправитель: bin (e002403@softhome.net)

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

Отвечает kvINT

Доброе время суток, bin!
Пару примеров из книги Юрова - смотри в ящике.

Ответ отправлен: 21.06.2002, 13:46
Отправитель: kvINT


Отвечает masquer

Здравствуйте, bin!
MSDN смотри по поводу С
например,
__asm
{
...
}

Ответ отправлен: 21.06.2002, 13:36
Отправитель: masquer


 Вопрос № 496

Вырожаю свою благодарность Экспертам "Beeblebrox" и "Alex" за ваши ответы и внимание.



Вопрос отправлен: 21.06.2002, 06:00
Отправитель: Рифат (abriofh@mail.ru)

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

Отвечает Portnov

Приветствую Вас, Рифат!
Видимо, я первый получил, отправляю в рассылку. Надеюсь, остальные жмут "Дополнительно".
С уважением, Portnov.

Ответ отправлен: 21.06.2002, 08:19
Отправитель: Portnov


 Вопрос № 497

Здравствуйте уважаемые эксперты.
Хотел бы задать такой вопрос: как можно программно узнать на какое физическое устройство ссылается какой-либо логический диск (OS-MSDOS)



Вопрос отправлен: 21.06.2002, 12:50
Отправитель: Dmitriy (PrihDmitriy@yandex.ru)

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

Отвечает Portnov

Доброе время суток, Dmitriy!
Вообще-то не очень, ясно, что значит "на какое устройство". Какую именно информацию об устройстве вы хотите получить? Ну да ладно. Есть такая ф-ция - 32h/Int21h. Позволяет узнать много чего о диске по его букве. Возвращает указатель на специальную структуру с данными о диске. Подрбности в TechHelp.
C уважением, Portnov.

Ответ отправлен: 22.06.2002, 17:05
Отправитель: Portnov


 Вопрос № 498

Доброе время суток ув. Эксперты!
Хочу уточнить свой вопрос: мне не нужен MSDN и что-то типа
asm {
...
}

Мне нужна инфа о вазове процедур на асме из С. Т.е. как все заносится в стек, как извлекается (порядок) и.т.д. Еще инфа о USES, ARG...
Спасибо эксперту kvINT за примеры, но (глупый вопрос) как их компилировать ? :)
P.S. Будут пирмеры - шлите не стесняйтесь



Вопрос отправлен: 21.06.2002, 17:44
Отправитель: bin (e002403@softhome.net)

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

Отвечает Ayl

Приветствую Вас, bin!
Ну, значит так.
Функции в Си могут иметь один из двух модификаторов - cdecl (по умолчанию) и pascal. Эти модификаторы отвечают за передачу параметров и состояние стека.
Если задан модификатор cdecl, то параметры помещаются в стек справа налево и функция не очищает стек.
Если используется модификатор pascal, то параметры помещаются слева направо и функция должна сама очищать стек.
Примеры - в приложении.
Про USES и ARG сейчас не скажу, так как нет под рукой справочника.

Приложение:

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


Отвечает kvINT

Доброе время суток, bin!
Для компилятора Borland C++:
Скопировать tasm.exe в каталог bin пакета Borland C++.
Запустить исходники на трансляцию командной строкой
bcc prg14_19.cpp prg14_20.asm. Получится prg14_19.exe.
Можно по шагам:
1. транслировать модуль C++, получить объектный
bcc -c prg14_19.cpp,
-c -выполняется только компиляция.
Получится prg14_19.obj.
2. транслировать пр-му на асме
tasm prg14_20,,,
3. объединить объектные модули
bcc -ms prg14_19.obj prg14_20.obj,
получится опять же prg14_19.exe.


Ответ отправлен: 22.06.2002, 13:46
Отправитель: kvINT


 Вопрос № 499

Здравствуйте, господа Эксперты.
Каким образом можно определить настройки прокси для данного пользователя/компьютера???



Вопрос отправлен: 21.06.2002, 18:53
Отправитель: Gibbel

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

Отвечает igorash

Добрый день, Gibbel!
Оффтопик, ваще-то.
В 9х винде -> свойства сети, tcp/ip-<сетевуха, через которую идет прокси> -> Шлюз -> пишешь ip-адрес прокси и жмешь добавить.
Еще в интернет експлорере нужно по-моему тогда в "соединение"-"установки локалки" тоже адреса и порты указать


Ответ отправлен: 21.06.2002, 20:10
Отправитель: igorash


Отвечает Shal

Здравствуйте, Gibbel!
В IE->сервис->св-ва обозревателя->подключение->настрокйка сети.


Ответ отправлен: 22.06.2002, 06:56
Отправитель: Shal



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

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

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




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

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


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

В избранное