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

Ассемблер? Это просто! Учимся программировать (FAQ)


Служба Рассылок Subscribe.Ru

"Ассемблер? Это просто! Учимся программировать (FAQ)"

Выпуск № 210
от 09.03.2002, 02:05

Администратор: Калашников Олег
Сайт Администратора: Программирование на Ассемблере


Старейшины рассылки
(по состоянию на 09.03.2002, 02:05)

1. Broken Sword - ответов: 378.
2. Painbringer (нечто наподобие домашней страницы) - ответов: 368.
3. Sensey - ответов: 319.
4. Dron (Операционная система с нуля!) - ответов: 260.
5. DiGiT - ответов: 255.



 Вопрос № 99

Привет! Такая фишка : мне очень нужны
компаньены для создания игры ( автосимулятор) и знающие
С++. Подскажите плиз куда даются подобные объявления.

Буду благодарен за любые ссылки!!!

Отправитель: Stanley (mikt@bk.ru)
Вопрос отправлен: 04.03.2002, 07:51
Подгруппа: Пользовательская работа с Windows

_______________

Отвечает змей
Приветствую Вас, Stanley!
Поищи в инете, там валом всяких форумов....


Отправлено: 04.03.2002, 08:49
Отправитель: змей (регистрация: 28/12/2001, ответов на счету: 222)




 Вопрос № 100

Здрасте. Я тут поставил Opera 6.0 - результат вы можете видеть в FAQ #205 ;) Чо то формы обрабатывает она слишком хренового, а как только нажимаю в последней стадии "Отправить" - ноль внимания , хотя вопрос действительно отправлен и даже не один раз =) Что мне с этим делать, тем более, я вижу , что я здесь не один такой =) Как можно это исправить и исправлено ли это в Opera 6.01 ?
А пока я отправляю Opera, как говорят в одной попсовой передачке, В ОСТОЙ!!! =)
Второй вопрос (теперь уже про IE) - страница(обычно большая) грузится-грузится, грузится-грузится и вдруг не с того не сего загрузка прекращается. Я конечно понимаю, что скорость низкая, но... Опера такие опусы не дает (честь ей и хвала теперь :). Работает это дело в связке с Naviscope 8.7 .

Отправитель: Эксперт DivX
Вопрос отправлен: 04.03.2002, 08:13
Подгруппа: Пользовательская работа с Windows

_______________

Отвечает Volk
The bat! Поставь!
http://www.ritlabs.com/the_bat/


Отправлено: 04.03.2002, 10:48
Отправитель: Volk (регистрация: 12/01/2002, ответов на счету: 8)
Тел.: 8612 618553
Россия, Краснодар

_______________

Отвечает baldr
Добрый день, DivX!

