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

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


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

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

Выпуск № 169
от 15.01.2002, 13:48

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


Старейшины рассылки
(по состоянию на 15/01/2002, 13:48)

1. Broken Sword - ответов: 301.
2. Painbringer (нечто наподобие домашней страницы) - ответов: 296.
3. Sensey - ответов: 267.
4. Dron (Операционная система с нуля!) - ответов: 230.
5. змей - ответов: 163.



 Вопрос № 1

С прошедшим всех
Проблема такая МАСМ не хочет работать
пишу как указано в рассылке-c:\MASM\BIN\ML.EXE prog02.asm/AT
ответ
Fatal error A1000:connot open file:prog02.asm/AT
пробовал без АТ не помогает
подскажите что он хочет С УВАЖЕНИЕМ VLAD

Вопрос задал: vlad (rusovlad@racsa.co.cr)
Отправлен: 10/01/2002, 03:10
Подгруппа: Работа с MASM/TASM

_______________

Отвечает Sensey
Здравствуйте, vlad!
Пробел перед /AT ставить надо!!!!(N раз ортвечал...)
А вообще почитал плиз литературу о Дос о работе с командной строкой!



Отправлено: 10/01/2002, 09:23
Отправитель: Sensey (регистрация: 28/12/2001, ответов на счету: 267)
Тел.: (0572) 41-76-04 д.
ICQ 105679124 - пока не работает
Украина, Харьков

_______________

Отвечает Painbringer
Добрый день, vlad!
1. А ты файл свой prog02.asm создаешь в папке с масмом? если нет указывай путь полностью (например: c:\masm\bin\ml.exe d:\myprogs\asm\prog02.asm).
2. А /at пиши через пробел.


Отправлено: 10/01/2002, 13:27
Отправитель: Painbringer (регистрация: 28/12/2001, ответов на счету: 296)
URL: http://limanski.narod.ru - нечто наподобие домашней страницы

_______________

Отвечает Andy Bitoff
Здравствуйте, vlad!
Попробуй так:
c:\MASM\BIN\ML.EXE prog02.asm /AT
После .asm поставь пробел.


Отправлено: 10/01/2002, 18:17
Отправитель: Andy Bitoff (регистрация: 28/12/2001, ответов на счету: 43)
URL: http://bitoff.pisem.net - HomePage или что-то типа того :)
Россия, Санкт-Петербург

_______________

Отвечает Калашников Олег
Приветствую Вас, vlad!
Если Вы скачали архив основной рассылки по Ассемблеру, то прочтите внимательно Приложение № 2.

Между именем файла и /AT нужно ставить пробел!
Пример:
ml.exe prog.asm /AT


Отправлено: 10/01/2002, 21:14
Отправитель: Калашников Олег (регистрация: 29/12/2001, ответов на счету: 26)
URL: http://www.kalashnikoff.ru - Информационный ресурс
Россия, Москва




 Вопрос № 2

Здравствуйте уважаемые эксперты!

Прошу прощения, за вопрос по поводу ввода двух строк, я был не до конца точен(2Broken Sword - я не пил совсем!:) ). Там как многие, но не все догадались я использую (mov ah,0ah int 21h), вот.
Если использовать данную запись, то в исполняемом файле место заранее отводится только для n1, а лучше бы чтоб совсем не отводилось, чтоб не увеличивать исполняемый файл.

n1 db 6,0,6 dup (?)
n2 db 6,0,6 dup (?)

Было два решения:
1) Перераспределять память динамически - пока еще не все понятно мне(рано еще), лучше что-нибудь попроще, но если ничего другого не останется, то с этим разберусь.
2) Выделять кусок стека - 2Артём Шегеда объясните пожалуйста, add bp,2 - зачем вот это делать, не могу понять. Какой в этом смысл? Ведь и без этого программа работает.
2ALL А нет ли еще способов осуществления этой задачи?
Заранее всем спасибо!

С уважением ILYA D.

Вопрос задал: ILYA D.
Отправлен: 10/01/2002, 03:50
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS

_______________

Отвечает Артём Шегеда
Здравствуйте, ILYA D.!

Ну, "ADD BP,2" вставлено из-за того, что в доке по 8086 процу написано, что SP указывает на первое свободное слово памяти (вроде как туда должно заносится следующее сохраняемое значение) - следовательно, эта ячейка должна запороться. Если это не так, поправьте меня и, может быть, выгоните из экспертов.


