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

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


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

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

Выпуск N 106

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

Дата выхода: 2001-09-30


Вопрос №1030

Подскажите,пожалуйста веб-хостинг, чотбы шустрый был,
и чтобы 20метров как мин выделял?????
И чтобы название лего-запоминающееся

Ответ

Здравствуйте, Димок!
Попробуй здесь
хотя поиоему платный зото ЦГИ можно использовать
Ысчо Здесь етот имхо самый лучший из всех которых я знаю..дают 60мб бесплвтно с поддержкой CGI PHP
Для хороших проектов пространство не ограничено...
правда есть недостаток..вставляеться баннер 468 на 60
но ето мелочь...


Отправил эксперт: змей
Эксперт отправил ответов (всего): 47

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

Вопрос №1035

==========Доброе время суток,однако здравствуйте!===========
Вопрос относится к работе с резервированием и инициализацией памяти. Собственно вопрос:
Мне не совсем понято длячего резервируется подобным образом память - например:
oper1 db 1223
oper2 dw 1234
Какая разница - между операторами резервирования понятно - один байт другой слово, но непонятно зачем под одно кол-о байтов резервировать слова, в др. случае байт , если операнд oper1 не помещается в выделеную для его область памяти, ведь в байт пожно запехнуть одно число либо 2 в упакованном BCD формяте (именно про BCD не интересует).
С уважением SATIS!

Ответ

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

В байт можно запихнуть одно число значением менее чем 2^8 то есть 256. если BCD формат тебя вообще не интересует забудь про числа, оперируй значениями.


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

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

Вопрос №1036

==========Доброе время суток,однако здравствуйте!===========
Вопрос относится к работе с резервированием и инициализацией памяти. Собственно вопрос:
Мне не совсем понято длячего резервируется подобным образом память - например:
oper1 db 1223
oper2 dw 1234
Какая разница - между операторами резервирования понятно - один байт другой слово, но непонятно зачем под одно кол-о байтов резервировать слова, в др. случае байт , если операнд oper1 не помещается в выделеную для его область памяти, ведь в байт пожно запехнуть одно число либо 2 в упакованном BCD формяте (именно про BCD не интересует).
С уважением SATIS!

Ответ

Здравствуйте, SATIS!
oper1 db 1223
вызовет ошибку!


