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

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


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

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

Выпуск N 020

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

Дата выхода: 2001-06-13


Результаты голосования

1. Оцените качество ответов экспертов (в целом):
2 балла (минимум) - 2
3 балла - 6
4 балла - 26
5 баллов (максимум) - 10

2. Теперь в рассылку попадает первые два вопроса, а остальные отправляются только подписчику. Это есть хорошо?
Да - 24
Нет - 27

3. Если нет, то сколько бы Вы хотели видеть одинаковых вопросов, но разных ответов?
1 вопрос - 4
3 вопроса - 9
4 вопроса - 1
Все вопросы / ответы - 21

4. Если в рассылке будет присутствовать форма голосования за ответы экспертов, то я:
Обязательно буду голосовать - 24
Мне все равно - 22

5. Книга отзывов на ответы экспертов - это:
Хорошо - 27
Не надо - 11
Мне все равно - 12

6. Хорошо ли то, что ответ эксперта направляется подписчику сразу после того, как эксперт ответил или этого делать не стоит, а все ответы публиковать только в рассылке?
Ответ должен получать подписчик сразу - 37
Публиковать ответы только в рассылке - 10
Мне все равно - 5

7. Эксперт обозвал меня чайником. Я:
Обижусь и отпишусь от рассылки - 0
Разозлюсь и не буду больше задавать вопросы - 0
Я знаю, что я чайник. Эксперты тоже чайниками были - 44

_______________

8. Как часто Вы бы хотели получать выпуски рассылки?
Как можно чаще - 22
3-4 раза в неделю - 13
1 раз в неделю - 15
2-3 раза в месяц - 3
Мне все равно - 1

9. Нужно ли публиковать неотвеченные вопросы?
Нечего рассылку нагружать - 24
Конечно! - 20
Мне все равно - 6

10. Разрешить ли публиковать мысли, заметки, статьи подписчиков и экспертов в рассылке, помимо вопросов / ответов?
Нечего рассылку нагружать - 7
Конечно! Было бы неплохо! - 41
Мне все равно - 4

_______________

11. Необходимо ли создать подгруппу "Для новеньких"? В эту группу смогут отправлять новые подписчики с соответствующими вопросами (типа: "Что тут происходит? Че за термины??? Где мне выучить Ассемблер?" и т.п.).
Да! И я обязательно стану экспертом - 27
Это лишнее - 13
Мне все равно - 10

_______________

12. В рассылке для поддержания рейтинга сайта и "боевого духа" ведущего рассылки установлены три кнопки (SpyLog.ru, one.ru, toplist.ru) внизу рассылки. Как Вы к этому относитесь?
Надо убрать! Нехорошо это - 0
Мне они не мешают - 53

_______________

13. Стоит ли периодически проводить подобные опросы?
Конечно! Это ведь наша рассылка - 45
Не надо: лишнее - 2
Мне все равно - 4
14. А другие (по программированию)?
Не надо! Не в тему будет - 4
Да! Я буду голосовать - 34
Мне все равно - 11


Спасибо всем, кто принял участие в голосовании. В самое ближайшее время я приму необходимые меры!




Вопрос №109

Увожаемые эксперты!

Зачем нужен математический сопроцессор (для выполнения математических операций?), и какую пользу приносит КЭШ если его так мало (182-586 Кб, а то и меньше)?











Ответ

Во-первых, математический сопроцессор придумали в те времена, когда считалось, что вычиления над дробными числами и синусы там всякие нужны только ученым. Т.е. для удешевления основного процессора все эти функции вынесли в отдельный чип. Сейчас сопроцессор занимает свое место на том же кристалле, что и основной CPU, но до сих пор он остается для основного процессора "перефирией". Но сейчас современные процессоры понимают, что даже простому геймеру нужны операции как над целыми так и над дробными числами, желательно одновременно. В старых же машинах только часть инструкций сопроцессора могла исполняться параллельно с инструкциями основного CPU.
Во-вторых, ты что-то говорил про то что кэш память - маленькая. Но попытайся-ка написать на ассемблере программу такого размера. К тому-же ее размер специально рассчитывается, для того чтобы обеспечивать эффективную буферизацию данных и инструкций. Большая часть вычислений в программах приходится на инструкции находящиеся в циклах. Это еще одно объяснение малых объемов кэш-памяти. Ведь когда выполняется цикл надо запомнить этот участок кода всего 1 раз, а затем только новые данные подавать. Причем эти данные можно заранее кэшировать, что приведет к ускорению работы программы.


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

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

Вопрос №109

Увожаемые эксперты!

Зачем нужен математический сопроцессор (для выполнения математических операций?), и какую пользу приносит КЭШ если его так мало (182-586 Кб, а то и меньше)?


Ответ