Отправлено: 10/01/2002, 11:52
Отправитель: Артём Шегеда (регистрация: 28/12/2001, ответов на счету: 25)
URL: http://www.shegeda.chat.ru/ - Пристанище неодинокого программиста
x-USSR, Харьков




 Вопрос № 3

Здравствуйте, эксперты!
Я уже задавал этот вопрос, но так и не получил ответа.
Дело в том, что нужно считать пароль на АМИшный БИОС (батарейку вытаскивать не охота).
Программа Amipsw выдает ошибку Cmos error. Есть ли какие-либо другие для новых БИОСОв?
ЗЫ:Вообще дело довольно-таки интересное: я сам лично поставил пароль на вход в БИОС и после подтверждения, сохранения и перезагрузки копмпьютера захожу туда, а он меня не пускает.
В чем может быть дело не пойму, что это за глюк?

Вопрос задал: Дмитрий
Отправлен: 10/01/2002, 07:05
Подгруппа: Модели, виды и типы компьютеров (hard)

_______________

Отвечает змей
Здравствуйте, Дмитрий!
Хе, интересно если ты выдернишь бытарейку то пассворд все равно останеться,
мыльни мне на snake@asia.pv.uz
Я те вышлю прогу..


Отправлено: 10/01/2002, 08:16
Отправитель: змей (регистрация: 28/12/2001, ответов на счету: 163)

_______________

Отвечает StiGGeR
Доброе время суток, Дмитрий!

Попробуй пароль AMI_SW


Отправлено: 10/01/2002, 08:41
Отправитель: StiGGeR (регистрация: 02/01/2002, ответов на счету: 13)
Россия, Уфа

_______________

Отвечает Painbringer
Здравствуйте, Дмитрий!
Ну типа может у тебя там какие caps lockи нажаты были или что нибудь в этом духе. А может пароль не тот.


Отправлено: 10/01/2002, 13:26
Отправитель: Painbringer (регистрация: 28/12/2001, ответов на счету: 296)
URL: http://limanski.narod.ru - нечто наподобие домашней страницы




 Вопрос № 4

друзья, у меня такой вопрос. на компе стоит NT русская и NT английская. Хотел поставить еще и 98-й. Запускаюсь с CD, стартую setup, все начинается хорошо, но когда дело доходит до scandisk, почему-то проверка начинается с диска d, и выводится сообщение о том, что scandisk не работает с дисками, размеченными таким образом (пишет что кластеры более 64 kb). Причем в биосе ничего не менялось (кроме Boot Sequence), разметка FATовская. Что за хрень? Не пойму. Подскажите кто знает, please.
Вопрос задал: pasha
Отправлен: 10/01/2002, 07:57
Подгруппа: Пользовательская работа с Windows

_______________

Отвечает UFO
Приветствую Вас, pasha!
RTFM setup.txt в директории инсталяции

При установке Windows 98 на компьютер с дисками, созданными
Windows NT, возможно возникновение следующей ошибки:

"Жесткий диск имеет раздел FAT с размером кластера 64 КБ. Поскольку
ScanDisk не может работать с такими дисками, установка не может быть
продолжена. Для завершения установки необходимо произвести разделение
жесткого диска и произвести форматирование с размером кластера в 32 КБ
или меньше, а после этого повторить установку."

При запуске программы установки с параметром "/is" (т.е., Setup /is)
программа ScanDisk не будет запущена и данная ошибка не возникнет.


Отправлено: 10/01/2002, 08:18
Отправитель: UFO (регистрация: 28/12/2001, ответов на счету: 70)
Россия, Южно-Сахалинск

_______________

Отвечает DivX
Здравствуйте, pasha!
Видимо не просто FAT, а FAT16, который Scandisk'у явно не по душе. Конвертируй разделы в FAT32. Сделать это можно любой соостветствующей утилитой, начиная с fdisk'a.


Отправлено: 10/01/2002, 17:15
Отправитель: DivX (регистрация: 28/12/2001, ответов на счету: 117)

_______________

Отвечает Tiger
Здравствуйте, pasha!
можешь просто отменить запуск Scandisk введя параметр is, т.е. в командной строке пишешь: setup.exe /is и Scandisk не будет запускаться.