У меня Opera 6.0. Формы обрабатывает прекрасно... Вопросы-ответы - отправляет...
Может, у тебя отключены popup-окна - они используются в НАШИХ :) формах? Тогда все понятно...
А вообще, использовать Оперу вместе с Навископом? :(( Не лучший способ... Я как-то экспериментировал,
так я от него отказался... С ИЕ - да, надо, а с Оперой не стоит... А насчет этого глюка в ИЕ,
так может, там что-нибудь вроде timeout, или еще что-нибудь?
Кстати, в Опере отстойно сделана работа с почтой... Лучше тхеБат...


Отправлено: 05.03.2002, 00:25
Отправитель: baldr (регистрация: 28/12/2001, ответов на счету: 101)
URL: http://www.dospage.far.ru - Сайт об ОС DOS. Всем, кто любит эту ОС!
Россия, г. Семенов, Нижегородская обл.

_______________

Отвечает kostik
Здравствуйте, DivX!
С Opera я сам не работал. Но хочется порекомендовать посетить форум на www.softerra.ru. Там вообще есть много форумов. Один из них посвящён браузерам( в том числе и Opera). Так что загляните туда.


Отправлено: 08.03.2002, 13:46
Отправитель: kostik (регистрация: 01/02/2002, ответов на счету: 67)
URL: http://www.ospedia.boom.ru - Что-то вроде домашней странички
mrkirov@mail.ru ICQ UIN #151014798
Россия, Хабаровск




 Вопрос № 101

Привет эксперты! Я хочу получить список всех запущенных процессов в Виндах. Для Win95/98 это кажется делается при помощи 3х функций: CreateToolhelp32Snapshot(), Process32First() и Process32Next(). Так вот как этими функциями пользоваться в Delphi и в каком модуле они находятся? Если нетрудно, то можно и про WinNT рассказать. Заранее благодарю.
Отправитель: Dron
Вопрос отправлен: 04.03.2002, 09:15
Подгруппа: Общие вопросы по программированию на Ассемблере под Win32

_______________

Отвечает DiGiT
Доброе время суток, Dron!
Млин ты дроном то не подписывайся. У нас есть Дрон. Наш Дрон.
Делфи не знаю, пришлось написать с помощью.



Приложение:


Отправлено: 05.03.2002, 04:55
Отправитель: DiGiT (регистрация: 28/12/2001, ответов на счету: 255)
ICQ:133534725
Russia(),Student




 Вопрос № 102

Уважаемые эксперты!
У меня две проблемы :
1) Дайте алгоритм решения или С-реализацию задачки:
умножить друг на друга два числа, у обоих разрядность не более тридцати. Например 126845978541286089058456045 *
45683865900658945703467897347
2) Что делает эта ф-ция? Я думал, что умножение, но ошибся.
unsigned int mul (unsigned int a, unsigned int b)
{ long p;
if (a) {
if (b) {
p = (long) a*b;
b = (unsigned int) (p&0xffff); /* младшие 16 бит */
a = (unsigned int) (p>>16); /* старшие 16 бит */
return b-a+(b else { return 1-a; }
}
else return 1-b; }

Отправитель: Эксперт 10ck (10ck@mail.ru)
Вопрос отправлен: 04.03.2002, 12:16
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS

_______________

Отвечает baldr
Привет, земляк...

На первый - ответ не знаю, хотя, если подумать... Если не срочно - пиши, подумаем...
2) Ни фига себе!!
Если у тебя размер int'а - 2 байта, то я молчу и падаю в аут... Тут ваще конструкции...
А если 4 байта, то... Возвращается что-то вроде разности между словами в дополнительном
обратном коде? Что ли так? А зачем вообще переменная p?? Ты где, вообще, взял такой пример?


Отправлено: 05.03.2002, 00:25
Отправитель: baldr (регистрация: 28/12/2001, ответов на счету: 101)
URL: http://www.dospage.far.ru - Сайт об ОС DOS. Всем, кто любит эту ОС!
Россия, г. Семенов, Нижегородская обл.

_______________

Отвечает DiGiT
Добрый день, 10ck!
1)Берешь пишешь эти числа в массив для простоты один байт одна цифра. А потом просто как в школе реализуешь алгоритм умножения столбиком. Проще некуда.
2) слов нет даже все же написано.\
если а==0 и б==0 вернуть бред какой то. Смотри внимательней
если а!=0 а б==0 вернуть 1-б
если б и а !=0
p присвоить ахб
б присвоить младшее слово от р
а присвоить старшее слово от р
вернуть б-а Тока что же баг b-a+(b тебя компилятор должен отправить
ну и там в зависимости от условия.


Отправлено: 05.03.2002, 04:41
Отправитель: DiGiT (регистрация: 28/12/2001, ответов на счету: 255)
ICQ:133534725
Russia(),Student




 Вопрос № 103

Уважаемые эксперты!
Вопрос не совсем относится к ассемблеру, но покрайней мере к программированию.
Подскажите, пожалуйста, обозначения блок-схем. Сам никак не могу вспомнить.
Не могу точно вспомнить обозначения ввода, вычисления и вывода.
Кажется, что-то вроде: прямоугольник, параллелограмм, прямоугольник с усеченным углом. Но что из них что, не помню.
Заранее благодарен.

Отправитель: Rust_br (comrust@com.osu.ru)
Вопрос отправлен: 04.03.2002, 13:00
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS

_______________

Отвечает наСИльник
Приветствую Вас, Rust_br!
Прямоугольник - формирование новых значений (y=x+z)
Ромб с двумя ветвями - выбор одного из двух(X>Y) Если да то +
Прямоугольник с усеченными краями - Вызов процедуры
Паралелограмм-Ввод или вывод
Овал-Начало или конец
Кружок-Соеденитель схемы
Вроде все. Если нужны размеры(соотношения) пиши.


Отправлено: 04.03.2002, 13:26
Отправитель: наСИльник (регистрация: 27/02/2002, ответов на счету: 21)
ICQ#114552395
Russia, Orsk

_______________

Отвечает vitya
Добрый день, Rust_br!

Прямоугольник - выполнение комманды (много входов, один выход)
Ромб - выполнение условия (много входов, два выхода)
Прямоугольник с двойными боковомы стнками - вызов процедуры
Параллелограмм - ввод (можно так же вывод)
Приплюснутый шестиугольник - выполнение цикла (внутри пишешь как в Си откуда, докуда, приращение)
Прамоугольник с крыглыми концами (начало конец)
Кружок - перенос на следующую страницу.


Отправлено: 04.03.2002, 13:42
Отправитель: vitya (регистрация: 03/01/2002, ответов на счету: 31)
103935193
Armenia, Yerevan

_______________

Отвечает 10ck
Приветствую Вас, Rust_br!
ВВОД - прямоугольник.
ВЫЧИСЛЕНИЕ - параллелограм.
ВЫВОД - прямоугольник с усеч. углом.
Вроде так.


Отправлено: 04.03.2002, 18:14
Отправитель: 10ck (регистрация: 18/02/2002, ответов на счету: 38)
Россия, Нижний Новгород

_______________

Отвечает baldr
Здравствуйте, Rust_br!

Увлекаемся созданием блок-схем? :))
Посмотри на сайте www.alglib.chat.ru - там есть редактор блок-схем...
А вообще, ввод/вывод - параллелорамм, вычисления - прямоугольник, ветвление - ромб и т.п...


