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

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


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

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

Выпуск N 038

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

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


Вопрос №338

Где взять доку в электронном виде, для начинающего
асматика. желательно URL

Ответ

Здравствуйте, Denis!
http://asmjournal.chat.ru/
http://storage.virtualave.net/asm_source.htm
http://www.wasm.boom.ru/
http://bib.com.ua/cgi-bin/razdel.cgi?asm
http://assembly.da.ru/

может учебники есть и тут, уже давно не ходил, кстати зайди на www.kalashnikoff.ru там есть пару хороших учебников


Отправил эксперт: Vasis (http://www.thm.h1.ru - Сайт о безопасности, собственные статьи)
Эксперт отправил ответов (всего): 8

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

Вопрос №340

дПВТЩК ДЕОШ.
х НЕОС ЕУФШ ЦЕМБОЙЕ РТПЗТБННЙТПЧБФШ ОБ бУУЕНВМЕТЕ РПД Win32. рПДУЛБЦЙФЕ, ЗДЕ Ч УЕФЙ НПЦОП ОБКФЙ МЙФЕТБФХТХ РП ЬФПНХ ДЕМХ. йОФЕТЕУХАФ ФБЛЦЕ НЕМШЮБКЫЙЕ РПДТПВОПУФЙ Startup-ЛПДБ.
ъБТБОЕЕ ВМБЗПДБТЕО ЪБ ПФЧЕФ.

Ответ

Здравствуйте, Artefact!
Ресурсов в сети очень много. Проще всего зайти например, на Yandex и набрать для
поиска Ассемблер под Win32. Откроется куча ресурсов из которых, как раз можно
выбрать чего-нибудь стоящее.


Отправил эксперт: Andy Bitoff (http://bitoff.pisem.net - HomePage)
Эксперт отправил ответов (всего): 8

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

Вопрос №333

вот она прога (запрещает удаление файлов с указанного в командной строке диска, например "dp c:") работает (в досе токо). (еще бы, взята из сами знаете какой книги). все ясно и понятно, кроме, разумеется одного:

mov bx,dx ; это понятно
cmp byte ptr ds:[bx+1],':' ; вот что это такое???

я вообще не пойму, чему равен dx должен быть в этом месте во второй проход (в первый понятно - смещение НАШЕГО обработчика 21 прерывания). каким боком dx вообще может както указывать на это двоеточие?
вообще неясно как прога сверяет совпадают диски или нет...

P.S. да и кстати до кучи - or word ptr [bp+6],1
вот это нахрена? зачем что то мутить с флагом переноса?

И на этот раз последнее: почему в виндах ни один резидент (ясно что из тех, которые добавляю я) не висит в памяти (в досе все ОК)?
чтоб сильно не мучались, Зубков, издание второе, стр.256-258

Ответ

Здравствуйте, George Stobbart!
Данная прога отслеживает действие функции 41h("Удаление файла") прерывания 21h. Согласно описанию функции, в DS:DX перед вызовом помещается адрес ASCIIZ строки с именем удаляемого файла. Поэтому DX указывает на смещение ИМЕНИ ФАЙЛА. Таким образом резидент просто проверяет указано ли в пути имя диска, а если нет, то берет его с помощью 19h функции. Имя же запрещенного диска хранится заглавной буквой в PSP по адресу cs:cmd_line[1], так как PSP записался в память вместе с резидентом. Поэтому резидент преобразует полученное имя в верхний регистр и сравнивает. Если имя диска совпадает с запрещенным, то резидент устанавливает CF в 1, что сигнализирует об ошибке, а в AX ложится код ошибки, т.е. 5 - "Доступ запрещен". Вот и все.
Что касается резидентов, то в "чистой" Винде они понятно не пойдут, а в "Сеанс MS-DOS" все нормально работает.
С уважением, Basfer.


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

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

Вопрос №327

Здравствуйте Эксперты!
Подскажите пожалуйста как вывести на экран содержимое кокого-либо регистра? И как сделать так чтобы выводил в разных системах счисления?

Ответ

Здравствуйте, Sirius!
Чтобы вывести число в любой системе нужно:
1. Взять остаток от деления числа на основание системы.
2. Преобразовать его в ASCII-код, учитывая при этом буквы (например для 16-ричной системы счисления).
3. Вывести получивщуюся цифру.
4. Поделить число на основание системы.
5. Если число меньше основания системы, то выведем его и на этом закончим. Если нет, то пункт 1.

Например, для числа 123 получим: 3, 2, 1, т.е. цифры пойдут в обратном порядке, но это уже проблемы вывода.
Кстати, этот алгоритм (для дес. системы) был реализован в рассылке с помощью сопроцессора.
С уважением, Basfer.


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

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

Вопрос №336

Добрый день Vasis.
Вдогонку - еще такой вопрос, можно ли в этой сети из 2-х компов, управлять тем компом, что подключен к инету, имеется ввиду запускать программы, получать и отправлять почту, и.т.д. Принимаем, что он включен постоянно.
Как это делается? Я же не вижу на удаленном компе стартменю и десктоп.Я вижу только диски.
Спасибо.

Ответ

Здравствуйте, Олег!
Шутишь? Если видишь диски, то видишь меню "C:\WinDir\Главное меню" и Десктоп - "C:\WinDir\Рабочий стол". WinDir - естественно диретория Виндов на ТОМ компьютере. Для английской версии просто переведи все эти названия - получается Start Menu и что-то, что я уже забыл :(


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

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

Вопрос №322

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

Ответ

Здравствуйте, Skif!
Например после каждого вывода на экран вызывай процедуру типа
push cx
mov cx, 0FFFFh
loop $
pop cx
Или для работы на разных компах
заведи флаг, который устанавливаешь после вывода на экран, а в таймере его сбрасываешь,
и в основной программе ничего не делать пока флаг стоит


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

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

Вопрос №339

Эксперты!
Вопрос1. INT10 ah=0c. Тут ясно, вывод точки, а вот
значеня пиксела AL= , что означают? И какими они могут быть?
Вопрос2. Можно ли подпрограммно высчитать время выполнения
основной исполняемой программы и вывести на экран в секундах?
Спасибо.

Ответ

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

▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
0cH писать графическую точку (слишком медленно для большинства приложений!)
Вход: BH = номер видео страницы
DX,CX = строка,колонка
AL = значение цвета (+80H означает XOR с точкой на экране)


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

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

Вопрос №339

Эксперты!
Вопрос1. INT10 ah=0c. Тут ясно, вывод точки, а вот
значеня пиксела AL= , что означают? И какими они могут быть?
Вопрос2. Можно ли подпрограммно высчитать время выполнения
основной исполняемой программы и вывести на экран в секундах?
Спасибо.

Ответ

Здравствуйте, Oleg!
Вот тебе модулек на паскале
Разбирайся

Приложение:


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

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

Вопрос №329

Подскажите откуда можно скачать SOFTICE?

Ответ

Здравствуйте, Alex,
посмотрите на http://www.dore.ru/files/debuggers/index.shtml


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

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

Вопрос №332

При программировании видеопамяти через порты возникает один неприятный момент - у экрана появляется белая рамка. Причем лежит эта рамка у самых границ.
Из-за чего это? Как с этим бороться?

Пример рамки можно посмотреть тут.

Ответ

Здравствуйте, Stepan Yar!
Для установки цвета этой рамки используй 10h прерывание
AX=1001h
BH=color(6 бит 00rgbRGB, где r g b - 1/3 интенсивности,R G B - 2/3 интенсивности)


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

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

Вопрос №334

Здравствуйте, эксперты!
Подскажите, пожалуйста, можно ли в SoftIce для Windows загрузить Досовскую программу.

Ответ

Здравствуйте, Ramil!
Конечно можно. Запускаем Symbol Loader, выбираем опцию Open module в меню File и идем туда где лежит наша программа,
а затем в меню Module нажимаем на опцию Load.


Отправил эксперт: Роман
Эксперт отправил ответов (всего): 4

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

Вопрос №336

Добрый день Vasis.
Вдогонку - еще такой вопрос, можно ли в этой сети из 2-х компов, управлять тем компом, что подключен к инету, имеется ввиду запускать программы, получать и отправлять почту, и.т.д. Принимаем, что он включен постоянно.
Как это делается? Я же не вижу на удаленном компе стартменю и десктоп.Я вижу только диски.
Спасибо.

Ответ

Здравствуйте, Олег!
Это все гораздо проще делалось если на компьютер подключенный к Интернет установить Linux, тогда на рабочей станции можно было делать все что Вы хотите. В случае Windows машин на ту которая подключена к интернет необходимо установить программу Eserv. И при этом не забыть присвоить машинам в сети IP-адреса внутренней сети (например 192.168.0.1 192.168.0.2 и т.д.). И тогда на второй машине прописываешь в Internet explorere IP адрес первой машины и можно выходить в Интернет и соответствующие настройки делаются в Outlook Express и можно отправлять и принимать почту.


Отправил эксперт: Роман
Эксперт отправил ответов (всего): 5

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

Вопрос №335

Есть вопрос к уважаемым экспертам.
Имеем два компа. На расстоянии 70-80 метров
друг от друга. Один комп имеет соединение с интернетом,
второй нет. Как лучше их объединить в сеть, и можно ли со второго компа(не имеющего выход в инет) включать первый и соединяться с интернетом.Как это осуществить? Какие
сетевые карты лучше подходят для такого расстояния?
Какой кабель? И.т.д...
Спасибо за подробный(!) ответ.

Ответ

Здравствуйте, Oleg!
Смотрите ответ на свой второй вопрос. А по - поводу карт и кабелей, то лучше всего использовать витую пару, максимальная длина без повторителя 110 м, UTP 5 категории пропускная способность ее 10/100 Mbit в зависимости от того какой используется HUB, а из сетевых карточек лучше выбрать RL 2000


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

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

Вопрос №339

Эксперты!
Вопрос1. INT10 ah=0c. Тут ясно, вывод точки, а вот
значеня пиксела AL= , что означают? И какими они могут быть?
Вопрос2. Можно ли подпрограммно высчитать время выполнения
основной исполняемой программы и вывести на экран в секундах?
Спасибо.

Ответ

Здравствуйте, Oleg!
Отвечаю на первый вопрос(на второй уже ответил)
В приложении образ экрана справочной системы XView-очень рекомендую!

Приложение:


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

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

Вопрос №332

При программировании видеопамяти через порты возникает один неприятный момент - у экрана появляется белая рамка. Причем лежит эта рамка у самых границ.
Из-за чего это? Как с этим бороться?

Пример рамки можно посмотреть тут.

Ответ

Здравствуйте, Stepan Yar!
Попробуй установить нулевой цвет палитры в значение 0,0,0
а вообщето это бордюр экрана, на VGA адаптерах он зачастую равен нулевому цвету в палитре, хотя возможно бывают исключения. В биосе по идее есть функция SETBORDERCOLOR или что-то в этом роде связанное с BORDER, попробуй ее если первый метод не поможет.


Отправил эксперт: VD (vdragon-pas.chat.ru - Программирование графики на Пакаль со вставками на)
Эксперт отправил ответов (всего): 5

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

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

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

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

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

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


Ваше имя *:

Ваш 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

В избранное