Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Ассемблер? Это просто! Учимся программировать (FAQ)
Ассемблер? Это просто! Учимся программировать (FAQ)
Выпуск N 077 |
Вопросы, которые поступили от подписчиков рассылки
"Ассемблер? Это просто! Учимся программировать"
Дата выхода: 2001-08-30
Вопрос №694
Уважаемые эксперты подскажите возможно ли в Винде 98 запаролировать папку, чтобы ни на сетевом, ни на локальном уровне в нее без пароля войти было невозможно.
Ответ
Здравствуйте, Dron!
Как говориться всё возможно!
Вообще, если уже установлена локальная сеть, то у каждой папки в свойствах есть закладка "Доступ", если нет то по идеи это все устанавливается в сетевом окружении, да и теже пароли будут действовать и для Нета, но если кто залезет через интернет я сомневаюсь, что для него "виндовский" пароль будет проблема, так что мое мнение пользоваться прогами сторонних производителей!
Да, и при ответе на вопрос №689, я допустил роковую ошибку по поводу mov al,1 , просто нельзя доверяться одной книги, какая бы классная она не была, и в этом меня убедил BrokenSword.. Так что извиняюсь перед Василем и всеми экспертами!
Кстати, может уважаемому Dron'у нужна небольшая помощь в написании операционной системы, думаю не один я хотел бы помоч..
С уважением, Orlando!
Отправил эксперт: Orlando
Эксперт отправил ответов (всего): 49
Экспертная группа: Пользовательская работа с Windows
Вопрос №699
Здравствуйте Уважаемые Эксперты.
У меня такой вопрос:
Почему не работает строка
mov ax,$
?
Ответ
Здравствуйте, Vadim_S!
Цитирую из руководства по TASM.
$
-----------------------------------------------------------------
Назначение: Операнд счетчика положения.
Замечания: Этот специальный символ представляет счетчик по-
ложения. Счетчик положение - это текущее смещение
в текущем сегменте в процессе ассемблирования.
(Этот операнд имеет тот же атрибут, что и метка
near "ближняя").
Счетчик положения представляет собой адрес, кото-
рый увеличивается так, что соответствует текущему
адресу так, как если бы каждый оператор в исход- ном файле уже оттранслировался.
Пример: helрMessage DB 'This is helр for the рrogram'
helрlength = $ - helрMessage
После ассемблирования этих двух строк идентифика-
тор helрlength будет равен длине данной строки.
Отправил эксперт: Василий
Эксперт отправил ответов (всего): 29
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №691
Здравствуйте!
Экспертам.
После очистки корзины не запускаются программы
через ярлыки рабочего стола.
Выводится сообщение: "Не удается найти SirC32.exe.
Эта программа необходима для открытия файлов типа
Приложение"
Перезапускаю комп и все опять работает.
Еще такая штука: когда запускал DrWeb, то комп
завис, а в строке проверки находилось
C:\RECYCLED\SirC32.exe
В корзине смотрел там его нет : - )
С уважением ...
Ответ
Здравствуйте, Alex12!
Мда... что я ещё могу сказать , ВИрус однако подхватили, причём такой что если его удалить (файл SirC32.exe) всё-равно не поможет ..
придётся систему переустанавливать.. Это новый вирус распространяющийся через электронную почту. Только новые антивирусы могут его обнаружить .Он регистрирует расширения файлов EXE,COM и невозможно удалить Тип расширения или изменить.
Отправил эксперт: klimenko (http://club.lsk.kz/myfoto/12.JPG - Фото)
Эксперт отправил ответов (всего): 3
Экспертная группа: Пользовательская работа с Windows
Вопрос №699
Здравствуйте Уважаемые Эксперты.
У меня такой вопрос:
Почему не работает строка
mov ax,$
?
Ответ
Здравствуйте, Vadim_S!
Я так понимаю, что ты хочешь получить в ax текущий адрес, поступай лучше так:
call nex
jmp nextx
nex:
pop ax
nextx:
А не работает наверное потому, что это предопределенная метка, а не переменная или значение..., хотяяяя точняком трудно сказать.., ну вот НЕЛЬЗЯ и ВСЕЕЕЕЕЕЕ!!
Отправил эксперт: Orlando
Эксперт отправил ответов (всего): 50
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №692
ОПНЬС ОНЛНВЭ ПЮГНАПЮРЭЯЪ ЙЮЙ ПЮАНРЮРЭ Я tlink.exe ОПХБЕЯРХ ОПХЛЕП ЙЮЙ ХЛ ЯНГДЮБЮРЭ ТЮИКШ .*inc;+.lib ЛНФЕР ЕЯРЭ ЙЮЙЮЪ ДНЙЮ МЮ ПСЯЯЙНЛ
Ответ
Здравствуйте, igor!
файлы .inc создаются в текстовом редакторе, а файлы .lib - создаются совсем не tlink'ом... а tlib'ом.
tlink создает только файлы с расширением .exe или .com или .sys... ну выполняемые файлы короче.
Отправил эксперт: Dron (http://spawnhole.narod.ru/asmos/asmos.html - Операционная система с нуля!)
Эксперт отправил ответов (всего): 82
Экспертная группа: Работа с MASM/TASM
Вопрос №699
Здравствуйте Уважаемые Эксперты.
У меня такой вопрос:
Почему не работает строка
mov ax,$
?
Ответ
Здравствуйте, Vadim_S!
Почему же не работает??? очень даже работает.
mov ax, $ b8 00 01
Никаких проблем. :))
Что ты хочешь получить этой комбинацией???
Отправил эксперт: Dron (http://spawnhole.narod.ru/asmos/asmos.html - Операционная система с нуля!)
Эксперт отправил ответов (всего): 83
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №700
Здраствуйте эксперты!
В 3-м выпуске рассылки Алег показал как переводить шестнадцатиичное число в десятичное.
Как сделать наобарот?
Без использования данной фо-лы:
128 64 32 16 8 4 2 1
0 0 0 0 0 0 0 0
8 4 2 1 8 4 2 1
Ответ
Здравствуйте, Alex!
А делается это так. Авось, поймешь на примере. Переведем 64530 в 16-ичную систему счисления.
64530 ¦ 16
------+-----
4033 ¦ ¦ 2 ¦
252 ¦ ¦ 1 ¦
+-----+-+ ¦
¦ 15 ¦ 12 ¦
+-----------+
т.е. 64530 в 10-ичной есть FC12 в 16-ичной.
Ну то есть, делим число на 16, целое записываем в таблице слева, остаток - справа.
1) 64530 делим на 16. Целое - 4033, остаток - 2
2) 4033 делим на 16. Целое - 252, остаток - 1
3) 252 делим на 16. Целое - 15 (т.е. F), остаток - 12 (т.е. C).
15 уже не делим на 16, т.к. 15<16. Ну, а результат записываем так:
15 12 1 2
F C 1 2
Отправил эксперт: Василий
Эксперт отправил ответов (всего): 30
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №700
Здраствуйте эксперты!
В 3-м выпуске рассылки Алег показал как переводить шестнадцатиичное число в десятичное.
Как сделать наобарот?
Без использования данной фо-лы:
128 64 32 16 8 4 2 1
0 0 0 0 0 0 0 0
8 4 2 1 8 4 2 1
Ответ
на калькуляторе (ну не будешь же ты в самом деле в столбик все это делить и вычитать!)
Отправил эксперт: Broken Sword (http://www.revolution.co.uk - скрытая реклама...)
Эксперт отправил ответов (всего): 108
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №702
По поводу комбинации f0 0f c7 c8
Дешифруется она так:
f0 lock
0f c7 c8 cmpxchg8b ax
На второй команде остановлюсь поподробнее.
Эта команда сама по себе специфична только для процов от пентиум и старше. В качестве операнда должна иметь указатель на 64 бита памяти. это определяется последним байтом.
0f c7 это собственно код команды
с8 этот байт носит название Mod R/M, то есть этот байт определяет адресацию через регистр или память.
формат у него таков:
mod 2 бита (11)
reg/коп 3 бита (001)
r/m 3 бита... (000)
Эта команда в случае если mod == 11b (регистр, а должна быть память) должна вызывать int 6 (недопустимая команда).
Но проблема в том что эта команда по ходу действительно выполняется, но у процессора возникают проблемы с адресами и вместо int 6 может вызваться int 0eh (страничное нарушение). Во всяком случае в Линуксе с этим борятся именно там.
Ответ
Здравствуйте, Dron!
Все понял, э-э-э-э ну я пощел ??
Отправил эксперт: Michael
Эксперт отправил ответов (всего): 19
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №686
Здравствуйте, уважаемые эксперты!
Проблема следующая – купили винт Maxtor 40-гиговый, БИОС не видит больше 32-х гигов. В мануале к винту написано, что такое может быть, если БИОС старый. Как заставить БИОС «увидеть» оставшиеся 8 гигов? Какой программой воспользоваться, где взять обновленный БИОС?
M/b Chaintech 5TTL, September 1997
Chipset Intel 82430TX
Буду рад квалифицированной помощи!
Ответ
Здравствуйте, Ворушин Роман!
Прошивку БИОС нужно искать на сайте производителя материнской платы, например ASUS нужно искать на сайте WWW.ASUS.COM (или что-то вроде)
если не знаешь название сайта, то воспользуйся сайтом drivers.ru где все фирмы представленны в алфавитном порядке :)
Отправил эксперт: VD (www.chat.ru/~vdragon_pas/index.htm - Программирование графики на Пакаль со вставками на)
Эксперт отправил ответов (всего): 49
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №669
Я наверно седня уже надоел, но вот еще вопрос, как поправить частоту обновления экрана програмно.
Ответы типа "Щелкни правой кнопкой по раб.столу..." просьба не присылать.
Спасибо.
Ответ
Здравствуйте, Евгений!
Через регистры таймера видеокарты, у каждой они свои ...
Отправил эксперт: VD (www.chat.ru/~vdragon_pas/index.htm - Программирование графики на Пакаль со вставками на)
Эксперт отправил ответов (всего): 50
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №708
Хочу написать прогу для работы с дискетами и возникл%E
Ответ
Отправил эксперт: Broken Sword (http://www.revolution.co.uk - скрытая реклама...)
Эксперт отправил ответов (всего): 110
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №705
Здравстуйте!
Объясните почему не получаеться(из виндового приложения) обратиться к ячейки с адресом 0000:0417h?
Расскажите как это сделать!!!! Или в Windows есть специальная функция, которая "получает" значение индикатора клавиатуры?????
Я писал следующий код, но Винда ругалась :(
1 вариант
mov byte ptr al,0000:[0417h]
2 вариант
mov edx,00000417h
mov byte ptr al,[edx]
Ответ
Здравствуйте, Дмитрий!
mov byte ptr al,0000:[0417h] - ты хоть сам понял че написал то???? аl и так байт че б ты там ему не говорил и не показывал, вообщем, промахнулся ты с byte ptr!
Отправил эксперт: Broken Sword (http://www.revolution.co.uk - скрытая реклама...)
Эксперт отправил ответов (всего): 111
Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32
Вопрос №703
Как мне в асмовской проце определить локальные переменные???
Чтобы они могли совпадать с переменноме в главной проге и при этом не былоб ошибок при компиляции???
Ответ
Здравствуйте, Дмитрий!
А у тебя че, проблемы с придумыванием имен? Вообще локальные переменные храни в стеке как [bp+1] [bp+2] и т.д.
Отправил эксперт: Painbringer
Эксперт отправил ответов (всего): 74
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №708
Хочу написать прогу для работы с дискетами и возникло
несколько вопросов.
1)На пятидюймовой дискете есть отверстие для отсчета
секторов на дорожке,а на трехдюймовой его нету.Тогда
откуда отсчитываются сектора?
2)Очевидно, что сектора на первой и последней дорожке
очень отличаются по длинне,так как количество секторов
на всех дорожках одинаково,а длинна дорожек переменная.
Тогда как получается, что объем всех секторов (512 байт)
одинаковый, если плотность записи постоянная?
3)Где можно найти подробную информацию по формату дискет?
(формат GPL промежутков,маркеров итд.)
Ответ
Здравствуйте, Damiano!
Ну кто тебе сказал что плотность записи постоянная?! Постоянно число секторов на дорожку. А отверстие в трехдюймовых дискитах в железяке.
Отправил эксперт: Painbringer
Эксперт отправил ответов (всего): 75
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №708
Хочу написать прогу для работы с дискетами и возникло
несколько вопросов.
1)На пятидюймовой дискете есть отверстие для отсчета
секторов на дорожке,а на трехдюймовой его нету.Тогда
откуда отсчитываются сектора?
2)Очевидно, что сектора на первой и последней дорожке
очень отличаются по длинне,так как количество секторов
на всех дорожках одинаково,а длинна дорожек переменная.
Тогда как получается, что объем всех секторов (512 байт)
одинаковый, если плотность записи постоянная?
3)Где можно найти подробную информацию по формату дискет?
(формат GPL промежутков,маркеров итд.)
Ответ
Здравствуйте, Damiano!
Ну кто тебе сказал что плотность записи постоянная?! Постоянно число секторов на дорожку. А отверстие в трехдюймовых дискитах в железяке.
Отправил эксперт: Painbringer
Эксперт отправил ответов (всего): 76
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №686
Здравствуйте, уважаемые эксперты!
Проблема следующая – купили винт Maxtor 40-гиговый, БИОС не видит больше 32-х гигов. В мануале к винту написано, что такое может быть, если БИОС старый. Как заставить БИОС «увидеть» оставшиеся 8 гигов? Какой программой воспользоваться, где взять обновленный БИОС?
M/b Chaintech 5TTL, September 1997
Chipset Intel 82430TX
Буду рад квалифицированной помощи!
Ответ
Здравствуйте, Ворушин Роман!
Один совет прежде чем начинать программировать BIOS позвони в сервисный центр и спроси сколько стоит перепрограммировать BIOS, а так же узнай сколько стоит восстановление испорченного BIOSа.
В общих чертах обновление BIOS происходит следующим образом.
1. Посети сайтфирмы-производителя твоей материнской платы, отыщи раздел BIOS Update, внимательно изучи инструкцию и скачай себе последнюю версию BIOS для своей системной платы (будь внимателен - в точности твоей:)), а также специальную программу для перепрограммирования флэш-памяти.
2. Операция обновления старых версий BIOS осуществляется, из-под DOS, поэтому придется создать загрузочную дискету, тщательно проверить ее на отсутствие bad-блоков, переписать туда все необходимые файлы.
3. . Перед загрузкой с системной дискеты зайди в BIOS (в подменю Advanced Chipset Features) и запретить копирование в SDRAM (System BIOS Cacheable - Disable, Video BIOS Cacheable - Disable), а также выбрать из подменю Advanced BIOS Features загрузку системы с флоппи-диска А:.
4. Существуют различные варианты защиты BIOS от перепрограммирования. Это, во-первых, перемычка на плате, аппаратно запрещающая перепрограммирование флэш-памяти, а во-вторых, опция Flash Protect в настройках самого BIOS. Для записи новой версии BIOS необходимо найти и снять эти защиты (только не забудь вернуть их после завершения процесса - это может спасти от некоторых вирусов, уничтожающих BIOS!!!).
5. загрузись с дискеты, запусти программу перезаписи флэш-памяти и... Нет, сначала сохраните текущую версию BIOS (все такие программы, как правило, предлагают сохранить текущую версию), а затем уже обновляйте свой BIOS. Файлы Award BIOS, как правило, имеют расширение ".BIN или *.AWD.
Не забудьте при первом после перепрограммирования включении компьютера войти в настройки уже новой версии BIOS, для начала выбрать из меню Load SETUP Defaults и только затем, возможно, изменять какие-то параметры.
При неудачном обновлении системного BIOS компьютер не загрузится:(
Почитай компьютер пресс №8 за 2001 год стр.52 там более подробно рассписано.
Отправил эксперт: Viktor
Эксперт отправил ответов (всего): 3
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №709
Привет всем !
Не подскажите, возможно ли законетиться к ftp серверу под дос(под виндовз я еще не умею писать проги на асме) и отослать туда некоторый файл, если да, то как? Может кто писал уже такую прогу. Help me please.
Ответ
Уважаемый aeron! Извините, но это вопрос из серии "а напишите ка мне прогу!!!". Так не канает. Задавай конкретный вопрос, или напиши сам и спроси че непонятно, тока не как тот товарисч, который прислал 200 строк текста и вежливо попросил прокомментировать!!!
p.s. Уважаемые эээээ..... подписчики! Убедительная просьба всем еще раз ознакомиться с правилами задавания вопросов! (мне наверно с правилами русского языка... ;( )
p.p.s. почему все эксперты ответили, что mov ax,$ - нету, нельзя и вообще это бред??? ничего подобного! я ее тыкал и мыкал так и этак, и если перед $ указать размер регистра, то все получается:
mov ax,word ptr $
mov al,byte ptr $
ну и т.п., тока вот записывает оно в указанный регистр действительно полный бред... код команды вот этой mov и еще от ip 2 цифры (кароче текущие байты)
Отправил эксперт: Broken Sword (http://www.revolution.co.uk - скрытая реклама...)
Эксперт отправил ответов (всего): 112
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №709
Привет всем !
Не подскажите, возможно ли законетиться к ftp серверу под дос(под виндовз я еще не умею писать проги на асме) и отослать туда некоторый файл, если да, то как? Может кто писал уже такую прогу. Help me please.
Ответ
Здравствуйте, aeron!
В DOS не возможно, стека TCP/IP там нет. Можно поставить под DOS
пакет, например PCTCP, а в этом пакете есть ftp клиент, значит сделать такую программу можно (теоретически). Но сложно.
Отправил эксперт: Bitman
Эксперт отправил ответов (всего): 1
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №703
Как мне в асмовской проце определить локальные переменные???
Чтобы они могли совпадать с переменноме в главной проге и при этом не былоб ошибок при компиляции???
Ответ
Здравствуйте, Дмитрий!
Используешь директиву LOCALS и локальные переменные начинаешь с префикса @@. Например:
LOCALS
mov ax, @@var
.
.
.
@@var DB 0
Отправил эксперт: Василий
Эксперт отправил ответов (всего): 31
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Подписаться на рассылки
Форма подачи вопроса
ВНИМАНИЕ!!! Пожалуйста, НЕ высылайте один вопрос сразу нескольким подгруппам! Дополнения к вопросам, на которые эксперт уже ответил НЕ следует направлять ведущему рассылки (я не успеваю!). Просто скомбинируйте первый вопрос и дополнение к нему, а затем заново отправьте его, используя приведенную ниже форму!Нажимайте кнопку "Отправить" только ОДИН раз и дождитесь полной загрузки страницы, иначе вопрос будет продублирован!
Регистрация в качестве эксперта
Архив выпусков
Ведущий рассылки,
Калашников Олег:
Assembler@Kalashnikoff.ru
ICQ No.: 68951340
URL сайта подписчиков:
http://www.Kalashnikoff.ru
______________
По вопросам сотрудничества, рекламы и спонсорства обращайтесь:
- Публичное размещение материала из рассылки: Cooperation@Kalashnikoff.ru
- Реклама на сайте, в книге и рассылках: http://www.Kalashnikoff.ru/Reklama.html, Reklama@Kalashnikoff.ru
- Издание книги (спонсорство): Sponsor@Kalashnikoff.ru
(C) Москва, 2001. Авторское право принадлежит Калашникову О.А. Публичное размещение материала из рассылки, а также его использование полностью или частично в коммерческих или иных подобных целях без письменного согласия автора влечет ответственность за нарушение авторских прав. |
Реклама на сайте Kalashnikoff.ru
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу | Рейтингуется SpyLog |
В избранное | ||