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

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


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

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

Выпуск N 061

Вопросы, которые поступили от подписчиков рассылки
"Ассемблер? Это просто! Учимся программировать"

Дата выхода: 2001-08-16


Вопрос №519

Здравствуйте!
Значит, история такая: мой приятель купил винт Quantum AS на 10 гигов. И принёс мне - временно, пока он не купит все остальные части компа. А у меня его не видно.
BIOS-то этот винт детектит, а вот Виндоуз - ни в какую. Я джамперы и так и сяк ставил - безуспешно.
Быть может, дело в моей матплате Acorp для Pentium MMX ?
Она у меня старая, 1997 года. Если так, то мне перед тем, как тоже винт покупать, и матплату сменить? (А заодно и процессор, и корпус с AT на ATX...)
Кстати, какую лучше брать матплату для Дюрона?
Спасибо за внимание.
Константин.

Ответ

Привет!
А ты его отформатировал? Если нет, то вначале иди запускай fdisk, создавай логические диски, а потом форматируй их с помощью
format disk:
Если хочешь, чтобы весь диск можно было одним куском отформатировать в программе fdisk надо согласиться на поддержку больших дисков( >2ГБ).


Отправил эксперт: Александр
Эксперт отправил ответов (всего): 65

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №518

Пишу программу работающую в реальном режиме времени
Использую прерывание по таймеру
Основная программа пишется на Паскале (Borland Pascal 7.0)
Иницилизация таймера и обработка прерывания на ассемблере.
В обработке прерывания работа с lpt-портом. И... проблема :
добавление команд out dx,al (время выполнения по некоторым
данным на 486 машине - 10 тактов, а у меня Celeron 433) приводит к изменению промежутка времени между прерываниями!!! Я в шоке! Помогите - горит проект и меня ждет жестокая расправа.
Ниже привожу исходник.

Ответ

Здравствуйте, cursor!

Не знаю, что у меня хорошего получилось, но лучше, думаю, сделать так (см. приложение, там все написано).

Приложение:


Отправил эксперт: Василий
Эксперт отправил ответов (всего): 20

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №517

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

_программа_ должна трассировать Int 21h и сама принимять решение о местонахождении заданной функции.
Весь процесс проходит _автоматически_ без человеческого вмешательства.

Ко всему, возможно, добавляются защиты от трассировки, вроде уничтожения векторов 1 и 3, проверка и подмена флагов трассировки, запись "мусора" в регистры TR1, TR2 ... и т.д.

С нетерпением жду ответа,
Андрей.

Ответ

Здравствуйте, Andrew!

Не понял, ты хочешь, чтобы я тебе такую программу написал или у тебя есть идеи, но требуются консультации?


Отправил эксперт: Василий
Эксперт отправил ответов (всего): 21

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №520

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

У меня проблема с завершением работы Windows98, мне приходится два раза повотрять операцию "Выключить компьютер". Каким образом мне изабивться от этого глюка?

Ответ

Здравствуйте, Владимир!
Могу сходу предложить три варианта действий:
1.Проверить машину стандартным regclean-ом (можно взять на download.com.
2.Проверить машину с помощью приблуды типа Нортон Виндоктор.
Если ошибка была связана со сбоем в реестре - должно помочь.
3.Вариант, связанный с запуском приложения типа AVX ICQ checker.
(Мне также приходится по два раза выключаться, после первого раза он выкидывает aqmon, после второго - собственно выключается.Но если пользуешься ICQ и не хочешь заловить вируса луче перестраховаться, не так ли =|;о) ).


Отправил эксперт: RANDOM
Эксперт отправил ответов (всего): 10

Экспертная группа: Пользовательская работа с Windows

Вопрос №522

Как взять с дискетв серийный номр?
Как записать в файл текстовую информациь?

Ответ

Здравствуйте, fagot!