Математический сопроцессор нужен для ускорения выполнения математических операций над числами с плавающей точкой (запятой) и содержит набор специально оптимизированных микрокоманд для этой цели. Таким образом он освобождает ЦПУ от выполнения рутинных операций, большая часть которых своодится к разложению множителей в ряды.
Кэш ускоряет выполнение программ за счет более быстрого доступа к нему (он находится в непосредственной близости(на кристалле) процессора, имеет минимальнейшее время выборки и доступа. Контроллер закачивает в него кусок данных (программы) которые по его мнению программа будев выполнять в ближайшее время или к которому будет обращаться в ближайшее время. При этом на последующем шинном траффике экономится время. В добрые старые времена на 486 когда уровни кэширования можно было отключать эффект от его применения можно было практически "пощупать".


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

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

Вопрос №115

Всем привет!



Народ помогите, подкиньте код, как перевести винчестер (DOS режим) в спячку?

Нужно для NoteBook, по дефолту он вырубается через ~5 мин.,

мне нужно раньше, а то гудит как бешеный.

Если имеет значение модель винта, то это Seagate 120. Точную мнемонику модели не помню, но если будет нужно посмотрю.

Ответ

т.е. вы хотите парковать головки жесткого диска, это делается с помощью функции 19h BIOS прерывания 13h. в DL - номер диска, если primary hard, то будет 80h.

Приложение:


Отправил: BELTSY
Эксперт отправил ответов (всего): 16

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

Вопрос №111

Увожаемые эксперты, ответте на такой вопрос!

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

















Ответ

В общем так:

Сначала, после включения компа, проц читает команды по адресу
FFFF:0000 (по-моему, по этому, или где-то рядом...). Там находится
BIOS. После запуска BIOS'а запускается процедура POST (Power-on
Self Test - Самотестирование после загрузки), которая проверяет
наличие и работоспособность всех девайсов (и пищит, если чего не
хватает). После неё идут всякие там инициализации PnP и всякой
другой х****. Затем с диска, определённого в BIOS (Обычно A:,
затем C:), из 1 сектора 0 дорожки 0 головки/цилиндра (так называ-
емый boot-сектор) читается код, который и организует загрузку ОС.
Если таковой сектор не найден (например, дискеты в дисководе нет),
то BIOS переходит к следующему диску в списке загрузки, а в случае
конца списка выводит на экран сообщение: "Загрузочный сектор не
найден, можете выкинуть свой компьютер..." (Ну или что-то в этом
роде).

Загрузочный сектор всех MS-DOS версии <= 6.22 грузит IO.SYS и
MSDOS.SYS
Загрузочный сектор MS-DOS версии >= 7 и Windows 9x/ME грузит только
IO.SYS (MSDOS.SYS там конфигурационный файл).
Загрузочный сектор Windows NT/2k грузит ntkernel.
Загрузочный сектор Linux читает ядро начиная со 2го сектора 0 дорож-
ки 0 головки/цилинда (Я не имею в виду загрузчики вроде LILO)
Ну а про загрузочные сектора других ОС ничего не знаю :(

Если очень интересно, поищи в инете исходники AWARDовского BIOS'а
(Мне друг качал, поэтому я ссылку не знаю :-<)


Отправил: Nik
Эксперт отправил ответов (всего): 5

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

Вопрос №113

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

1) Я хотел бы узнать о назначении и структуре файлов *.def.

2) Как создать кнопку на Windows-форме и можно ли создать что-нибудь вроде Memo?

Заранее спасибо за любую помощь.

Ответ

1. DEF-файлы (Если ты имеешь в виду tasm/tlink, возможно masm) опре-
деляют вид exe-шника и специфические параметры. Все команды пишут-
ся в новой строке большими буквами. Вот команды, какие знаю:

EXETYPE WINDOWS - Екзешник для мастдая
DESCRIPTION '(c) Vasya Pupkin' - Описание Екзешника (только для
мастдая)
CODE PRELOAD MOVEABLE DISCARDABLE - Параметры сегмента кода (win)
DATA PRELOAD MOVEABLE SINGLE - Параметры сегмента данных (win)
LIBRARY FORMATC - Определяет имя DLL'ы (не обязательно совпадает
с именем файла) - win
HEAPSIZE 4096 - Размер кучи (дословный перевод)
IMPORTS FORMAT.FormatDrive \ Импортируемые функции
FORMAT.CanFormatDrive / (Только для мастдая)
STACKSIZE 1024 - Размер стека
SUBSYSTEM 4.0 - Версия ОС
EXPORTS \ Экспортируемые имена. После @
FormatC_now @1 RESIDENTNAME } идёт номер, а RESIDENTNAME
FormatC_later @2 / обозначает резидентность имени.
NAME FormatC - имя программы