Отправлено: 05.03.2002, 00:25
Отправитель: baldr (регистрация: 28/12/2001, ответов на счету: 101)
URL: http://www.dospage.far.ru - Сайт об ОС DOS. Всем, кто любит эту ОС!
Россия, г. Семенов, Нижегородская обл.

_______________

Отвечает Nek
Доброе время суток, Rust_br!

Помоему ввои и вывод - параллелограм, а вычисления просто прямоугольник


Отправлено: 05.03.2002, 01:32
На момент выхода рассылки эксперт в базе не был найден либо недавно сменил пароль.

_______________

Отвечает Frank
Приветствую Вас, Rust_br!
Скачай редактор блок-схем, а там разберешься:
http://doors.infor.ru/allsrs/alg/editor/bde.zip
http://doors.infor.ru/allsrs/alg/editor/bdef.zip
http://doors.infor.ru/allsrs/alg/editor/bdr.zip
http://doors.infor.ru/allsrs/alg/editor/bdrf.zip
http://doors.infor.ru/allsrs/alg/editor/duimp.zip
http://doors.infor.ru/allsrs/alg/editor/template.zip


Отправлено: 05.03.2002, 08:08
Отправитель: Frank (регистрация: 14/01/2002, ответов на счету: 83)
КПИ,ФЭЛ,ДА-02
ICQ: 100341415 E-mail: Frank_U@mail.ru
Украина, Киев

_______________

Отвечает root
Приветствую Вас, Rust_br!
Ввод-вывод - параллелограмм, вычисления - прямоугольник.


Отправлено: 08.03.2002, 01:58
Отправитель: root (регистрация: 28/12/2001, ответов на счету: 34)
РГУ
Адрес: 344064. Ростов-на-Дону, ул. Таганрогская, 50а
Тел.: (8-632) 77-97-02
URL: http://www.aofd.boom.ru - Когда-то будет homepage
ICQ: 92779849
Россия, Ростов-на-Дону




 Вопрос № 106

Здравствуйте эксперты.
Синтаксис в VC++ 6.0 asm по подробнее(имею ввиду asm вставку).