+------------------------------------------------------------------------------+
¦ DOS Fn 40H: Писать в файл через описатель ¦
+------------------------------------------------------------------------------+
+-------------------------------------------------------------------------------
¦ Вход ¦ AH ¦ 40H
+---------¦ BX ¦ описатель файла
¦ DS:DX ¦ адрес буфера, содержащего записываемые данные
¦ CX ¦ число записываемых байт
+---------+-------+-------------------------------------------------------------
¦ Выход ¦ AX ¦ код ошибки если CF установлен
+---------¦ AL ¦ число реально считанных байт ----- лучший тест для ошибок
+---------------------------------------------------------------------

Описание: CX байт данных записывается в файл или на устройство с описателем,
заданным в BX. Данные берутся из буфера, адресуемого через DS:DX.
Данные записываются, начиная с текущей позиции указателя
чтения/записи файла.

Используйте функцию 42H LSEEK, чтобы установить указатель файла,
если необходимо (OPEN сбрасывает указатель в 0).

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

Вы должны всегда сравнивать возвращаемое значение AX (число запи-
санных байт) с CX (запрошенное число байт для записи).
если AX = CX, запись была успешной
если AX < CX, встретилась ошибка (скорее всего, переполнение)

Замечание: Эта функция превосходит сложные и неудобные FCB-функции.
Она эффективно сочетает произвольный и последовательный доступ,
позволяя пользователю осуществлять собственное блокирование.

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


Отправил эксперт: Василий
Эксперт отправил ответов (всего): 22

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №519

Здравствуйте!
Значит, история такая: мой приятель купил винт Quantum AS на 10 гигов. И принёс мне - временно, пока он не купит все остальные части компа. А у меня его не видно.
BIOS-то этот винт детектит, а вот Виндоуз - ни в какую. Я джамперы и так и сяк ставил - безуспешно.
Быть может, дело в моей матплате Acorp для Pentium MMX ?
Она у меня старая, 1997 года. Если так, то мне перед тем, как тоже винт покупать, и матплату сменить? (А заодно и процессор, и корпус с AT на ATX...)
Кстати, какую лучше брать матплату для Дюрона?
Спасибо за внимание.
Константин.

Ответ

Здравствуйте, Константин!
Просто напросто у тебя жёсткий диск новый, поэтому на нем нет никакой файловой системы(для Win - обычно Fat 32, для Пингвина - Ext2+Swap).
Тебе надо найти FDisk(стандартная для Win) или Partition Magic, затем создать основной раздел дос на нём(или ещё дополнительный), тогда всё будет в порядке.
А, вообще, обычно к жёсткому диску при покупке должна прилагаться дискета с утилитой установки жесткого диска!


Отправил эксперт: Orlando
Эксперт отправил ответов (всего): 10

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №522

Как взять с дискетв серийный номр?
Как записать в файл текстовую информациь?

Ответ

Здравствуйте, fagot!
По первому вопросу читай выпуск 056 этой рассылки, там есть как найти серийный номер винта(и дискеты соответственно)
По второму вопросу
Для открытия функция 3dh
al=Access mode(0-read, 1-write, 2-both)
DS:DX=ASCIIZ строка полного пути файла
Выход
если бит С=1 AX=Error code, иначе AX=Handle
Тогда для записи используем ф-цию 40h
AX=40h
BX=Handle
CX=кол-во байт для записи
DS:DX-адрес буфера
Выход
если бит С=1 AX=кол-во реально записанных байт


Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 76

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №519

Здравствуйте!
Значит, история такая: мой приятель купил винт Quantum AS на 10 гигов. И принёс мне - временно, пока он не купит все остальные части компа. А у меня его не видно.
BIOS-то этот винт детектит, а вот Виндоуз - ни в какую. Я джамперы и так и сяк ставил - безуспешно.
Быть может, дело в моей матплате Acorp для Pentium MMX ?
Она у меня старая, 1997 года. Если так, то мне перед тем, как тоже винт покупать, и матплату сменить? (А заодно и процессор, и корпус с AT на ATX...)
Кстати, какую лучше брать матплату для Дюрона?
Спасибо за внимание.
Константин.