ЗЫ: А вообще-то, грамотнее сначала установить 98-ю, а потом НТ. Дело в том, что 98-я Винда затрет тебе Мастер Бут Рекорд своей и в НТ тебе вряд ли удасться загрузиться. :(


Отправлено: 11/01/2002, 00:20
Отправитель: Tiger (регистрация: 28/12/2001, ответов на счету: 36)
URL: http://www.tigeer.narod.ru - Что-то вроде того




 Вопрос № 5

Привет, всем!!!
Всех с Новым Годом!!!
У меня таких два вопроса:
1) Что выполняет команда с кодом 66h (db 66h)
2) Что за команда порта 64h c номером ddh или d1h.

Вопрос задал: Эксперт DiGiT
Отправлен: 10/01/2002, 11:19
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS

_______________

Отвечает Painbringer
Приветствую Вас, DiGiT!
1. А что там после то идет? это может быть и add и adc и inc и еще что нибудь.


Отправлено: 10/01/2002, 13:26
Отправитель: Painbringer (регистрация: 28/12/2001, ответов на счету: 296)
URL: http://limanski.narod.ru - нечто наподобие домашней страницы

_______________

Отвечает RelB
Здравствуйте, DiGiT!
1. Это не команда, а префикс. Префикс разрядности операнда. Т.е. если мы находимся в 16 битном сегменте, то операнды процессором будут восприниматься как 32-х битные, а если в 32-х битном сегменте, то наоборот.

2. Насколько я знаю, то эта команда d1h, запись байта в выходной порт (порт мыши PS/2), в современных компьютерах мышь PS/2 и клава совмещены (я имею в виду контроллер, он у них один на двоих).


Отправлено: 11/01/2002, 08:38
Отправитель: RelB (регистрация: 28/12/2001, ответов на счету: 5)




 Вопрос № 6

Здра!
Мой коллега поставил себе Windows XP, и у него такая проблема:
По локальной сети не может зайти на другие компы в зашаренные папки.
Все компы видит, заходит, видит список зашаренных папок, а дальше при попытке зайти зависает...
Инет есть, почта тоже...
Кто что посоветует?
Сам знаю, что можно поставить другую винду, еще варианты есть?

Вопрос задал: Эксперт Sensey
Отправлен: 10/01/2002, 12:01
Подгруппа: Пользовательская работа с Windows

_______________

Отвечает DivX
Приветствую Вас, Sensey!
Проверь, не запущен ли AVP Monitor - как я слышал , именно он может приводить систему в зависание при доступе к ресурсам сети.


Отправлено: 10/01/2002, 17:15
Отправитель: DivX (регистрация: 28/12/2001, ответов на счету: 117)

_______________

Отвечает Калашников Олег
Добрый день, Sensey!

XP требует дополнительной установки драйвера для локальной сети, если в ней присутствуют рабочие станции более старных версий Windows. Точно говорю!

Вставьте дистрибутив и запусите Setup на том компьютере, где стоит XP. Внимательно прочтите, что XP будет писать на экране!

Сам сталкивался с такой проблемой на работе...


Отправлено: 10/01/2002, 21:14
Отправитель: Калашников Олег (регистрация: 29/12/2001, ответов на счету: 26)
URL: http://www.kalashnikoff.ru - Информационный ресурс
Россия, Москва




 Вопрос № 7

подскажите пожалуйста, как можно удалять символы из данной строки? я умею только так: создать два массива и из одного перенести в другой только нужное. А можно ли как-то, не используя второго массива?
Вопрос задал: Panamka
Отправлен: 10/01/2002, 12:17
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS

_______________

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

Проверяй и только нужное переноси в начало массива, не забудь закрыть потом строку.


Отправлено: 10/01/2002, 12:22
Отправитель: Dron (регистрация: 28/12/2001, ответов на счету: 230)
URL: http://spawnhole.narod.ru/asmos/asmos.html - Операционная система с нуля!

_______________

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

например попробуй сдвинуть все последующие символы на один символ налево.


Отправлено: 10/01/2002, 12:55
Отправитель: vitya (регистрация: 03/01/2002, ответов на счету: 6)
Armenia, Yerevan

_______________

Отвечает VD
Здравствуйте, Panamka!
Логика тут такая, находишь символ, и все что после символа двигаешь например командой movsb на байт назад, затерая его :)


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

_______________

Отвечает Артём Шегеда
Приветствую Вас, Panamka!

Для этого есть команда копирования строки символов: movsb.
Ниже дан только алгоритм удаления строки символов. StringSegment, StringOffset, SymbolOffset, StringLength и RemoveLength - константы.

mov di,SymbolOffset; адрес удаляемого символа
lea si,[di+RemoveLength]; адрес следующего символа
mov cx,StringSegment
mov ds,cx
mov es,cx
mov cx,StringLength; длина всей строки
sub cx,StringOffset-SymbolOffset+RemoveLength; длина оставшегося кусочка
cld; работа с приращением адреса
rep movsb