Отправил эксперт: AL-GALI (http://www.astpage.ru/ - вроде как корпоративная страничка)
Эксперт отправил ответов (всего): 5

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

Вопрос №1035

==========Доброе время суток,однако здравствуйте!===========
Вопрос относится к работе с резервированием и инициализацией памяти. Собственно вопрос:
Мне не совсем понято длячего резервируется подобным образом память - например:
oper1 db 1223
oper2 dw 1234
Какая разница - между операторами резервирования понятно - один байт другой слово, но непонятно зачем под одно кол-о байтов резервировать слова, в др. случае байт , если операнд oper1 не помещается в выделеную для его область памяти, ведь в байт пожно запехнуть одно число либо 2 в упакованном BCD формяте (именно про BCD не интересует).
С уважением SATIS!

Ответ

Здравствуйте, SATIS!
Только из-за удобства использования и начальной инициализации
При
a db 1234h
а=12h, (a+2)=34h
b dw 1234h
b=1234h, byte ptr b=34h, byte ptr b+2=12h


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

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

Вопрос №1036

==========Доброе время суток,однако здравствуйте!===========
Вопрос относится к работе с резервированием и инициализацией памяти. Собственно вопрос:
Мне не совсем понято длячего резервируется подобным образом память - например:
oper1 db 1223
oper2 dw 1234
Какая разница - между операторами резервирования понятно - один байт другой слово, но непонятно зачем под одно кол-о байтов резервировать слова, в др. случае байт , если операнд oper1 не помещается в выделеную для его область памяти, ведь в байт пожно запехнуть одно число либо 2 в упакованном BCD формяте (именно про BCD не интересует).
С уважением SATIS!

Ответ

Здравствуйте, SATIS!
Ну тут все просто. Когда ты используешь инструкцию db, то следуюшие за ней байты остаются без изменений. А если используешь инструкцию для данных разрядности больше 1 байта, то твои данные разбиваются на группы заданной разрядности внутри которых происходит преобразование байтов к порядку принятому в процессорах intel( старший байт по старшему адресу).
Пример:
a db 12345678h ; в памяти распологается так же 12h,34h,56h,78h
b dw 12345678h ; для слов все выглядит немного иначе 34h,12h,78h,56h
c dd 12345678h ; для двойных слов "совсем наоборот" 78h,56h,34h,12h
А нужно это для того, чтобы не проводить эту перестановку байтов вручную. А дальше я не понял...


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

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

Вопрос №1036

==========Доброе время суток,однако здравствуйте!===========
Вопрос относится к работе с резервированием и инициализацией памяти. Собственно вопрос:
Мне не совсем понято длячего резервируется подобным образом память - например:
oper1 db 1223
oper2 dw 1234
Какая разница - между операторами резервирования понятно - один байт другой слово, но непонятно зачем под одно кол-о байтов резервировать слова, в др. случае байт , если операнд oper1 не помещается в выделеную для его область памяти, ведь в байт пожно запехнуть одно число либо 2 в упакованном BCD формяте (именно про BCD не интересует).
С уважением SATIS!

Ответ

Здравствуйте, SATIS!
Меня терзают смутные сомненья что у тебя какоя-то очепятка. Быть так не может.


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

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

Вопрос №1037

=========Доброе время суток,однако здравствуйте!============
Купивши принтер HP 840C подключен через USB возникла проблема с печатью из ДОС. Вобщем я мне кажиться я буду прав ежели скажу что DOS не поддерживает печать через USB поскольку это довольно старая но НАДЕЖНАЯ операционка, и вней поддержка УСБ не реализована. Мне интересно возможно ли подключить USB и LPT одновременно и работать таким образом? Либо попроще будет отыскать (ежели такие есль)драйвера для печати из ДОСа через USB порт. Собственно все предложения принемаютси и если есть возможность подкинуть документации по работе принтеров.
С уважением SATIS

Ответ

Здравствуйте, SATIS!
В ДОС нет поддержки USB. А следовательно, и драйверов нет. Если есть LPT порт - подключай к LPT, а про LPT+USB надо смотреть документацию на принтер.


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

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

Вопрос №1033

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


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


Ответ

Здравствуйте, ГенийЕв!
Ведь вроде уже договаривались... Меня эти даты с временами достали. Покопайся в архиве рассылок - там вопросов+ответов по этой теме навалом. Вся сложность в том, где тебе надо писать время - при старте системы или при создании файла.


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

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

Вопрос №1042

Привет Всем.
Поделитесь мыслями,
эффективна ли разработка программ "с чистого листа",
т.е. содержащих в себе ,и собственных нужд ОС ,и собственно программу.

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

Интересно, есть вообще подобные комплексы и где?

Ответ

Здравствуйте, ilya!
Насколько мне известно, то на такие вещи замахивалась только небезызвестная фирма Oracle. О конечных результатах "замаха" мне ничего неизвестно. По-моему лучше приладить к ОС подходящую файловую систему, которых есть на любой вкус, чем самому огород городить. А если ты хочешь быть совсем крутым( как фирма NeXT ), то можно и апаратную платформу специально для своего "офиса" разработать. Все-таки лучше пользовать то, что есть(в смысле ОС), потому что работа с аппаратурой на самом нижнем уровне это, мягко выражаясь, неэротично, а по мнению особенно измученных системщиков еще и неэстетично, негуманно и является преступлением против человечности(в лице этих системщиков). В обозначенном тобой "узком" круге задач офисные приложения смотрятся издевательством наподобие "и остальные типы программ".
С уважением, Александр.


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

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

Вопрос №1040

Здравствуйте эксперты.
У меня вот какой вопрос.Частенько случается такое-Программа вызвала сбой обращения к памяти и будет закрыта или Программа ....вызвала ошибку обращения к стеку в модуле...по адресу.... .Из за чего такая фигня.Спасибо.

Ответ

Здравствуйте, Max!
Не хватает ОЗУ, не хватает места для свопа
Если много открыто оокон или программ-не хватает внутренних ресурсов.
Просто глючные проги:)


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

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

Вопрос №1019

предыдущий мой вопрос был под номером 991.Бальшое спасиба всем, кто ответил. Вопрос о подвисании компа в инете. Все дружно посоветовали избавиться от милениума. Избавился - не помогло!!!:-((. Касперский ничЈ не нашЈл. Вопрос - как жить дальше?:-)))