Ответ

Здравствуйте, Константин!
Кажись ты прав- твоя мать видит винты до 8 гиг
Хотя! Попробуй его на отдельный шлейф, причем строго Primary Master
А загружайся с другого, то есть типа с D
Для Дюрона лучше всего Soltek, хотя Canyon лучше, но дороже
И не пожалей лишних 3$ на корпус, возьми CodeGen- он пошире, охлаждение получше, и Дюрон с хорошим вентилятором точно влезет...


Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 77

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №502

с ЛЕМЪ РЮЙЮЪ ОПНАКЕЛЮ. лЮРЕПХМЯЙЮЪ ОКЮРЮ Asus CUEP2-M. мЮЯРПНИЙХ ОН СЛНКВЮМХЧ ГЮБНДЯЙХЕ. оНД DOCНЛ (МЕ ГЮЦПСФЮЪ Windows) Ъ МЕ БХФС ЛШЬЭ Х ХМНЦДЮ ОПНОЮДЮЕР ЙКЮБХЮРСПЮ. щРН ВРН МЕХЯОПЮБМНЯРЭ ЛЮРЕПХ ХКХ ЦДЕ-РН Ъ МЕСЯКЕДХК, МН МЮЯРПНИЙХ РН ГЮБНДЯЙХЕ!!! (Х ОНРНЛ МЮЯЙНКЭЙН Ъ ГМЮЧ ЛШЬЭ Х ЙКЮБХЮРСПЮ МХЙЮЙ МЕМЮЯРПЮХБЮЧРЯЪ Б BIOS). нОЕПЮЖХНММСЧ ЯХЯРЕЛС ОЕПЕЯРЮБХК, ПЮГЗЕЛШ ЛШЬХ Х ЙКЮБХЮРСПШ PS/2

Ответ

гДПЮБЯРБСИРЕ, юКЕЙЯЕИ!
хГБХМХРЕ ГЮ БЯРПЕВМШИ БНОПНЯ, Ю бШ ДПЮИБЕП ДКЪ ЛШЬХ СЯРЮМЮБКХБЮКХ?
ю ЙКЮБХЮРСПЮ ХМНЦДЮ РЮЙ ЯЕАЪ БЕДёР.


Отправил эксперт: яРЮЯ
Эксперт отправил ответов (всего): 6

Экспертная группа: лНДЕКХ, БХДШ Х РХОШ ЙНЛОЭЧРЕПНБ (hard)

Вопрос №521

КАК
МОЖНО
ПОЛУЧИТЬ
ВСЮ
рассылку с начала.
Чтобы не повторять вопросы
не отнимать время
и неказаться совсем глупым

С уважением к Твоей просветительной деятельности
Олег

Ответ

Олег Никуленков!
http://www.kalashnikoff.ru/, ссылка Ассемблер, там архив - ВСЕ номера рассылки "Ассемблер, это просто", и 33 (помоему) FAQ из 60 полных, все FAQ можно получить токо осенью


Отправил эксперт: Broken Sword
Эксперт отправил ответов (всего): 51

Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32

Вопрос №500