StringSegment - сегмент строки (seg Str)
StringOffset - смещение строки в сегменте (offset Str)
SymbolOffset - смещение символа в сегменте
StringLength - длина строки (с закрывающим 0)
RemoveLength - длина удаляемой строки


Отправлено: 10/01/2002, 14:57
Отправитель: Артём Шегеда (регистрация: 28/12/2001, ответов на счету: 25)
URL: http://www.shegeda.chat.ru/ - Пристанище неодинокого программиста
x-USSR, Харьков

_______________

Отвечает root
Доброе время суток, Panamka!
Можно. Пусть длина строки s равна n, а удалить нужно k-й символ.Делается это так: s[i]=s[i+1] по всем i от k до n-1.

Например:

for ( i=k;...


КОММЕНТАРИЙ АДМИНИСТРАТОРА
Примеры программ необходимо вводить в "Приложение", символы скобок (типа тегов) неверно отображаются... Данный пример показан неполностью!



Отправлено: 10/01/2002, 17:37
На момент выхода рассылки эксперт в базе не был найден.

_______________

Отвечает DiGiT
Приветствую Вас, Panamka!
Вопрос сформулирован не точно.
Например
mas1 db n1 dup(?)
mas2 db n2 dup(?)
  mov     cx,kolvo_symbols
  lds     si,mas1;или с того символа с какого будешь копировать
  les     di,mas2;или начиная с какого вставлять
cld
rep movsb
Или если определенные символы или элементы то просто производи сравнение и по потребности занос элемента в цикле.


Отправлено: 11/01/2002, 06:11
Отправитель: DiGiT (регистрация: 28/12/2001, ответов на счету: 143)

_______________

Отвечает Bart Simpson
Приветствую Вас, Panamka! сдвигай их

Отправлено: 11/01/2002, 21:23
Отправитель: Bart Simpson (регистрация: 28/12/2001, ответов на счету: 28)




 Вопрос № 8

Здравствуйте эксперты.
Вопрос наверно не потеме.
Есть такая специальность техник-программист.
Что за профессия, чем занисается техник.
Обьясняю, есть дама, учится на техника-программиста.
Вышла на диплом,задание описать программу, сама она незнает
кем будет,поэтому спрашиваю вас в какой области писать диплом,
которым вы как поняли прийдется мне заниматься.
Что требуется вдипломе, какие познания необходимо раскрыть.
Спасибо и досвидания

Вопрос задал: oleg
Отправлен: 10/01/2002, 14:33
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS

_______________

Отвечает vitya
Здравствуйте, oleg!

Если честно, то у нас в фирме техником-программистом называется программист-студент и его работа по идее (на самом-то деле это, конечно, не так) заключается в чистом кодировании алгоритмов, написанных программистами более высокого или реализации пользовательского интерфейса.
А если заканчивает технический вуз, то например
"Моделирование работы сетевой карты" (расчет статистических параметров, алгоритмы для избежания коллизий, выход из коллизий) вполне сойдет. Или же "Моделирование электронных схем" и техника и программирование.


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

_______________

Отвечает Sensey
Доброе время суток, oleg!
Ну у нас лично техник-пограммист сидела на программаторе и прожигала микрухи... Или сопровождение документации... То есть секретарская работа. По моему личному мнению, техники, это люди, нужные для "Принеси подай, иди на... не мешай"
То есть типа лаборанта в лаборатории или чернорабочего на строительстве...


Отправлено: 10/01/2002, 15:10
Отправитель: Sensey (регистрация: 28/12/2001, ответов на счету: 267)
Тел.: (0572) 41-76-04 д.
ICQ 105679124 - пока не работает
Украина, Харьков

_______________

Отвечает DiGiT
Добрый день, oleg!
Так пусть например проектирует какую-нить систему, например создание сети на основе Юникс+разработка утилит.


Отправлено: 11/01/2002, 05:30
Отправитель: DiGiT (регистрация: 28/12/2001, ответов на счету: 143)




 Вопрос № 9

Здравствуйте уважаемые эксперты. Может кто то сталкивался с такой проблемой: Имеется winGate-клиент, для доступа в интернет некоторой игрушки, однако при его установки , все игры использующие локалку пытаются соединится с интернет сервером данной игры, это не совсем удобно, хотелось бы узнать где это отключается ?, понятно шо это должно отключатся локально на каждой машине с установкой winGate-клиент, при отключении WRS на сервере, клиент всё равно пытается влезть в инет и виснет ?
Заранее благодарен с уважением,
Кранбалка !!!! :)))
P.S. А чего в бэте форма отправки сообщений не работает ?