Vik

Ответ

Здравствуйте, vik!
Ты не уточнил, что сейчас у тебя стоит(98SE или 2000)?
Какой у тебя HDD? если разбит, то сколько места на системном?
Параметры файла подкачки какие установлены (по умолчанию или ты их менял)? Когда работаешь в И-нете какие программы запушены в фоне напиши подробней?


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

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

Вопрос №1044

С чего вы посоветуете мне начать программирование на Асемблере. Pascal я почти наизусть знаю...

Ответ

Здравствуйте, Антон!
Вы не первый и далеко не последний, кто задаёт этот вопрос. Но я всё же отвечу...
Самое главное - зайдите на www.kalashnikoff.ru - там Вы найдёте некоторые книги. Там же архив рассылки "Ассемблер? Это просто. Учимся программировать". Всё четко и ясно написано. Там же подпишитесь на эту рассылку. Она пока не выходит, значит у Вас будет время изучить первые 30 её выпусков.
Большой популярностью пользуется книга Зубкова по Асму.
на сайте rusdoc.df.ru - тоже есть документация по азму - лучше всего П.Абель... Так что вперёд!!!


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

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

Вопрос №1044

С чего вы посоветуете мне начать программирование на Асемблере. Pascal я почти наизусть знаю...

Ответ

Здравствуйте, Антон!
начните сначала.Паскаль и Асемблер, как говорят в Одессе, две большие разницы.
Просто перепишите себе все рассылки (1-30) и разбирайтесь.
я сам через неделю после начала обучения полностью разобрался в вирусе(гл 20) и сдал зачет по системному программированию :-))))


Отправил эксперт: Игорь
Эксперт отправил ответов (всего): 1

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

Вопрос №1044

С чего вы посоветуете мне начать программирование на Асемблере. Pascal я почти наизусть знаю...

Ответ

Здравствуйте, Антон!
Ну Паскаль тебе здесь никак не поможет, так шо начинать будешь с нуля!
Желательно хорошенько ознакомиться с архитектурой компа(типа кн. П.Нортона), так как в книгах по программированию на асме эта тема раскрывается плохо, а затем купить книгу по асму, типа "Assembler для DOS, Windows и Unix" автор Зубков(луше этой книги еще не встречал), так же не плоха книга Питера Абеля, но она довольно-таки стара и приобрести ее проблемно, я например ее получил от друга(старого программиста)!Так же скачай выпуски рассылки на www.Kalashnikoff.ru , должно помоч, я материал просматривал - довольно интересно!


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

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

Вопрос №1042

Привет Всем.
Поделитесь мыслями,
эффективна ли разработка программ "с чистого листа",
т.е. содержащих в себе ,и собственных нужд ОС ,и собственно программу.

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

Интересно, есть вообще подобные комплексы и где?

Ответ

Здравствуйте, ilya!
Всё зависит от твоего понимания эффективности. В НЫНЕШНИХ УСЛОВИЯХ НЕТ!!! Если серьезно заниматься программированием (в смысле зарабатывать на этом) то в первую очередь заказчика интересует не то, насколько быстро будет работать программа, а на сколько быстро ты её напишешь. К тому же учить тетёньку тыкать не 3 клавиши, а 10 + работать в этих различных осях проблемнее. Тем не менее, для какого-то узкого круга задач это должно быть эффективно и НУЖНО!


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

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

Вопрос №1047

Привет Спецы!!!
I need your help!!!

Кратко о себе. Меня зовут Алексей (Mahmud), мне 27, родился и живу в Таллине. Работаю сам на себя- таскаю лес из Вологды в Эстонию. До этого пиратствовал вместе с Москвой.Учусь в отделении МГИУ в Таллине(инфотехнологии) 1 курс, правда. С компом дружу по ночам. За Вашим сайтом слежу достаточно долго- подписан на рассылку по Assembler. Плотно за чтение взялся недавно и уже торможу!
Вопрос: Не могу сообразить Hex system! Чтобы получить 1Е к 30 надо умножить или прибавить? Может существует формула расчётов?Простите за глупый вопрос.
Заранее благодарю.
Sorry, моё мыло mahmud@hot.ee, пока не разобрался в identity from- Explorer oм пользуюсь второй день(раньше был Netscape).