гДПЮБЯРБСИРЕ, СБЮФЮЕЛШЕ ЩЙЯОЕПРШ.
мЕДЮБМН С МЮЯ КНЙЮКЭМСЧ ЯЕРЭ ОПНРЪМСКХ. яПЮГС ФЕ БНГМХЙКЮ ОПНАКЕЛЮ, Р.Й. Ъ ПЮАНРЮЧ ХГ ОНД ДБСУ НЯЕИ - WinXP RC2 Х Win98. рЮЙ БНР, ЯСРЭ ОПНАКЕЛШ Б РНЛ, ВРН ХГ ОНД БХМ98 БЯё МНПЛЮКЭМН ПЮЯЬЮПХБЮЕРЯЪ, БЯё ОНКЭГНБЮРЕКХ ОЮОЙХ БХДЪР, Б МЕЙНРНПШЕ ЛНЦСР ОХЯЮРЭ ЦДЕ ПЮГПЕЬЕМН, Ю ОНД WinXP ОНВЕЛС РПЕАСЕРЯЪ ОЮПНКЭ ОПХВЕЛ Й ОЮОЙЕ IPC$... лНФЕР ЩРН МЕДНДЕКЙХ ЙЮЙХЕ, БЕДЭ НТХЖХЮКЭМНЦН ПЕКХГЮ ЕЫЕ МЕ БШЬКН... ю ЛНФЕР БЯё-РЮЙХ ЛНФМН ЙЮЙ-МХАСДЭ МЮЯРПНХРЭ ?
P.s. вРН-РН ОНУНФЕЕ МЮАКЧДЮЕРЯЪ Х Я Win2000 Professional SP1...
я СБЮФЕМХЕЛ, дЛХРПХИ.

Ответ

гДПЮБЯРБСИРЕ, дЛХРПХИ!
б НОЕПЮЖХНМЙЮУ НЯМНБЮММШУ МЮ NT (NT 4.0, w2k, winXP) ОПХЛЕМЪЕРЯЪ ДПСЦЮЪ ЯХЯРЕЛЮ ОПНБЕПЙХ ОНКЭГНБЮРЕКЪ. р.Е. ВРНАШ ОНКСВХРЭ ДНЯРСО Й ПЮЯЬЮПЕМНЛС ПЕЯСПЯС МЕНАУНДХЛН ББНДХРЭ МЕ РНКЭЙН ОЮПНКЭ МН Х КНЦХМ. ЩРН ЛНФМН ОПХ ОНЛНЫХ ЯОЕЖХЮКЭМНИ ОПНЦПЮЛЙХ (e.g. Essential NetTools ЙНЛОЮМХХ "TamosSoft" www.tamos.com), КХАН МЮДН КНЦХМХРЭЯЪ Б win'9x Я ХЛЕМЕЛ Х ОЮПНКЕЛ ОНКЭГНБЮРЕКЪ ЙНРНПНЛС МЮ WinXP ПЮГПЕЬёМ ДНЯРСО Й ПЮЯЬЮПЕМНЛС ПЕЯСПЯС.
ю КСВЬЕ ОНЯРЮБЭРЕ ЯЕПБЕП, ОСРЮМХЖШ АСДЕР ЛЕМЭЬЕ.


Отправил эксперт: яРЮЯ
Эксперт отправил ответов (всего): 8

Экспертная группа: оНКЭГНБЮРЕКЭЯЙЮЪ ПЮАНРЮ Я Windows

Вопрос №522

Как взять с дискетв серийный номр?
Как записать в файл текстовую информациь?

Ответ

Уважаемый fagot! Вот пример проги, замени 'Текст'
text_mes db 'Текст' на любой свой, и придумай имя файла
filename db 'c:\text.txt',0

Приложение:


Отправил эксперт: Broken Sword
Эксперт отправил ответов (всего): 52

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №525

Здравствуйте!
У меня усть вопросики :)
1) Где можно найти tasm32.exe, tlink32.exe & import32.lib
2) Сейчас я пользуюсь Масмом, но у меня есть проблемка с созданием экзешника вот, то что я делаю.....
файл Digger.asm:

includelib c:\masm\lib\kernel32.lib
extrn _imp_ExitProcess@4:dword
ExitProcess equ _imp_ExitProcess@4

.386
.model flat,stdcall
option casemap:none
.data
;Инициализированные данные
.data?
;Неинициализированные данные
.code
start: ;Точка входа