Вопрос задал: Кранбалка
Отправлен: 10/01/2002, 17:28
Подгруппа: Пользовательская работа с Windows

_______________

Отвечает StiGGeR
Добрый день, Кранбалка!

Попробуй в реестре найти урл и его прибить.

А в бат просто не поддерживает такие кнопочки/формочки. Напиши криэйтерам - мож допишут.:))


Отправлено: 10/01/2002, 18:27
Отправитель: StiGGeR (регистрация: 02/01/2002, ответов на счету: 13)
Россия, Уфа




 Вопрос № 10

Привет экспертам.
Возник вот у меня такой вопрос. Не то, чтоб это мне надо зачем то было, но любопытно. Есть такая конторка, Microsoft называется. У нее есть такой продукт - Windows 98 (допустим) (aka Мастдай). При загрузке у него появляется заставка. Так вот. Он значится то заставку малюет, то текст выводит (ну что там в ваших автоекзецах), при это видеорежим не меняется (это типа монитор мой говорит, что не меняется). Каким макаром это делается. Таже фигня видна с редхатовским лило.
Хотя может монитор глючит - ADI MicroScan M700. В настройках ему указываю отображать видеорежим - при смене режима выводится инфа о нем.

Вопрос задал: Painbringer (limansky@beep.ru)
Отправлен: 10/01/2002, 18:38
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS

_______________

Отвечает DiGiT
Доброе время суток, Painbringer!
Не видел такую вещь в загрузке где и текс выводится и графика. Так вот там программируется видеоадаптер,а при чем здесь монитор,у меня есть старая книжка программирование VGA через порты,так там можно все,вплоть до управления лучом монитора.


Отправлено: 11/01/2002, 05:28
Отправитель: DiGiT (регистрация: 28/12/2001, ответов на счету: 143)




 Вопрос № 12

Возможно ли как-нибудь в 95 виндах назначить горячую клавишу для проги при этом не создавая ярлыка на рабочем столе?
Вопрос задал: Эксперт StiGGeR (stigger@bashnet.ru)
Отправлен: 10/01/2002, 21:29
Подгруппа: Пользовательская работа с Windows

_______________

Отвечает Tiger
Здравствуйте, StiGGeR!
Для файлов MS-DOS - точно можно назначить горячую калвишу. Просто правой кнопкой по файлу - свойства и чешешь на вкладку Программа и там назначаешь клавиши на быстрый вызов.
А для остальных файлов можешь назначить горячие клавиши на ярлык в Меню-Пуск и они тоже будут работать, если нет желания делать ярлыки на рабочем столе.


Отправлено: 11/01/2002, 00:20
Отправитель: Tiger (регистрация: 28/12/2001, ответов на счету: 36)
URL: http://www.tigeer.narod.ru - Что-то вроде того

_______________

Отвечает DivX
Доброе время суток, StiGGeR!
Вообще горячая клавиша для ярлыка будет действовать практически всегда, где бы он ни находился и какая бы программа
ни выполнялась. Так что первый способ напрашивается сам собой - выделить отдельную папку для ярлыков и поместить все нужные ярлыки туда.
Сам по себе Windows не может осуществлять прямой запуск исполняемого файла по горячей клавише. Можно сказать, что ярлыки - единственная его реализация этой возможности, т.к. в них хранится нужная информация о местонахождении файла.
Разумеется есть специализированные программы такие как Applo, FastLauncher , а может быть и лучше.


Отправлено: 11/01/2002, 05:04
Отправитель: DivX (регистрация: 28/12/2001, ответов на счету: 117)




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

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



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


 Тип сообщения и его текст (?)

Отправить сообщение как:

Вопрос
Дополнение к ответам на вопрос № (подгруппу выбирать не надо)

Текст вопроса или дополнения:

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

Если Вы отправляете дополнение,
нажмите кнопку "Отправить как дополнение":




 Выбор подгруппы (для вопроса)

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



(C) Москва, 2001. Авторское право принадлежит Калашникову О.А. Публичное размещение материала из рассылки, а также его использование полностью или частично в коммерческих или иных подобных целях без письменного согласия автора влечет ответственность за нарушение авторских прав.


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

В избранное