Ответ

Здравствуйте, Алекс!

Вот таблица соответствия шестнадцатиричных и десятичных чисел

Dec 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Hex 0 1 2 3 4 5 6 7 8 9 А B C D E F

Делим десятичное число 30 на 16
_30|16
16|1
14
Итак 1 и остаток 14(E) - шест. 1Еh
Проверяем 1х16^1+14х16^0=30
Или возьмем к примеру число побольше 3000
_3000|16 _187|16
140 |187 16 |11(B)
_120 27
112 11(B)
8
Собираем остатки от деления в обратном порядке
получаем BB8h
Проверяем
11x16^2+11x16^1+8x16^0=2816+176+8=3000


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

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

Вопрос №1048

Hello, guys!

Я вот тут давеча разобрался с ООП на Assm'е. А вам слабо?

Ответ

Здравствуйте, Basil!
а)нет, но на чём?
б)да, так как незачем.


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

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

Вопрос №1047

Привет Спецы!!!
I need your help!!!

Кратко о себе. Меня зовут Алексей (Mahmud), мне 27, родился и живу в Таллине. Работаю сам на себя- таскаю лес из Вологды в Эстонию. До этого пиратствовал вместе с Москвой.Учусь в отделении МГИУ в Таллине(инфотехнологии) 1 курс, правда. С компом дружу по ночам. За Вашим сайтом слежу достаточно долго- подписан на рассылку по Assembler. Плотно за чтение взялся недавно и уже торможу!
Вопрос: Не могу сообразить Hex system! Чтобы получить 1Е к 30 надо умножить или прибавить? Может существует формула расчётов?Простите за глупый вопрос.
Заранее благодарю.
Sorry, моё мыло mahmud@hot.ee, пока не разобрался в identity from- Explorer oм пользуюсь второй день(раньше был Netscape).

Ответ

Здравствуйте, Алекс!
hex-код - шестнадцатеричная система отчёта. Позиционная.
Перевод в десятичную из 16ичной:
3F2=2*16^0+F*16^1+3*16^2=2*1+15*16+3*16^2.
Т.е. для перевода из любой системы отсчета в понятную для тебя нужно сложить все цифры справа налево, причём с каждой цифрой проделать следующее:
умножить её на основание системы отсчета в степени "порядковый номер, считая справа" (самая правая - №0). Т.е. для самой правой цифры: X*n^0, где X-цифра, n-основание сист. отсчёта (для hex - 16), ^ - возведение в степень. Складываются и умножаются числа в любой системе отсчета столбиком.
сложение для hex:
12A3
D23F
----
E4E2
|
заем, F+3=12hex

Сам всё это понимаю, но, думаю, объяснил хреново. Лучше купи любую книжку по асму или учебник по инфоматике (базовый курс). Там все растолкуют.


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

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

Вопрос №1051

Здравствуйте уважаемые эксперты.
Написал программу бегущей строки, но tlink.exe выдает ошибку "invalid initial entry point adress".
Если можно, укажите, где находится эта ошибка.
Заранее благодарю.
P.S. Я пока еще чайник в этом деле, поэтому просьба не смеяться над ошибками.

Ответ

Здравствуйте, Trever!
Где твой org 100h??? (это же вроде com-прога), а в exe-шник номано компилится все... только одно но: никакая строка никуда не побежала, просто синие буквы "с" в уголоке. И вот как нада было написать, чтобы строка "побежала". Предлагаю полностью свой вариант твоей проги, он поприкольнее да и покороче...

Приложение:


Отправил эксперт: Broken Sword (http://www.revolution.co.uk - скрытая реклама...)
Эксперт отправил ответов (всего): 171

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

Вопрос №1051

Здравствуйте уважаемые эксперты.
Написал программу бегущей строки, но tlink.exe выдает ошибку "invalid initial entry point adress".
Если можно, укажите, где находится эта ошибка.
Заранее благодарю.
P.S. Я пока еще чайник в этом деле, поэтому просьба не смеяться над ошибками.

Ответ

Здравствуйте, Trever!
У тебя смещение на 256 (100h) байт, т.е. PSP, не задано. перед begin вставь org 100h. Других ошибок не искал.


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

Экспертная группа: Общие вопросы по программированию на Ассемблере под 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

В избранное