push 0
call ExitProcess ;Выход из программы
end start
----------------
А потом я запускаю...
masm /Ic:\masm digger.asm
link digger.obj,digger.exe
----------------
Выводиться сообщение об шибке...
Microsoft (R) Segmented Executable Linker Version 5.31.009 Jul 13 1992
Copyright (C) Microsoft Corp 1984-1992. All rights reserved.

List File [nul.map]:
Libraries [.lib]:
Definitions File [nul.def]:
LINK : warning L4021: no stack segment

digger.obj(digger.asm) : error L2029: '_IMP_EXITPROCESS@4' : unresolved external



There was 1 error detected
----------------------
Может я неправильно создал kernal32.lib????
НО kernal32.lib от Visual C++ не подошёл!!!!
ии я сделал
implib.exe kernal32.lib kernal32.dll
(предварительно скопировав dll в ту директорию где запускал implib :)

Помогите!!!



Ответ

Здравствуйте, Dmitriy!

Я думаю что это связано с ограничением длинны имен, которое присутствует в некоторых объектных файлах.

Или (что вернее) в данном случае у тебя просто отсутствует глобальная переменная _imp_ExitProcess@4

Или же masm все имена приводит к нижнему регистру.

Или же все вместе. :) не знаю точно.


Отправил эксперт: Dron (http://spawnhole.narod.ru/asmos/asmos.html - Операционная система с нуля!)
Эксперт отправил ответов (всего): 53

Экспертная группа: Работа с MASM/TASM

Вопрос №524

А существуют ли разные всякие ассемблерные библиотеки? Где их можно поискать? (может есть сайты специальные?) Мне например нужен оконный интерфейс для ассемблерной проги. Не как Turbo Vision конечно, поскромнее, но желательно готовый.
PS прилиновать TV не предлогайте :)

Ответ



Ну и обленился же ты!
Самому состряпать слабо?! Можно даже, используя объекты, благо TASM их поддерживает. Могу если что с этим помочь.


Отправил эксперт: Василий
Эксперт отправил ответов (всего): 23

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №528

Здравствуйте,уважаемые эксперты!!!:) :)
Ответьте, пожалуйста вот на такой вопрос:)как создать файл, что-нить записать в него, удалить файл с диска, памяти, переместить файл, скопировать?

Заранее благодарен!!!

Ответ

Здравствуйте, Веселый Эдик!

Как много ты сразу хочешь знать...

Обрати свое внимание на следующие функции DOS:

int 21h
fn 3ch Create file via handle
fn 3dh Open file via handle
fn 3eh Close file via handle
fn 3fh Read from file via handle
fn 40h Write to file via handle
fn 41h Delete file

Функции копирования файлов в досе не существует. реализуется через чтение/запись.

Помимо функций, работающих черех handle есть еще функции работающие через FCB, ноони гораздо неудобнее!.


Отправил эксперт: Dron (http://spawnhole.narod.ru/asmos/asmos.html - Операционная система с нуля!)
Эксперт отправил ответов (всего): 54

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Подписаться на рассылки

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

Форма подачи вопроса

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

Нажимайте кнопку "Отправить" только ОДИН раз и дождитесь полной загрузки страницы, иначе вопрос будет продублирован!


Ваше имя *:

Ваш e-mail *:

Подгруппы:

Вопрос *:

Прилагаемая программа (если необходимо):


Регистрация в качестве эксперта

Архив выпусков


Ведущий рассылки,

Калашников Олег: Assembler@Kalashnikoff.ru
ICQ No.:
68951340
URL сайта подписчиков: http://www.Kalashnikoff.ru

______________

По вопросам сотрудничества, рекламы и спонсорства обращайтесь:

  1. Публичное размещение материала из рассылки: Cooperation@Kalashnikoff.ru
  2. Реклама на сайте, в книге и рассылках: http://www.Kalashnikoff.ru/Reklama.html, Reklama@Kalashnikoff.ru
  3. Издание книги (спонсорство): Sponsor@Kalashnikoff.ru

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


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


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться Рейтингуется SpyLog

В избранное