Отправитель: mixer
Вопрос отправлен: 04.03.2002, 18:39
Подгруппа: Общие вопросы по программированию на Ассемблере под Win32

_______________

Отвечает masquer
Доброе время суток, mixer!
Используется ключевое слово __asm
// Example of the __asm keyword
__asm // __asm block
{
mov eax, 01h
int 10h
}

__asm mov eax, 01h // Separate __asm lines
__asm int 10h

// Multiple __asm statements on a line
__asm mov eax, 01h __asm int 10h


Отправлено: 05.03.2002, 10:21
Отправитель: masquer (регистрация: 16/01/2002, ответов на счету: 43)
Украина, Николаев

_______________

Отвечает vitya
Приветствую Вас, mixer!

никаких подробностей
пишешь __asm mov ax, bx
или __asm
{
mov ax, bx
}
или что тебе надо и все


Отправлено: 05.03.2002, 13:03
Отправитель: vitya (регистрация: 03/01/2002, ответов на счету: 31)
103935193
Armenia, Yerevan




 Вопрос № 77

Какая стандартная процедура определения размера сегмента памяти, к-рую необходимо оставить программе, т.е. какой размер образа программы в памяти, как его определить. Линкуются несколько файлов во всех есть директивы .data А то я наугад это делаю
Отправитель: Эксперт Joker (jokeridze@tele-kom.ru)
Вопрос отправлен: 03.03.2002, 01:38
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS

_______________

Отвечает Nek
Добрый день, Joker!

Определить размер проги в памяти можно так:

Ставишь в конеч проги метку, перед SEGMENT ends, потом в проге пишешь
lea cx,@end (@end - метка) и теперь в сх размер проги в байтах, Упс еще пишешь так
sub cx,100h это для ПСП и теперь можешь преобразовывать как хочешь. Ну правда это
актуально для КОМ а для ЕХЕ будет чуть по другому, но суть таже.


Отправлено: 03.03.2002, 12:22
На момент выхода рассылки эксперт в базе не был найден либо недавно сменил пароль.

_______________

Отвечает Dron
Добрый день, Joker!

все сегменты данных во всех модулях в результирующем файле собираются в один. может быть несколько способов:

Обычно линкеры добавляют в таблицу символов несколько своих символов типа _end_data, _end_bss и тд.. посмотри таблицу символов в программе и сделай выводы.

можно в последнем линкуемом модуле в конце сегмента данных добавить какую-нибудь метку, по которой потом легко можно определить конец сегмента данных в памяти. он скорее всего идет после сегмента кода.


Отправлено: 04.03.2002, 11:13
Отправитель: Dron (регистрация: 28/12/2001, ответов на счету: 260)
Информзащита
Адрес: Москва
URL: http://asmdev.narod.ru/asmos.html - Операционная система с нуля!
2144510
Россия, Москва




 Вопрос № 107

Помогите плз! Мне надо ввести с клавиатуры число из загнать его в переменную. Все числа интерпертируются как символы, что мне делать?
Отправитель: Alexander
Вопрос отправлен: 04.03.2002, 20:12
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS

_______________

Отвечает BMR
Добрый день, Alexander!

Отнимай от кода введённого числа код 0 (30h).Каждое новое число умножай на 10 в стапени (число цифр-1) и складывай с переменной ( не забудь только её сначало обнулить)


Отправлено: 04.03.2002, 20:32
Отправитель: BMR (регистрация: 10/02/2002, ответов на счету: 93)
Россия, Пенза

_______________

Отвечает cerbex
Добрый день, Alexander!
0-30h
1-31h
2-32h
.....
9-39h
Или используй: mov ax,'12'
Счастливо!
cerbex


Отправлено: 05.03.2002, 00:10
Отправитель: cerbex (регистрация: 23/02/2002, ответов на счету: 3)

_______________

Отвечает baldr
Добрый день, Alexander!

На этот вопрос уже отвечали в рассылке - пожалуйста, поищите... Отвечал как раз я, приводил,
кажется, даже программку на Си...