2. И для того, и для другого смотри SDK Help - функции CreateWindow и
CreateWindowEx.

Приложение:


Отправил: Nik
Эксперт отправил ответов (всего): 6

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

Вопрос №101

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



Хотел бы узнать, можно ли достать книгу Зубкова "Assembler для DOS,

Windows и Unix" в электронном виде. Покупать на сайте www.dmk.ru для

меня немного проблематично. Деньги можно выделить (если я не ошибаюсь,

то она стоит 144 рубля), но есть две проблемы:

- не знаю, как произвести оплату;

- не знаю, как будет с доставкой (я живу в Украине).

А книжку очень хотелось бы почитать.



Извините, если вопрос не по теме.

Спасибо!



С наилучшими пожеланиями,

Tshchinski Nazar



E-mail : T_nazar@ukr.net

ICQ# : 114994267

Ответ

Вообще-то, автор запретил любое перепечатывание и распространение
материалов из его книги в любом виде, включая электронный, кроме
исходников. Их ты можешь скачать абсолютно бесплатно с сайта
www.dmk.ru в разделе downloads (Ну или что-то
в этом роде).


Отправил: Nik
Эксперт отправил ответов (всего): 7

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

Вопрос №101

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



Хотел бы узнать, можно ли достать книгу Зубкова "Assembler для DOS,

Windows и Unix" в электронном виде. Покупать на сайте www.dmk.ru для

меня немного проблематично. Деньги можно выделить (если я не ошибаюсь,

то она стоит 144 рубля), но есть две проблемы:

- не знаю, как произвести оплату;

- не знаю, как будет с доставкой (я живу в Украине).

А книжку очень хотелось бы почитать.



Извините, если вопрос не по теме.

Спасибо!



С наилучшими пожеланиями,

Tshchinski Nazar



E-mail : T_nazar@ukr.net

ICQ# : 114994267

Ответ

Вообще-то, автор запретил любое перепечатывание и распространение
материалов из его книги в любом виде, включая электронный, кроме
исходников. Их ты можешь скачать абсолютно бесплатно с сайта
www.dmk.ru в разделе downloads (Ну или что-то
в этом роде).


Отправил: Nik
Эксперт отправил ответов (всего): 8

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

Вопрос №117

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

при попытке компиляции (использую tasm 2.5) в 14-й строке появляется ошибка :

Near jump or call to different CS

Помогите разобраться.

Ответ

надо директивой assume указать tasm-у, какой сегмент и для чего (кода, данных, стека) вы используетя, а то он не знает какой код формировать, дальнего или ближнего перехода (если не указанно явно, т.е. far или near) и не может проверить правильность всех переходов.
так как у вас это .com программа, то код, данные и стек находятся в одном сегменте. добавьте после CSEG segment строку:
assume cs:CSEG,ds:CSEG,ss:CSEG
и будет ассемблироваться нормально.

Приложение:


Отправил: BELTSY
Эксперт отправил ответов (всего): 17

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

Вопрос №117

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

при попытке компиляции (использую tasm 2.5) в 14-й строке появляется ошибка :

Near jump or call to different CS

Помогите разобраться.

Ответ

Прочитай раздел "Немного теории" из выпуска №5.


Отправил: Anatol
Эксперт отправил ответов (всего): 3

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

Вопрос №121

Уважаемый эксперт!

Я ен могу ассемблировать файлы, при попытке ассемблирования

MASM выдаёт ошибку:FATAL error A1000:cannot open fiel: prog.asm /AT

Я не могу понять, как узнать прописан ли MASM в PATH, где находится PATH? И как узнать находится ли файл prog.asm в текущем каталоге?

Ответ

чтоб узнать есть ли masm в path, наберите команду path или echo %path%. path - это обычная переменная среды dos, она находится в оперативной памяти. так же вы можете устанавливать любые свои переменные среды, для этого используйте команду set имя_переменной=значение_переменной. чтобы посмотреть, че вы там установили, напишите echo %имя_переменой%. чтобы добавить masm в path, пишете set path=c:\masm. если надо, чтоб он при каждой загрузке устанавливался в это значение, то добавьте эту строку в autoexec.bat.
да, еще если пишете set path=..., и до этого в нем уже было какое-то значение (т.е. другие пути), то они все прорадут и запишется только то значение, которое вы присвоите последним. чтобы этого не произошло, добавьте в конце %path%, т.е. set path=c:\masm;%path%, это что-то типа path = 'c:\masm' + path. чтоб узнать есть ли prog.asm в текущем каталоге, напишите команду dir prog.asm


Отправил: BELTSY
Эксперт отправил ответов (всего): 18

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

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

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

Задать вопрос экспертам

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


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

Калашников Олег: 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

В избранное