Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Ассемблер? Это просто! Учимся программировать (FAQ)
"Ассемблер? Это просто! Учимся программировать (FAQ)"
Выпуск № 168
от 10.01.2002, 00:43
Администратор: Калашников Олег
Сайт Администратора: Программирование на Ассемблере
Старейшины рассылки |
1. Broken Sword - ответов: 308. 2. Painbringer (нечто наподобие домашней страницы) - ответов: 297. 3. Sensey - ответов: 263. 4. Dron (Операционная система с нуля!) - ответов: 233. 5. змей - ответов: 162. |
Уважаемые мои подписчики и эксперты!
Я очень сильно огорчился... Что такое происходит - не могу понять... Почему столько ошибок в программе? Нет, это, конечно, понятно, почему. Как говорится, поспешишь - людей насмешишь. Все хотел до Нового года сделать... Ну и поделом мне теперь!..
А что произошло? Мелочи! Ха! Вдруг ни с того, ни с сего (в который уж раз!) нумерация вопросов перепрыгнула на номер 12, а должна была перейти на 43! И тут началось та-акое!.. Как это могло вообще произойти??? Конечно, это должен знать только я... Мои подозрения - в базе остались вопросы / ответы еще аж со времен тестирования системы. Вероятно, я изменял потом поля форм, а попалась одна старая и... все рухнуло...
Проблема-то теперь не в получении вопросов / ответов (это отдельная программа), а в процедуре генерации рассылки... Она мне тут такого "нагенерила"!.. Два часа исправлял. Но главное - все ваши ответы достигли цели, баллы начислились. Это - архиважно!
Я полностью расстроился... Каюсь, извиняюсь и падаю на колени перед вами.
Люди добрые! Дайте еще шанс! Я исправлюсь!!! Честно слово!
Вот сейчас допечатаю это и уйду в запой. Честное слово!
В итоге, я сгенерировал рассылку чуть ли не вручную из ВСЕХ вопросов / ответов, находящихся в базе на момент генерации (не принимал во внмание 5 суток). Вот она, перед вами!
Уважаемые подпичики и эксперты! Все вопросы из базы удалены. Эксперты, пожалуйста, НЕ отвечайте на вопросы, которые поступили до 10 января часу ночи по московскому времени!
Подписчики, пожалуйста, перешлите ваши вопросы, если вы не получили ни одного ответа!
Еще раз примите мои искренние извинения. Видимо, сказывается то, что уже вот почти неделю сплю по 4-6 часов - все систему делаю... Устал...
Следующий выпуск выйдет через 5 суток.
Все, ушел в...
Бывший Калашников.
Вопрос № 1 |
Здравствуйте эксперты!
Хотел бы услышать ваше мнение о книге В.Ю. Пирогова "Assembler. Учебный курс", Издательство "Нолидж".
С уважением ILYA D.
Вопрос задал: ILYA D.
Отправлен: 09/01/2002, 05:39
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS
_______________
Отвечает root
Приветствую Вас, ILYA D.!
В общем, неплохая книга.
Отправлено: 09/01/2002, 23:04
Отправитель: root (регистрация: 28/12/2001, ответов на счету: 14)
Вопрос № 14 |
Здравствуйте, все! Я задавал этот вопрос в "прежней" рассылке, но ответа так и не получил (вопрос № 2028 или 2029 - точно не помню). Повторяю:
Как из разрабатываемой DOSовской программы (конечно же запущенной под виндами) получить доступ к длинным именам файлов. Получилось немного сумбурно, поэтому поясняю: например, я пишу прогу на TP7.0, или, что актуальней, на QB4.5. В QB4.5 я могу выполнить прерывание, или написать ASMовскую процедуру и слинковать её в LIB файл для QB4.5. Так вот в чем вопрос: Какую функцию какого прерывания необходимо выполнить, какие структуры использовать, как найти все файлы в данном каталоге, как получить атрибуты этих файлов (время создания/модификации, архивный/read_only/hiden и т.д). Заранее благодарен.
Вопрос задал: mr. Botsman
Отправлен: 09/01/2002, 08:12
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS
_______________
Отвечает Dron
Добрый день, mr. Botsman!
Не знаю как на QB или Tp...
Но в досе есть сервисы для длинных имен (имеется ввиду виндовый дос :)
это тот же int 21h
Но функции примерно следующие... (подробнее это все есть в интеррапт листе)
ax = 0x716c dx = 1 open
ax = 0x716c dx = 0x12 create
функции чтения записи - те же самые... 0x3f, 0x40
Отправлено: 09/01/2002, 11:15
Отправитель: Dron (регистрация: 28/12/2001, ответов на счету: 233)
URL: http://spawnhole.narod.ru/asmos/asmos.html - Операционная система с нуля!
_______________
Отвечает Артём Шегеда
Приветствую Вас, mr. Botsman!
Если у тебя есть "Win32 Programmer's Reference" (поставляется с C++ Builder и Delphi), поищи там слово "Long Filenames Reference"
Ниже - выдержка из этого пособия:
Interrupt 21h Function 7160h Minor Code 2h
Retrieves the complete path in its long filename form for the specified file or path. The function returns the long name for all directories in the path.
mov ax, 7160h
mov cl, 2 ; Get Long Path Name
mov ch, SubstExpand ; see below
mov si, seg SourcePath ; see below
mov ds, si
mov si, offset SourcePath
mov di, seg DestPath ; see below
mov es, di
mov di, offset DestPath
int 21h
jc error
Parameters
SubstExpand
Flag that indicates if the returned path should contain a SUBST drive letter or the path associated with the SUBST drive. Zero is specified to indicate that the returned path should contain the path associated with the SUBST drive, and 80h is specified to indicate that the returned path should contain the SUBST drive letter.
SourcePath
Address of a null-terminated string that names the file or path to retrieve the complete long path for. Either the long filename or the short form is acceptable as the source string.
DestPath
Address of the buffer that receives the complete path. The buffer should be large enough to contain the largest possible Windows 95 path (260 characters, including the drive letter, colon, leading backslash, and terminating null character).
Return Value
Clears the carry flag, modifies the AX register, and returns the complete long path in the given buffer if successful. Otherwise, the function sets the carry flag and sets the AX register to an error value.
Remarks
Relative paths containing the characters "." and ".." in SourcePath are fully expanded. Since this function performs validation, SourcePath must contain either a valid filename or path.
Отправлено: 09/01/2002, 12:15
Отправитель: Артём Шегеда (регистрация: 28/12/2001, ответов на счету: 25)
URL: http://www.shegeda.chat.ru/ - Пристанище неодинокого программиста
x-USSR, Харьков
_______________
Отвечает Broken Sword
Приветствую Вас, mr. Botsman!
Никаких структур нету слава богу, это не highend.
Все также как и с короткими именами, только в ah нада предварительно пихать 71h.
Вот очень краткий ответ, а там (в приложении) смотри почти полный вариант (есть еще около 20 ф-ций если нада - пиши :).
int 21h
AX=716Ch (создать или открыть файл с длинным именем)
AX=7141h (удалить файл с длинным именем)
AX=714Eh (найти первый файл с длинным именем)
AX=714Fh (найти следующий файл)
Приложение:
Отправлено: 09/01/2002, 15:32
Отправитель: Broken Sword (регистрация: 28/12/2001, ответов на счету: 308)
Украина, Одесса
_______________
Отвечает UFO
Приветствую Вас, mr. Botsman!
Int 21h
Получить атрибуты файла
Вход: АХ = 7143 h; ВХ = действие:
0 - получить атрибуты, на выходе СХ = атрибуты файла: 0000h - файл доступен по записи и чтению; 0001h - файл доступен по чтению; 0002h - скрытый файл; 0004h - системный файл; 0008h - метка тома; 0010h - каталог; 0020h - архивный файл;
2 - получить размер сжатого файла - на выходе DX:AX = размер сжатого файла в байтах на диске;
4 - получить дату и время последней записи - на выходе;
СХ = время в формате: 0..4 = секунды, деленные на 2; 5..10 = минуты (0..59); 11..15 = часы (0..23);
DI = дата в формате: 0..4 = день месяца (1..31); 5..8 = месяц (1..12); 9..15 = число лет с 1980 года;
6 - получить дату последнего доступа - на выходе: 01 = дата в формате
(см. ВХ = 4); "
8 - получить дату и время создания - на выходе СХ = время в формате,
DI = дата в формате (см. ВХ = 4), SI = двоичное значение количества 10-
миллисекундных интервалов, добавляемых ко времени MS DOS в диа
пазоне 0..199;
DS:DX - ASCIZ-строка с именем (путем) файла.
Выход: CF = 0 в случае успеха, информация в регистрах определяется значением
ВХ на входе (см. выше):
АХ = код ошибки (CF = 1): 1 - неверное значение в AL; 2 - файл не найден; 3 - несуществующий путь; 5 - доступ запрещен.
Дальше поиск файлов и каталогов 3 функции и_структура - долго описывать -Если нужно, пришлю мылом
рабочий пример в приложении
Приложение:
Отправлено: 09/01/2002, 17:28
Отправитель: UFO (регистрация: 28/12/2001, ответов на счету: 75)
_______________
Отвечает Andy Bitoff
Добрый день, mr. Botsman!
Для работы с длинными именами файлов через Дос (Int21) под Винды, надо вызывать так:
Вход:
ax = 716ch
bx = доступ:
...000 - для чтения
...001 - для записи
...010 - для чтения и записи
cx = атрибут файла
dx = действие:
...00001 - открыть файл
...00010 - заменить файл
...10000 - создать файл
ds:si = сторока с именем файла
di = число, которое будет записано в конце короткого имени файла
Выход:
cf = 0
...ax = идентификатор файла
...cx = 1 файл открыт
.......= 2 файл создан
.......= 3 файл заменен
cf = 1
...ax = код ошибки (7100h если функция не поддерживается)
C наилучшими пожеланиями Andy Bitoff.
Отправлено: 09/01/2002, 21:34
Отправитель: Andy Bitoff (регистрация: 28/12/2001, ответов на счету: 47)
URL: http://bitoff.pisem.net - HomePage или что-то типа того :)
Россия, Санкт-Петербург
Вопрос № 15 |
Здравствуйте эксперты, хочу уточнить вопрос №2035 старой рассылки, извиняюсь что так поздно, но лучше поздно чем никогда. На часть вопроса ответы уже нашел, вот остальное:
Чтобы воспользваться функцией DOS 50h, надо знать адрес PSP, чужой программы, где его можно получить? И PSP какой программы лучше всего брать?
И подскажите насчет адресации. Драйвер XMS, после функции 88h
возвращает в ecx, физический адрес как мне его переделать в формат сегмент:смещение?
Еще вопрос насчет заголовка EXE файла, там по смещению 0ch компилятор по умолчанию выстовляет 0FFFFh, можно как-нибудь
выставить свое значение?
Программа у меня exe.
Заранее спасибо.
Вопрос задал: Serzh (Serzhant_mail@mail.ru)
Отправлен: 09/01/2002, 10:38
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS
_______________
Отвечает Broken Sword
Доброе время суток, Serzh!
сегмент PSP предка всегда содержится в текущем CS (сам PSP начинается со смещения 0)
Может кто то чего то недопонял, но 50h функция 21h позволяет в bx-е передать сегмент для PSP нового процесса. Так зачем тебе знать старый?
А, это ты у Зубкова вычитал... ну-ну.
По поводу XMS.
mov n, ecx
...
n dd ?
Потом если будет jmp dword ptr n - то это дальний переход в формате сегмент:смещение. Только зачем тебе адрес ПОСЛЕДНЕГО байта памяти??? (ито только при ошибке 0Аh... дочитай там Зубкова)
По поводу смещения 0Сh - незнаю, помойму нет, это ж компилятор в конце концов!!! А вообще зачем оно тебе нада? можно и в других местах хранить инфу...
Отправлено: 09/01/2002, 15:33
Отправитель: Broken Sword (регистрация: 28/12/2001, ответов на счету: 308)
Украина, Одесса
Вопрос № 16 |
Привет всем!
Проблема у меня такая - на моем компьютере ни один модем не держит соединения больше двух-трех минут. С модемами все в порядке, с провайдером тоже. В чем может быть дело?
Владимир.
Вопрос задал: Владимир
Отправлен: 09/01/2002, 11:01
Подгруппа: Пользовательская работа с Windows
_______________
Отвечает vitya
Добрый день, Владимир!
Телефонная сеть может брахлит? У меня тоже так. Еще у меня под вин2000 хуже идет соединение, чем под вин98.
Отправлено: 09/01/2002, 11:16
Отправитель: vitya (регистрация: 03/01/2002, ответов на счету: 7)
Armenia, Yerevan
_______________
Отвечает DivX
Добрый день, Владимир!
Много в чем может быть дело... С модемами может быть все в порядке, а настроены они возможно плохо. Вполне вероятны пиковые нагрузки на АТС(попробуй соединится ночью) или техническая несовершенность последней(декадо-шаговая АТС). Про телефонную проводку защищенную пропитанной бумагой(!) я уже молчу.
Отправлено: 09/01/2002, 11:36
Отправитель: DivX (регистрация: 28/12/2001, ответов на счету: 117)
_______________
Отвечает Vladimir
Приветствую Вас, Владимир!
Дело может быть в телефонном кабеле (раз!), в абонентском комплекте АТС (два!), во внутренней проводке (три!). По первому и второму пункту необходимо напрячь связистов. Но разговаривать с ними тяжело, поэтому предварительно провести тестирование соединения (многие модемы позволяют это делать, например Courier, ZyXel и др.), чтобы выставлять конкретные претензии. По третьему пункту попробуй сделать следующее:
1.Отключить все телефонные аппараты от телефонной сети
2.Проверить, не стоят-ли в телефонных розетках конденсаторы (~1mkf), если стоят -- выкусить их все
3.Внимательно осмотреть комнатную проводку, нет-ли каких-нибудь дефектов (гвоздик жилы касается, перегнута и т.д.)
Желаю успехов.
Отправлено: 09/01/2002, 11:52
Отправитель: Vladimir (регистрация: 28/12/2001, ответов на счету: 22)
Россия, Конаково Тверской обл.
_______________
Отвечает Alexety
Доброе время суток, Владимир!
Я не знаю точно, но у нас в Кишиневе некоторые провайдеры предлагают бесплатный доступ в интернет, но при каждом входе в интернет надо запускать специальную программу(она прокручивает банеры) и если ты не запустил эту программу тебя, примерно через 2 минуты, автоматически отконнективают. Попробуй
позвонить провайдеру и спросить, может у них тоже что то надо запускать при входе в сеть.
Отправлено: 09/01/2002, 12:20
Отправитель: Alexety (регистрация: 28/12/2001, ответов на счету: 3)
Молдова, Кишинев
_______________
Отвечает StiGGeR
Добрый день, Владимир!
Шумы, помехи в тел.линии.
Отправлено: 09/01/2002, 14:42
Отправитель: StiGGeR (регистрация: 02/01/2002, ответов на счету: 9)
Россия, Уфа
_______________
Отвечает Broken Sword
Приветствую Вас, Владимир!
знаешь, ты может немного удвишься, но дело либо в модеме, либо в провайдере, либо в твоей АТС. Четвертого не дано просто!!! (ну разве что на блокираторе бабка трубку хватает раз в 2-3 минуты еще)
Отправлено: 09/01/2002, 15:33
Отправитель: Broken Sword (регистрация: 28/12/2001, ответов на счету: 308)
Украина, Одесса
_______________
Отвечает UFO
Приветствую Вас, Владимир!
Значит дело в АТС
Отправлено: 09/01/2002, 17:30
Отправитель: UFO (регистрация: 28/12/2001, ответов на счету: 75)
_______________
Отвечает Andy Bitoff
Доброе время суток, Владимир!
Проблема может быть в проводе от модема до щитка на леснице или в станции (АТС). А вообще мало входных данных для правильного ответа. Хорошо бы знать какая АТС, какого года монтаж. Проверь провод до щитка. Ну тут много вариантов, но всегда следует помнить:
- параллельные аппараты создают модему дополнительные помехи
- все остальные устройства - телефоны и факсы - желательно подключать только через него, последовательно
- пропаяй все соединения, которые есть в телефонной сети
- из телефонных розеток надо вынуть конденсаторы
- использовать витую пару - она обладает большей помехозащищенностью
- нередки случаи плохих контактов и обрывов на лестничной клетке
И на последок цитата (к сожалению не помню от куда, так что надеюсь если автор увидит, то не осерчает):
Очень многой зависит от вашей АТС, многое от АТС провайдера и не меньше зависит от промежуточных АТС, через которые пойдет сигнал.
Если есть возможность, проверьте связь с различными телефонными номерами (даже у одного провайдера их бывает несколько - на разных АТС). Связь от номера к номеру может различаться. Плюс даже звонок на один и тот же номер может проходить через разные промежуточные АТС, с разным качеством соединения. Поэтому иногда для улучшения связи достаточно перезвонить (как обычно мы и делаем при простом разговоре по телефону, когда плохо слышим собеседника).
C наилучшими пожеланиями Andy Bitoff.
Отправлено: 09/01/2002, 21:34
Отправитель: Andy Bitoff (регистрация: 28/12/2001, ответов на счету: 47)
URL: http://bitoff.pisem.net - HomePage или что-то типа того :)
Россия, Санкт-Петербург
Вопрос № 17 |
Здравствуйте уважаемые эксперты!
У меня есть несколько вопросов:
1. Существуют ли в Windows другие способы передачи данных по локальным сетям, помимо сокетов.
2. Кто-нибудь знает, в каком формате передает сообщения WinPopUp и по какому порту. И могу ли сокеты использовать для приёма/отправки этих сообщений.
3. Как определить, какие компьютеры на данный момент находятся в сети и их имена
4. Есть ли какие-нибудь программы для определения того, через какие порты какая информация передается/принимается
Вопрос задал: CatManZero
Отправлен: 09/01/2002, 13:14
Подгруппа: Общие вопросы по программированию на Ассемблере под Win32
_______________
Отвечает Andy Bitoff
Добрый день, Krum!
Вообще-то с помощью API перейти в полноценный полноэкранный режим нельзя, для этого надо использовать DirectDraw. Полноценным я называю режим при котором можно работать с видео памятью напрямую, а API этого не позволит. Можно, так сказать, эмулировать полный экран. Создаешь окно, зазворачиваешь его, делаешь olvays-on-top, убираешь заголовок, меняшь разрешение (EnumDisplaySettings, ChangeDisplaySettings) и у тебя полный экран, только рисовать можно только с помощью функций Виндов, а это убого (хотя спорно, каждому свое). Можно даже мышь захватить для себя (SetCapture). Но все-таки, раз мы тут на ассемблере работаем, я предпочитаю работать напрямую с видео, а для этого надо юзать DirectDraw.
С наилучшими пожеланиями Andy Bitoff.
Отправлено: 09/01/2002, 21:33
Отправитель: Andy Bitoff (регистрация: 28/12/2001, ответов на счету: 47)
URL: http://bitoff.pisem.net - HomePage или что-то типа того :)
Россия, Санкт-Петербург
Вопрос № 18 |
Здравствуйте, подскажите, какработать со словами.
Если введена строка, состоящая из нескольких слов, разделенных пробелами. И нужно каждое слово сравнивать с последним. Отличные от последнего надо удалить. Можно ли как-то сравнивать слова эти целиком, а не посимвольно.
Вопрос задал: Nat
Отправлен: 09/01/2002, 13:20
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS
_______________
Отвечает Ayl
Приветствую Вас, Nat!
Можно. Надо выделить последнее слово, посчитать в нем количество символов и далее использовать конструкцию
repe cmpsb
установив cx в это значение. Только надо будет корректно переходить к следующему слову. Да, последнее слово желательно дополнить пробелом, чтобы не мучаться с определением концов слов.
Отправлено: 09/01/2002, 13:43
Отправитель: Ayl (регистрация: 28/12/2001, ответов на счету: 133)
Россия, Санкт-Петербург
_______________
Отвечает Dron
Доброе время суток, Nat!
Ассемблер не умеет оперировать словами (в языковом понятии этого слова) да и языки высокого уровня за исключением языков ИИ тоже не умеют, везде сравнение ведется посимвольно.
Отправлено: 09/01/2002, 13:53
Отправитель: Dron (регистрация: 28/12/2001, ответов на счету: 233)
URL: http://spawnhole.narod.ru/asmos/asmos.html - Операционная система с нуля!
_______________
Отвечает Sensey
Приветствую Вас, Nat!
CMPSB\CMPSW Сравнение строк из байт\слов
Команда: CMPS destination-string,source_string .
Логика: CMP (DS:SI), (ES:DI) ; только устанавливает признаки
Эта команда сравнивает два значения, вычитая байт или слово, на которое указывает ES:DI, из байта или слова, на которое указывает DS:SI, и устанавливает признаки в соответствии с результатами сравнения. Сами операнды не изменяются. После сравнения, SI и DI увеличиваются на 1 (для байтов) или 2 (для слов), если признак направления сброшен, или уменьшаются на 1 или 2, если признак направления установлен. Тем самым подготавливаются к сравнению следующие элементы обеих строк.
Приложение:
Отправлено: 09/01/2002, 15:07
Отправитель: Sensey (регистрация: 28/12/2001, ответов на счету: 263)
Тел.: (0572) 41-76-04 д.
ICQ 105679124 - пока не работает
Украина, Харьков
_______________
Отвечает Broken Sword
Приветствую Вас, Nat!
ты реально понял что спросил(а) ??? ;)))) вот ты загнал! можно набрать телефон, нажав сразу 6-7 цифр? нет конечно. Ты можешь написать процедуру конечно, но в конечном итоге все сведется к побайтовому (пословному, по dсловному) сравнению.
Отправлено: 09/01/2002, 15:33
Отправитель: Broken Sword (регистрация: 28/12/2001, ответов на счету: 308)
Украина, Одесса
Вопрос № 19 |
Здрасте, есть ли такая программка которая ведет учёт скаченых в интернете мегабайт(их количество)? Если есть такова то как она называется и где ее можно найти?
С уважением....
Вопрос задал: Грохнутый
Отправлен: 09/01/2002, 15:22
Подгруппа: Пользовательская работа с Windows
_______________
Отвечает skunk
Добрый день, Грохнутый!
Таких программ как грязи, названий я сейчас не упомню. Посмотри на www.softodrom.ru
Отправлено: 09/01/2002, 16:32
Отправитель: skunk (регистрация: 04/01/2002, ответов на счету: 6)
РФ, Тольятти
_______________
Отвечает UFO
Здравствуйте, Грохнутый!
Ну попрубуй эту сам не юзал
http://index.art.ru/inetstat/
А вообще можно и в поисковиках за 5 сек найти
Отправлено: 09/01/2002, 16:48
Отправитель: UFO (регистрация: 28/12/2001, ответов на счету: 75)
_______________
Отвечает Broken Sword
Здравствуйте, Грохнутый!
есть, getright называется (да и вообще по моему любой качок это делает)
взять можна на www.getright.com
Отправлено: 09/01/2002, 16:57
Отправитель: Broken Sword (регистрация: 28/12/2001, ответов на счету: 308)
Украина, Одесса
_______________
Отвечает DivX
Добрый день, Грохнутый!
Речь идет о трафике...
Диалер Professional Dialer ведет скачанных данных, но проблема в том , что это касается только Dial-Up. Сам по себе этот диалер из цикла "так себе".
Вы не уточнили , какой у вас вид доступа , но вполне резонно предположить, что это может быть и выделенный канал(новомодный ADLS и т.д.), где учет введется именно по трафику.
Существует много специализированных программ таких как BWidth, Counter Connection Center 3.2R(с поддержкой выделенки я не уверен). Программа TMeter 2.51 точно поддерживает IP-трафик для LAN, а значит и для любого бриджа, который соединяет вас с выделенным каналом. Так что, делайте
Отправлено: 09/01/2002, 16:58
Отправитель: DivX (регистрация: 28/12/2001, ответов на счету: 117)
Вопрос № 20 |
У меня windows 2000 по версии nt.У меня в процесе какой нибудь игры выклюц. манитор и не включается три пальца не действуют приходиться reset нажимать как быть помогите!!!
И ешё вопрос как загрузитьсяс cd-rom или дискеты
А то не могу и в справке нет
А говорят так помогает!!!
Вопрос задал: volk (ulv@mail.kubtelecom.ru)
Отправлен: 09/01/2002, 15:59
Подгруппа: Пользовательская работа с Windows
_______________
Отвечает skunk
Приветствую Вас, volk!
2K здесь не причем.
1. Если монитор тухнет при запуске игры(никогда ты бегаешь по менюшкам, а когда жмешь старт, пуск и т.п.) то он просто не подерживает то режим в котором пытаеться играть игрушка. Попробуй поставить в опциях игры режим по меньше. Если монитор пятнашка то не стоит прыгать в разрешения дальше, чем 800х600, так как не которые игрушки сами включают частоту регенерации изображения на экране. К примеру пятнашка, особенно левая, при включении режима 800х600 100МГц умирает, и не обязательно при игре.
2. Второе у тебя приходит конец твоему монитору. Мой соня поступает так - же. Выход один менять монитор.
Отправлено: 09/01/2002, 16:41
Отправитель: skunk (регистрация: 04/01/2002, ответов на счету: 6)
РФ, Тольятти
_______________
Отвечает StiGGeR
Здравствуйте, volk!
Что-бы грузанутся с флопа или сидюка надо залесть в биос и там в разделе кажется bios features setup это дело настроить.
зы. RTFM! JFYI LMD.:))
Отправлено: 09/01/2002, 16:51
Отправитель: StiGGeR (регистрация: 02/01/2002, ответов на счету: 9)
Россия, Уфа
_______________
Отвечает UFO
Приветствую Вас, volk!
Тебя жестоко обманули
- не поможет!
Переставь винду, для этого лучше пригласить_взрослого человека
- он тебе все и расскажет.
Отправлено: 09/01/2002, 16:52
Отправитель: UFO (регистрация: 28/12/2001, ответов на счету: 75)
_______________
Отвечает DivX
Добрый день, volk!
Возможен конфликт видеокарты либо с самой Windows, либо с каким-то устройством. Зачастую такие фокусы может вытворять разогнанный процессор или видеокарта. DirectX(на W2K установлен DX 7) менее вероятен, но можно попробовать поставить DX 8. К сожалению, вы не дали конфигурацию вашей машины, поэтому действительной причины я установить не могу. Plz, дайте конфигурацию, тогда я смогу сузить круг возможных причин.
Что же касается второго вопроса, то здесь все просто. Вставляете этот диск или дискету(естественно, загружающийся с этой ОС, или мультизагрузочный CD-ROM). Заходите в BIOS, выбираете Bios features и в Boot Sequence выбираете соответсвенно последовательность A,C, SCSI или CD-ROM, C,D. Первое устройство в этой последовательности и будеь загрузочным.
Отправлено: 09/01/2002, 16:58
Отправитель: DivX (регистрация: 28/12/2001, ответов на счету: 117)
_______________
Отвечает Den
Доброе время суток, volk!
Выключается в процессе игры или загрузки? Если первое, то вероятнее всего перегревается видеокарта, если второе - то твой монитор или видеокарта не поддерживают требуемое разрешение.
Насчет трех кнопок: в W2000 такого нет по определению, выход такой: жмешь три кнопки, затем ДВА раза стрелку вправо (или вниз - несущественно), а затем два раза Enter - комп выключится или перезагрузится, в зависимости от того, что до этого выполнялось (специально у себя с выключеным монитором проверил)
И еще: для загрузки с СДрома или дискеты надо войти в BIOS (для этого надо нажать Delete при загрузке компа, когда он показывает проц и тестирует память), войти в пункт "Advanced BIOS Features", там будет такая строка "First Boot Device" значение которой определяет с какого устройства происходит загрузка (у тебя там должно быть HDD-0) и кнопками PageUp и PageDown выставляешь нужное, после чего выходишь из BIOSа (обязательно с сохранением). Все.
PS: Если ты в основном играешь на компьютере, то поставь лучше W98 или WMe, хотя бы для того, чтоб загружалось побыстрее и на игры это никак не повлияет
Отправлено: 09/01/2002, 19:06
Отправитель: Den (регистрация: 28/12/2001, ответов на счету: 7)
Россия, С.-Петербург
Вопрос № 21 |
Лю-ю-ди! Здрасьте!
Несмотря на то, что вопрос, по идее, следует отправить в группу оптимизаторов программ, я решил обратиться к ВАМ.
Упёрся в проблему: необходим алгоритм деления целочисленной переменной на константу с использованием только(!) умножения, сложения и вычитания. Пишу под сигнальный процессор, так что альтернатив этим операциям не существует.
Вопрос задал: Эксперт Артём Шегеда
Отправлен: 09/01/2002, 18:52
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS
_______________
Отвечает UFO
Приветствую Вас, Артём Шегеда!
А что есть деление? То_же самое вычитание константы n_раз
пока не упрешься в ноль.Вот и вычитай ее_в_цикле, а n инкриментируй
Отправлено: 09/01/2002, 19:07
Отправитель: UFO (регистрация: 28/12/2001, ответов на счету: 75)
_______________
Отвечает Broken Sword
Здравствуйте, Артём Шегеда!
Сдвигов я так понимаю, тоже нет, да?
Незнаю. То что я щас предложу либо гениально, либо просто глупо (но скорее первое :) ! Только все дело упирается в некоторое подобие инструкции cmp, надеюсь, она там хоть есть на ентом сигнальном процессоре???? Если нет, то дальше можешь не читать... :(
Короче вся гениальность в том, что мы находим частное методом ... перебора!!! :). А что??? На то и проц, чтоб считать!!! А в остальном - все как по заказу!!! (add,sub,mul),хотя сам код в приложении можна оптимизировать еще до утра :) (пока 31 б, можна сделать 25 спокойно...)!
Смотри алгоритм до конца, мне он почему то нравится все больше :)))...
Итак, все смотрим приложение, тока громка не смеемся! Про отрицательные числа я вообще предпочитаю скромно промолчать...
Приложение:
Отправлено: 09/01/2002, 23:09
Отправитель: Broken Sword (регистрация: 28/12/2001, ответов на счету: 308)
Украина, Одесса
Вопрос № 23 |
Здравствуйте!
Сразу извиняюсь за вопрос не по теме, но больше не у кого спросить. Нужна процедура на паскале перевода числа из hex в dec, я ее не где не нашел и написал свою, но она неверно переводит числа, а она мне очень нужна. Не могли бы вы сказать в чем ошибка в процедуре?
Приложение:
Вопрос задал: Алексей
Отправлен: 05/01/2002, 14:07
Подгруппа: Пользовательская работа с Windows
_______________
Отвечает Sensey
Приветствую Вас, Алексей!<br>В идеологии.<br>Держи правильную.
Приложение:
Отправлено: 05/01/2002, 14:42
Отправитель: Sensey (регистрация: 28/12/2001, ответов на счету: 263)
Тел.: (0572) 41-76-04 д.
ICQ 105679124 - пока не работает
Украина, Харьков
_______________
Отвечает Артём Шегеда
Приветствую Вас, Алексей!
Собственноручно написанные процедуры преревода.
Приложение:
Отправлено: 05/01/2002, 15:03
Отправитель: Артём Шегеда (регистрация: 28/12/2001, ответов на счету: 25)
URL: http://www.shegeda.chat.ru/ - Пристанище неодинокого программиста
x-USSR, Харьков
_______________
Отвечает Stealth
Здравствуйте, Алексей!
Честно говоря, в Вашей функции не совсем разобрался, поэтому прtдлагаю свою. Она берет параметр - строку в hex и возвращает число в dec.
Приложение:
Отправлено: 05/01/2002, 18:38
Отправитель: Stealth (регистрация: 28/12/2001, ответов на счету: 5)
_______________
Отвечает vitya
Добрый день, Алексей!
Если честно, то я не стал разбираться в исходнике, а просто
дал свой ответ, он вроде-как работает.
Удачи.
Приложение:
Отправлено: 07/01/2002, 10:12
Отправитель: vitya (регистрация: 03/01/2002, ответов на счету: 7)
Armenia, Yerevan
_______________
Отвечает Vladimir
Добрый день, Алексей!
Не очень понятно, что значит перевести число. Любое число в памяти (или на диске) записано в двоичном виде. Вы, по всей видимости хотите отобразить!!! его в виде десятичного числа. Т.е. преобразовать его в строковый вид, соответствующий десятичному. В паскале, насколько я помню, это делается очень просто:
Приложение:
Отправлено: 08/01/2002, 08:58
Отправитель: Vladimir (регистрация: 28/12/2001, ответов на счету: 22)
Россия, Конаково Тверской обл.
_______________
Отвечает skunk
Приветствую Вас, Алексей!
Алексей ты слишком перемудрил. Паскаль прекрасно сам работает HEX числами. И никакой функции для перевода HEX-DEC писать не надо. Правда HEX числа надо вводить в форме строки.
Пример:
var
i : Integer;
begin
i := StrToInt(Edit1.Text);
Label1.Caption := IntToStr(I);
end;
Если хочешь из DEC-HEX то есть функция IntToHex.
TP(BP) 7.0 есть анолагичные функции, я сейчас точно их непоню, см. Help
Отправлено: 09/01/2002, 16:20
Отправитель: skunk (регистрация: 04/01/2002, ответов на счету: 6)
РФ, Тольятти
Вопрос № 24 |
Уважаемые эксперты! Для изучения ассемблера необходим процессор от Intel или можно AMD? У меня AMD 1ГГц Duron ядро Morgan.<br>С уважением Александр.
Вопрос задал: Александр
Отправлен: 05/01/2002, 16:03
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS
_______________
Отвечает Sensey
Здравствуйте, Александр!<br>Вообще-то ассемблер есть у каждого процессора. Я например пишу<br>для платформы x86 и x51, Артем Шегеда еще и для TMS...<br>По существу вопроса:<br>Оба эти проца поддерживают платформу x86. Поэтому дерзай!<br>Единственно, что ты не сможешь исполнять - это набор инструкций SSE2(это только P4), но я думаю, что это не страшно...<br><br>
Отправлено: 05/01/2002, 17:02
Отправитель: Sensey (регистрация: 28/12/2001, ответов на счету: 263)
Тел.: (0572) 41-76-04 д.
ICQ 105679124 - пока не работает
Украина, Харьков
_______________
Отвечает root
Доброе время суток, Александр!
Для изучения Ассемблера подоидет любой IBM-совместимый процессор.
Отправлено: 05/01/2002, 20:10
Отправитель: root (регистрация: 28/12/2001, ответов на счету: 14)
_______________
Отвечает mihhey
Здравствуйте, Александр!
AMD-это x86-cовместимый процессор.Его инструкции идентичны,следовательно он подходит.
Отправлено: 05/01/2002, 21:30
Отправитель: mihhey (регистрация: 01/01/2002, ответов на счету: 10)
Россея, Питер
_______________
Отвечает Painbringer
Здравствуйте, Александр!
Да хоть Cyrix. Если ты изучаешь асм для 8086 - пень ММХ пользуй кого хошь.
Отправлено: 06/01/2002, 00:44
Отправитель: Painbringer (регистрация: 28/12/2001, ответов на счету: 297)
URL: http://limanski.narod.ru - нечто наподобие домашней страницы
Россия, Дзержинск, Нижегородская обл.
_______________
Отвечает Broken Sword
Добрый день, Александр!
для ассемблера - хоть спектрум (и вообще чем старее тем лучше)
Отправлено: 06/01/2002, 01:36
Отправитель: Broken Sword (регистрация: 28/12/2001, ответов на счету: 308)
Украина, Одесса
_______________
Отвечает vitya
Доброе время суток, Александр!
сойдет любой совместимый с архитектурой 8086, а для защищенного
режима начиная 386. А разница идет уже в графических наворотах
так что сойдет.
Отправлено: 07/01/2002, 14:13
Отправитель: vitya (регистрация: 03/01/2002, ответов на счету: 7)
Armenia, Yerevan
_______________
Отвечает skunk
Доброе время суток, Александр!
Для того что бы учить асм, тип процессора глубоко до лампочки. Я например начинал на БК-0010. Просто у каждого проца есть свой набор команд, но набор основных команд, точнее ее мнемомика, способы адресации и т.п. у всех процев один.
Отправлено: 09/01/2002, 16:20
Отправитель: skunk (регистрация: 04/01/2002, ответов на счету: 6)
РФ, Тольятти
Вопрос № 26 |
Здравствуйте.
Сразу несколько вопросов чтобы не загромождать рассылку.
1. Почему запрещена непосредственная загрузка значений в сегментные регистры?
2. Регистр АХ - это часть регистра ЕАХ, или же они независимы?
3. Сколько всего регистров у Пентиума-4?
Вопрос задал: warewolf
Отправлен: 05/01/2002, 19:40
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS
_______________
Отвечает mihhey
Добрый день, warewolf!
1.Просто напросто потому,что не хватило команд (всего то 256)
2.ЕАХ вмещает 32 бита,то есть 32 единички или нолика.
А АХ-это первые 16 из них
mov ax,0AAFFH ;ЕАХ=0000AAFFh
mov ebx,0ABCDEF98h ;BX=EF98h
Отправлено: 05/01/2002, 21:37
Отправитель: mihhey (регистрация: 01/01/2002, ответов на счету: 10)
Россея, Питер
_______________
Отвечает Калашников Олег
Добрый день, warewolf!
Отвечаю:
1. Не знаю. Так, видимо, было задумано с самого начала, да и, наверное, архитектура процессора не позволяет это сделать.
2. Абсолютно верно. AX - младшая половинка регистра EAX (по аналогии с AH / AL).
3. Вот этого, к сожалению, не знаю. Не имею пока такой информации...
Отправлено: 06/01/2002, 03:19
Отправитель: Калашников Олег (регистрация: 29/12/2001, ответов на счету: 22)
Тел.: (095) 492-23-53
URL: http://www.kalashnikoff.ru - Информационный ресурс
ICQ №68951340
Россия, Москва
_______________
Отвечает Sensey
Доброе время суток, warewolf!
1. Не реализованы микрокоды команд (то есть просто нет таких машинных команд)
2. Да. АХ - Это младшие 16 бит ЕАХ
3. Много:)
Отправлено: 08/01/2002, 14:53
Отправитель: Sensey (регистрация: 28/12/2001, ответов на счету: 263)
Тел.: (0572) 41-76-04 д.
ICQ 105679124 - пока не работает
Украина, Харьков
Вопрос № 28 |
С Новым Годом, эксперты.
Заранее извиняюсь, что вопрос не по Ассемблеру, а по TC, однако я не знал, куда обратиться.
Итак суть проблемы:
Имеется (не падайте со стула) Turbo C++ v3.0. С некоторых пор я стал замечать, что места в "хипе" выделяется явно меньше, чем это возможно. Я написал тестовую прогу, измеряющую максимальное количество 10-и байтовых элементов, которое можно динамически разместить в памяти. Она гордо выдала мне 3766.
Полностью аналагичная программа для BP 7.0 выдала 36064. Результат меня ошеломил. Почему так? И что сделать, чтобы программа, написаная для ТС++ могла использовать всё доступное для хипа место?
Заранее благодарен.
Приложение:
Вопрос задал: G-nom
Отправлен: 05/01/2002, 23:20
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS
_______________
Отвечает vitya
Добрый день, G-nom!
Сказать честно я не знаю, но с помощью new, я получил гораздо
лучшие результаты 4109 и 5139, то есть 1030 больше, что однако
так и так не делает чести.:)
Отправлено: 07/01/2002, 14:21
Отправитель: vitya (регистрация: 03/01/2002, ответов на счету: 7)
Armenia, Yerevan
Вопрос № 29 |
Здравствуйте уважаемые эксперты!
Случилась такая беда: баловался с реестром - убил индикатор языка (тот, что у часов)
Вопрос: как восстановить?
ЗЫ: баловался много - че делал уже не помню :)
Вопрос задал: Эксперт Den
Отправлен: 05/01/2002, 23:20
Подгруппа: Пользовательская работа с Windows
_______________
Отвечает Tiger
Здравствуйте, Den!
Это еще одно доказательство, что баловство до добра не доводит. :)))
Вот тебе решение твоей проблемы. Лезешь в "Панель Управления", находишь там папку "Клавиатура", в ней вкладка "Язык" и ставишь галочку напротив "Отображать индикатор языка на панели задач". Вот все что надо сделать. :)))
Если все это сложно ;-) или тебе опять охото повозиться с реестром то просто добавь в ветку
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run] следующий параметр "internat.exe"="internat.exe"
В прилодении напишу файл, который надо создать в любом текстовом редакторе с расширением .reg и он тоже будет добавлять индикатор на панельку задач. Только не забудь перегрузить комп после запуска этого файла.
ЗЫ: Пустая строка в конце файла - обязательна!!!
ЗЫЫ: А могу я поинтересоваться: а Вы сами когда-либо переставляли Винду и вообще кроме как в реестре еще где-нить копались, в той же "панели управления" например? ;-))
Приложение:
Отправлено: 06/01/2002, 01:16
Отправитель: Tiger (регистрация: 28/12/2001, ответов на счету: 35)
URL: http://www.tigeer.narod.ru - Что-то вроде того
_______________
Отвечает Stealth
Приветствую Вас, Den!
За индикатор раскладки отвечает программа internat.exe
в каталоге windows. Попробуйте просто вставить ее ярлык в автозагрузку.
Отправлено: 06/01/2002, 02:09
Отправитель: Stealth (регистрация: 28/12/2001, ответов на счету: 5)
_______________
Отвечает DivX
Доброе время суток, Den!
Панель управления > Клавиатура > Язык > Отображать индикатор языка....
Отправлено: 06/01/2002, 05:50
Отправитель: DivX (регистрация: 28/12/2001, ответов на счету: 117)
_______________
Отвечает ЗЛОБНЫЙ КАРЛИК
Доброе время суток, Den!
В папке MustDie'а "Sysbckup" есть файлики (копии реестра), называются файлы rb000.cab, rb001.cab, rb.002.cab и т.д. (по умолчанию - 5), так вот ты их разархивируй, потом перезагрузи комп, зайди в Dos, Norton Commander, или любую Dos-оболчку, и скоприруй файлы (в папке Sysbckup, из тех которые ты разархивировал). Копировать надо user.dat и system.dat. Если нет Dosа, перезагрузи комп, нажми F8, выбери 5.Command promt only, и там пиши:
C:>copy C:\Windows\Sysbckup\user.dat C:\Windows\
C:>copy C:\Windows\Sysbckup\system.dat C:\Windows\
НЕ ЗА ЧТО НЕ ПЫТАЙСЯ ПЕРЕНЕСТИ ЭТИ ФАЙЛЫ ВО ВРЕМЯ РАБОТЫ WINDOWS, ИНАЧЕ МОЖЕТ ВОЗНИКНУТЬ СБОЙ, И СКОРЕЕ ВСЕГО ПОНАДОБИТЬСЯ ПОЛНАЯ ПЕРЕУСТАНОВКА!!!
Вы можете менять значение системных копий. Информация об этом хранится в файле scanreg.ini, параметр MaxBackupCopies. Просто ставите значение и все!
Отправлено: 06/01/2002, 08:49
Отправитель: ЗЛОБНЫЙ КАРЛИК (регистрация: 31/12/2001, ответов на счету: 6)
_______________
Отвечает mihhey
Приветствую Вас, Den!
Ты выкинул из реестра строку запуска файла internat.exe
Запусти утилиту c:\windows\system\msconfig.exe,зайди на вкладку автозагрузка
и поставь влажок
у файла internat.exe
и перезагрузись.
Отправлено: 06/01/2002, 13:21
Отправитель: mihhey (регистрация: 01/01/2002, ответов на счету: 10)
Россея, Питер
_______________
Отвечает vitya
Здравствуйте, Den!
Открываем control panel ->keyboar->ищем там show indicator
on the try Или из этой серии, снимаем->ставим->apply и все ок.
Отправлено: 07/01/2002, 14:09
Отправитель: vitya (регистрация: 03/01/2002, ответов на счету: 7)
Armenia, Yerevan
_______________
Отвечает Vladimir
Добрый день, Den!
Если еще не перезапускал ПК, старая копия реестра лежит в файлах System.da0 и User.da0. При загрузке надо войти в DOS и переименовать их соответственно в System.dat и User.dat. Ну, а если уже перезагрузил, тогда попробуй установить Windows поверх старого, но не уверен, что поможет.
Отправлено: 08/01/2002, 09:07
Отправитель: Vladimir (регистрация: 28/12/2001, ответов на счету: 22)
Россия, Конаково Тверской обл.
_______________
Отвечает Franchik
Приветствую Вас, Den!Дурень ты, вот что, посмотри и покопайся на рабочем столе
Отправлено: 08/01/2002, 12:37
Отправитель: Franchik (регистрация: 28/12/2001, ответов на счету: 9)
_______________
Отвечает skunk
Добрый день, Den!
Попробуй через панель управления.
Пуск->Настройка->Панель Управления->Клавиатура->Языки и раскладки -> ставим галочку (отоброжать индикатор на панели задач)
Отправлено: 09/01/2002, 16:20
Отправитель: skunk (регистрация: 04/01/2002, ответов на счету: 6)
РФ, Тольятти
Вопрос № 31 |
А как написать вирус ???
Вопрос задал: Pavlovskiy Dama
Отправлен: 06/01/2002, 03:02
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS
_______________
Отвечает Alexety
Доброе время суток, Pavlovskiy Dama!
1.Учишь ассемблер.
2.Скачиваешь здесь: www.Kalashnikoff.ru/Assembler/ книжку про написание вирусов.
3.Читаешь эту книжку 2-а раза.
4.Пишишь вирус.
Отправлено: 06/01/2002, 13:04
Отправитель: Alexety (регистрация: 28/12/2001, ответов на счету: 3)
Молдова, Кишинев
_______________
Отвечает mihhey
Добрый день, Pavlovskiy Dama!
А оно те надо?
Отправлено: 06/01/2002, 13:17
Отправитель: mihhey (регистрация: 01/01/2002, ответов на счету: 10)
Россея, Питер
_______________
Отвечает Andy Bitoff
Ручками, ручками!!!!!!
А если серьезно, то для начала надо почитать УК РФ. И все сразу станет ясно, как и зачем писать вирусы.
Отправлено: 06/01/2002, 21:42
Отправитель: Andy Bitoff (регистрация: 28/12/2001, ответов на счету: 47)
URL: http://bitoff.pisem.net - HomePage или что-то типа того :)
Россия, Санкт-Петербург
_______________
Отвечает root
Здравствуйте, Pavlovskiy Dama!
Если это в благих целях, то могу посоветовать книгу "Энциклопедия компьютерных вирусов" Д.А.Козлова, А.А.Парандовского и А.К. Парандовского. Издательства "СОЛОН-Р" из серии "аспекты защиты". Кстати, если не секрет, а зачем?
Отправлено: 06/01/2002, 23:35
Отправитель: root (регистрация: 28/12/2001, ответов на счету: 14)
_______________
Отвечает skunk
Добрый день, Pavlovskiy Dama!
Смотря какой вирус ты хочешь своять. Если простой типа для DOS заражающий COM и не резидент, то покупаешь книжку типа "Пишем вирус и антивирус" автора не помню, но подбной шняги сейчас как грязи. А дальше путь для творчества.
В общих чертах, что надо знать для написания вируса:
1. Асм, чем лучше знаешь, тем больше возможностей для "творчества".
2. Функции той оси для которой будет писаться вирус. Знать надо так, чтоб от зубов отскакивала.
3. Формат поражемых файлов и как они запускаються на выполнение в конкретной оси.
4. Формат дисковой системы той оси в которой вирус будет трепыхаться.
5. Уголовный кодекс той страны в которой ты живешь, в не которых странах СНГ за такое творчество введена уголовная ответственность.
Отправлено: 09/01/2002, 16:21
Отправитель: skunk (регистрация: 04/01/2002, ответов на счету: 6)
РФ, Тольятти
Вопрос № 32 |
Здравствуй Олег!!!
С почти наступившим Вас.
Это Rowdyman
У меня есть маленькое соображение насчет изменение рассылки, ко
мне чато не доходят некоторые выпуски рассылки (думаю, что не один я такой).
Поэтому я думаю, что надо в заголовке рассылки помещать ее номер, тогда
сразу видно какая рассылка пришла, а какая нет. И разумеется на твоем сайте
тоже вставлять номер, тогда легче ее скачать ("Вышла рассылка Ассемблер
учимся программировать (FAQ) N 200").
Еще вот одно, у меня почему-то не работают сслыки на FAQ и предыдущие
выпуски. Если не сложно проверьте пожалуйста.
Ну вот высказался, а теперь предлагаю вашему вниманию небольшое
стихотворение сочиненное по мотивам рассылки.
Ассемблер это просто...
(по мотивам одноименной рассылки)
Опять холодная зима, опять метель идет,
А вьюга вьется за окном, заснуть мне не дает,
Иду включаю темный комп, и зырю на экран,
А там тестиловка идет, "Кончай быстрей, баран!".
Ну вот и Windows синий фон. "Ура! Конец почти!",
"Сейчас loadind ocx. Ты это вот учти."
Отлично! Все завешено! Иконочки стоят.
Но кто же, блин, опять их все повыстроил подряд?
А ладно, позже растащу, всех их я по своим местам!
А щас давай, я отвлекусь игрою в классный гам.
Да ну, уж лучше я займусь да асмик изучу,
Потом, я вирус напишу и славно пошучу.
Про вирус я конечно вру, но асм учить нужда,
Тогда как без него, на всем програмить лабуда.
Чтоб все работало быстрей, а не у Билли как
Ты асм скорее изучай и будет все ништяк.
*********
Так вот решил я стой поры ассемблер поучить,
Читал я авторов таких, каких вообще лечить.
А вот попалася ко мне рассылочка о нем,
И там написано легко и сделана путем.
А автор той рассылки был, конечно же, Олег
Нужда в рассылочке такой была уж целый век.
Спасибо скажем мы ему, что время не жалел,
Хоть отвлекали мы его во время важных дел.
А он не бросил не забил, а даже сайт создал,
Где много дельного лежит, я брал там и читал.
Создал экспертов, сделал приз, причем за просто так
Ему никто не помогал и не давал пятак.
Советы дельные давал не забывая честь
И сделал много он еще, всего не перечесть.
Надеюсь дальше он пойдет, а мы помочь должны,
Пусть знают все какой герой пришел из той страны.
**********
Эксперты мудрые мои, и вам земной поклон,
Не забываете про нас, хоть целый нас вагон.
Спасибо Dron и Broken Sword, Ayl и VDragon,
Sensey и Змей, а вам вообще большой большой поклон.
А так же все, все, все, все кто время не жалел,
Не отвечал вопросом на вопрос и с нами сожалел.
И я за тех кто рад помочь и не щадит себя,
И я за тех кто жизнь несет, не материт тебя.
Надеюсь так пройдет и год, потом пройдет другой,
А Вы все так же на посту, не снится Вам покой.
Спасибо так же Вал.Ик. за четкие слова,
Хоть не эксперт, зато борец, как говорит молва.
***********
Ну вот закончим краткий курс, смотрю на мыло я
Опять рассылочка пришла любимая моя.
Сейчас засяду я читать, открою новый мир
Все потому что наша жизнь, Вам не простой кефир.
Потом вопросик напишу и буду ждать ответ.
И под конец всем от меня огромнейший привет.
( Rowdyman, Иваново 27 декабря 20001 )
P.S. Извините за ошибки в тексте, исправить не успел, очень торопился.
Вопрос задал: Rowdyman (a_lomovskih@mail.ru)
Отправлен: 06/01/2002, 10:15
Подгруппа: Общие вопросы по программированию на Ассемблере под Win32
_______________
Отвечает Digger
Здравствуйте, Rowdyman!
Молоток
Отправлено: 08/01/2002, 22:25
Отправитель: Digger (регистрация: 28/12/2001, ответов на счету: 24)
URL: www.digger-mib.chat.ru/freeware.htm - Мой софт :)
Вопрос № 33 |
Здавствуйте.
К вопросу о модеме.
Пробовал я прописывать строку AT+GCI=B5 (В5 - это США) где только можно, все равно не помогает.
Кстати, какой модем лучше - Motorola или Rockwell (имею ввиду внутренние программные).
Вопрос задал: warewolf
Отправлен: 06/01/2002, 12:47
Подгруппа: Модели, виды и типы компьютеров (hard)
_______________
Отвечает Broken Sword
Доброе время суток, warewolf!
Мне все же любопытно узнать, во второй раз спрашиваю: ЧТО ТАКОЕ ПРОГРАММНЫЙ МОДЕМ???? Без дров модемов не бывает, или что ты вообще имеешь ввиду???
Rockwell модемы НЕ производит, только чипсеты для них и поставляет куче фирм (не учитывая того, что более 90% noname модемов стоят именно на Rockwell-ах).
Поэтому сложно сказать в том плане, что, например, теперь Rockwell перекупил (или ему подарили) линейку модемов IDC на чипе Lucent (AT&T), которые считаются одними из самых лучших в мире, а например, тот же Genius с тем же Rockwell-ом USB размером с спичечный коробок - от него одно время никак не мог избавиться ни один комп. магазин города.
Если выбирать из моторов и роквелов (не IDC), то я бы выбрал первый. Почему? Просто фирма "мотор" явно посолиднее, у них ТОЛЬКО СВОИ ЧИПЫ (они ни у кого ничего не покупают), они на этом деле долго сидят и вообще, спроси на улице любую бабушку, знает ли она, что такое Motorola и что она думает про Rockwell??? (хотя по последнему критерию (известность в народе) не совсем корректно судить).
Вообще Rockwell считался когда то одним из самых паршивых и дешевых чипов, если на модеме небыло ярлыка с именитым названием (какой нить WiseCom), если вообще не было никакого названия - значит это Rockwell. Это какой-то дальний родственник Hayes-а.
p.s. у меня щас IDC 2814BXL Voice, до него был Rockwell 28XXX (непомню noname), так вот я б опять себе взял тот Rockwell (по скорости и качеству шестым чувством он был лучше...). Просто я жертва ярлыка (бренда), не могу носить noname тряпки... это своего рода болезнь.
Про страну - попробуй др. варианты (почему именно США?)
Отправлено: 06/01/2002, 14:10
Отправитель: Broken Sword (регистрация: 28/12/2001, ответов на счету: 308)
Украина, Одесса
Вопрос № 35 |
Хая тов.Эксперты.
У мня такая трабла: Винт IBM на 40 гигов не определяется в БИОСе ... причём на одном компе, вроде как там АМИ БИОС стоял, он всё-таки определился, но размер его был равен нулю....
не подскажите, чё с ним такое....
ЗЫ: ещё вчера он работал, а сёня уже нет......
трудно без него....непревычно :(
Алексей.
Вопрос задал: Lex
Отправлен: 06/01/2002, 20:04
Подгруппа: Модели, виды и типы компьютеров (hard)
_______________
Отвечает DivX
Доброе время суток, Lex!
Древний биос (больше 8ГБайт не берет) - это лучший случай. Гораздор хуже если полетел сам диск. Возможно плохо подсоединен IDE-шлейф или питание. Попробуйте установить диск на другую маму, а лучше, если есть возможность, на отдельный PCI-контроллер(например, Promise FastTrack 100), тогда то вы точно установите "виновника".
Отправлено: 07/01/2002, 08:13
Отправитель: DivX (регистрация: 28/12/2001, ответов на счету: 117)
_______________
Отвечает Sensey
Доброе время суток, Lex!
То есть вчера он был а сегодня нет?-тогда прими валидол и иди куда нибудь к спецам-может информацию прочитают и скопируют куда-нибудь...
Если эта система его ни разу не видела-значит биос перепрошить надо...
ЗЫ Бывает. Винты умирают... У меня с месяц назад 10 Фуджа ушла в спячку и не вышла... Сочуствую.
Отправлено: 08/01/2002, 15:34
Отправитель: Sensey (регистрация: 28/12/2001, ответов на счету: 263)
Тел.: (0572) 41-76-04 д.
ICQ 105679124 - пока не работает
Украина, Харьков
Вопрос № 36 |
Уважаемые эксперты,подскажите пожалуйста,как перепрограммировать таймер ,чтобы он давал прерывания в промежутки,отличные от 55мс.
Вопрос задал: mihhey (mihhey@pochtamt.ru)
Отправлен: 07/01/2002, 15:40
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS
_______________
Отвечает Broken Sword
Доброе время суток, mihhey!
Это сделать можно, но только на уровне портов. На самом деле программируемый интервальный таймер - весьма сложная система, состоящая из трех частей - трех каналов таймера, каждый из которых можно запрограммировать для работы в одном из шетси режимов. (открой 331 стр. Зубков SE)...
В двух словах - после долбания портов (см. приложение) мы записываем число в другой порт, которое начинает уменьшаться со скоростью 1193180 раз в секунду, и когда оно достигает 0 - канал 0 вызывает прерывание IRQ0. Начальное значение этого счентчика по умолчанию составляет FFFFh, т.е. прерывание вызывается 1193180/65536=18,20648 раз в секунду, т.е. это минимально возможное кол-во вызовов прерывания в секунду. Но запомни: таймер - глобальный ресурс )), пререпрограммировать его в виндах можно только с ведома самой ОС если она это вообще позволяет (а она это не позволяет).
Кроме того, при перепрограммировании в другой режим сбываются системные часы и перестают норамльно функционировать устройства, использоующие информацию от системного таймера (например, накопители гибких дисков), так что be careful.
Приложение:
Отправлено: 07/01/2002, 22:13
Отправитель: Broken Sword (регистрация: 28/12/2001, ответов на счету: 308)
Украина, Одесса
_______________
Отвечает vitya
Приветствую Вас, mihhey!
повесь на 08h прерывание свой обработчик, и накопляй там сумму,
как только уже сравнялось с твоим числом делай то, что надо.
Приложение:
Отправлено: 08/01/2002, 09:32
Отправитель: vitya (регистрация: 03/01/2002, ответов на счету: 7)
Armenia, Yerevan
Вопрос № 40 |
Здравствуйте уважаемые эксперты!
Что-то рассылочка совсем заглохла!:( Ну нельзя же так долго праздновать! Алкоголь вреден для вашего здоровья!:)))
Теперь собственно говоря к делу!
Как можно реализовать ввод и хранение двух и более строк с клавиатуры. Т.е. если я обозначаю место в памяти для вводимых строк как:
.data
n1 db 6
n2 db 6
то после того как введу первую строку, то она займет место второй, в результате, вместо ввода второй строки получаем черт знает что!:) Этого можно избежать сделав так:
.data
n1 db 6,7 dup (?)
n2 db 6
но тогда получаем исполняемый файл приличного размера, если надо хранить большую строку.
Как можно сделать это по нормальному, без увеличения размера исполняемого файла?
С уважением ILYA D.
Вопрос задал: ILYA D.
Отправлен: 09/01/2002, 02:09
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS
_______________
Отвечает Калашников Олег
Здравствуйте, ILYA D.!
Для такой цели обычно отводится оперативная память при помощи функции 48h прерывания 21h.
Однако, перед тем, как пытаться отвести первый блок памяти, необходимо ужать существующую память, т.к. по умолчанию она вся отводится загруженной программе.
Для этого используется функция 4Ah прерывания 21h. Как ее использовать - написано, например, в HelpAssm или TechHelp. Рекомендую также прочитать основную рассылку - там все подробно описано (даже использование XMS).
Отправлено: 15/01/2002, 03:03
Отправитель: Калашников Олег (регистрация: 29/12/2001, ответов на счету: 22)
Тел.: (095) 492-23-53
URL: http://www.kalashnikoff.ru - Информационный ресурс
ICQ №68951340
Россия, Москва
_______________
Отвечает Dron
Добрый день, ILYA D.!
Ты сам не понимаешь что ты пишешь...
Ты можешь писать либо конкретные значения, (в твоем случае это 6) которые займут один байт на каждое значение.
Либо ты можешь писать dup. формат dup такой: <количество> dup (<конкретное значение>).
Но в любом месте вместо конкретных значений ты можешь ставить знак вопроса, который показывает что данные неинициализированы, и тебе пофиг что там будет при старте.
Вот и пиши соответственно:
.data
n1 db 10 dup (?)
n1 db 10 dup (?)
Файл от такой записи не увеличится! но учти что неинициализированные записи лучше ставить после инициализированный, иначе неинициализированные тоже будут включены в файл (заполнены нулями)
Отправлено: 09/01/2002, 11:08
Отправитель: Dron (регистрация: 28/12/2001, ответов на счету: 233)
URL: http://spawnhole.narod.ru/asmos/asmos.html - Операционная система с нуля!
_______________
Отвечает Артём Шегеда
Добрый день, ILYA D.!
Перераспределяй памать динамически, функциями управления памятью (fns 48h, 49h, 4Ah). Второй вариант - выделять кусок стека:
sub sp,8
mov bp,sp
add bp,2
mov byte ptr [bp],6
mov dx,bp
; Внимание! Здесь DS должен быть равен SS
mov ah,0Ah
int 21h
теперь у тебя по адресу SS:DX расположена строка. Но перед вызовом int 21h DS должен быть равен SS: это всегда справедливо для .COM, но для .EXE нужно перегрузить DS.
Отправлено: 09/01/2002, 12:16
Отправитель: Артём Шегеда (регистрация: 28/12/2001, ответов на счету: 25)
URL: http://www.shegeda.chat.ru/ - Пристанище неодинокого программиста
x-USSR, Харьков
_______________
Отвечает Broken Sword
Доброе время суток, ILYA D.!
и кто еще из нас больше выпил интересно
???????? помойму ты чето запорол! первый кусок - ты выделяешь 1 байт всего (у тебя нет dup-ов ни одного), а второй - 8 байт для первой и 1 б для второй.
Что значит "приличного размера"? Какая строка, такой и размер! вводи меньше значит.
нормально выглядит все так:
.data
n1 db 6,0,6 dup (?) ; 8 байт для первой строки (первый байт - макс. размер, если у тебя строка больше, то выделяй больше!!, 0 - реальное кол-во символов, 6 dup - по максимуму)
n2 db 6,0,6 dup (?) ; 8 байт для второй строки (аналогично)
Отправлено: 09/01/2002, 14:27
Отправитель: Broken Sword (регистрация: 28/12/2001, ответов на счету: 308)
Украина, Одесса
_______________
Отвечает Painbringer
Здравствуйте, ILYA D.!
А ты храни все это добро после кода (для ком файла). Там же можешь хранить и смещения своих строк если они не фиксированы. А так типа так вот:
... конец проги:
ret
st1 20 db (?)
st2 30 db (?)
Отправлено: 09/01/2002, 20:07
Отправитель: Painbringer (регистрация: 28/12/2001, ответов на счету: 297)
URL: http://limanski.narod.ru - нечто наподобие домашней страницы
Россия, Дзержинск, Нижегородская обл.
_______________
Отвечает Andy Bitoff
Приветствую Вас, ILYA D.!
Во-первых, n1 db 6 у тебя резервируется 1 байт и в него записывается число 6, также и во второй строке. Из-за этого и проблемы, я так думаю.
А чтобы уменьшить размер, используй следующую запись:
.data?
n1 db 10000 dup (?)
Тогда при компиляции размер файла останется прежним, а при запуске будет выделен указанный размер памяти.
C наилучшими пожеланиями Andy Bitoff.
Отправлено: 09/01/2002, 21:34
Отправитель: Andy Bitoff (регистрация: 28/12/2001, ответов на счету: 47)
URL: http://bitoff.pisem.net - HomePage или что-то типа того :)
Россия, Санкт-Петербург
Форма отправки сообщения (действительна до момента выхода следующего выпуска рассылки) |
Дополнительную информации по пользованию формой для подписчиков и экспертов можно получить, нажав на знак вопроса в соответствующем разделе, при этом информация будет отображена в отдельном окне.
(C) Москва, 2001. Авторское право принадлежит Калашникову О.А. Публичное размещение материала из рассылки, а также его использование полностью или частично в коммерческих или иных подобных целях без письменного согласия автора влечет ответственность за нарушение авторских прав. |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||