Отправлено: 05.03.2002, 00:26
Отправитель: baldr (регистрация: 28/12/2001, ответов на счету: 101)
URL: http://www.dospage.far.ru - Сайт об ОС DOS. Всем, кто любит эту ОС!
Россия, г. Семенов, Нижегородская обл.

_______________

Отвечает Nek
Здравствуйте, Alexander!

Можно вводить посимвольно из каждой цыфарки-символа вычитать 30h тогда получится
реально эта цыфарка, а после окончания ввода преобразовать ф формат пригодный для
вычислений и загнать его в перееменную.


Отправлено: 05.03.2002, 01:32
На момент выхода рассылки эксперт в базе не был найден либо недавно сменил пароль.

_______________

Отвечает DiGiT
Доброе время суток, Alexander!
Интерпретировать и все. Вводишь последовательно символы, проверяешь на корректность, уьножаешь на 10 что нужно, правда вначале вычев '0'.


Отправлено: 05.03.2002, 02:07
Отправитель: DiGiT (регистрация: 28/12/2001, ответов на счету: 255)
ICQ:133534725
Russia(),Student

_______________

Отвечает Frank
Доброе время суток, Alexander!
После ввода строки береш всю последовательность посимвольно.
Дальше, например попалась "3"(символ), у него код 51 т.е. тебе нужно отнять от его кода 48, получишь сам символ(Для любого символа отнимаешь 48 и получаешь сам символ). Дальше я думаю понятно как преобразовать числа в конечный результат.
ЗЫ По-моему в каком-то номере основной рассылки это уже было.


Отправлено: 05.03.2002, 08:16
Отправитель: Frank (регистрация: 14/01/2002, ответов на счету: 83)
КПИ,ФЭЛ,ДА-02
ICQ: 100341415 E-mail: Frank_U@mail.ru
Украина, Киев

_______________

Отвечает Dron
Приветствую Вас, Alexander!

разбираешь посимвольно и загоняешь в переменную.

все очень просто.

1. обнуляешь переменную.
2. берешь символ.
3. проверяешь что это число ('0' <= символ <= '9')
4. если это не число, то можно прервать ввод. (идти на 9)
5. вычитаешь '0' из символа
6. умножаешь переменную на 10.
7. прибавляешь символ к переменной.
8. идешь на 2.
9. число в переменной.


Отправлено: 05.03.2002, 12:33
Отправитель: Dron (регистрация: 28/12/2001, ответов на счету: 260)
Информзащита
Адрес: Москва
URL: http://asmdev.narod.ru/asmos.html - Операционная система с нуля!
2144510
Россия, Москва

_______________

Отвечает VD
Доброе время суток, Alexander!
перевести его из символов в цифры, а вот как, это уже другой вопрос.


Отправлено: 05.03.2002, 13:02
Отправитель: VD (регистрация: 28/12/2001, ответов на счету: 73)
URL: www.chat.ru/~vdragon_pas/index.htm - Программирование графики на Пакаль со вставками на

_______________

Отвечает GL
Доброе время суток, Alexander!
Нашел вот такую подпрограмму, см. приложение.


Приложение:


Отправлено: 05.03.2002, 18:14
Отправитель: GL (регистрация: 02/03/2002, ответов на счету: 13)
Амурская обл., Благовещенск




Форма отправки сообщения
(действительна до момента выхода следующего выпуска рассылки)

Заполните приведенную ниже форму для того, чтобы отправить вопрос. Дополнительную информации по пользованию формой для подписчиков и экспертов можно получить, нажав на знак вопроса в соответствующем разделе, при этом информация будет отображена в отдельном окне.

В почтовых программах форма не работает!!! Открывайте рассылку в браузере Internet Explorer, где и набирайте Ваш вопрос.



 Персональные данные
Ваше имя:
Пароль (экспертам):
E-mail (подписчикам):
Опубликовать мой e-mail в рассылке


 Текст сообщения

Текст вопроса:

Приложение (если необходимо: программа, выдержка из закона и т.п.):



 Выбор подгруппы

Отправить всем экспертам выбранной подгруппы


SpyLOG be number one SUPERTOP

© 2000 - 2002 Россия, Москва. Авторское право: Калашников О. А.


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

В избранное