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

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


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

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

Выпуск N 026

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

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


Новости программы генерации рассылки

1. Установлена перекодировка. Теперь в рассылке все вопросы / ответы будут в одной кодировке (надеюсь). В любом случае, все ошибки будут исправляться. Дело в том, что довольно-таки сложно тестировать, т.к. группы уже работают...

2. Теперь форма подачи вопроса находится не только на сайте, но и в самой рассылке (внизу). Спокойно набираете вопрос и отправляете его экспертам! Вот и все!
Начата работа над созданием возможности отправления вопросов по почте.
Надеюсь, что проблем с перекодировкой не будет. Очень надеюсь...

Вопрос №179

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

Cтрочка из *.rc:



COMBOBOX IDD_AAA,68,42,48,35,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP



Можно ли как-то задать пункты COMBOBOX по умолчанию без вызова специальных функций добавления строк?

Ответ

Net


Отправил: ...DJ_ViG... (netu - netuzhe)
Эксперт отправил ответов (всего): 3

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

Вопрос №178

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

Проблема в отладке программы (исходников нет, только exe). Программа перехватывает прерывание INT 3h. При отладке в td.exe перехвата INT 3 компьютер зависает. Отладчик конечно тоже использует это прерывание. Заменить INT 3 на другое не удаётся, т.к. занимает один байт. Как можно выйти из положения.

Ответ

Замени на NOP (90h) (Эта команда ничего не делает, только отнимает такты процессора).


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

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

Вопрос №184

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

Ответьте пожалуйста на один маленький вопрос. Можно ли загнать в COM-овский файл отладочную информацию также, как и в EXE-шник ? Заранее спасибо.

Ответ

Приветствую.
Если вы используете тасм то делается это так:
tasm /w+ /zi /la /m myprog.asm
tlink /v myprog.obj
tdstrip -s -c myprog.exe
td myprog.com

Вот собственно и всё.

Good luck. Slava V.


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

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

Вопрос №185

УВАЖАЕМЫЕ ЭКСПЕРТЫ

ИЗУЧЕНИЕ АССЕМБЛЯРА НАЧАЛ С НЕДАВНЕГО ВРЕМЕНИ

ЧТОБЫ ПРАКТИЧЕСКИ ПЕРЕЙТИ К ЕГО ПОНИМАЮ ПОПРОБОВАЛ МОДИФИЦИРОВАТЬ ПРОГРАММКУ ПРЕДСТАВЛЕННУЮ В ОДНОМ ИЗ НОМЕРОВ РАССЫЛКИ

АССЕМБЛИРОВАНИИИ ЕЕ MASM 6.1 ТО ЕСТЬ ML.EXE [ИМЯ ФАЙЛА] /AT

ПРИ ЗАПУСКЕ ИЗ РЕЖИМА ms-dos ПОД ВИНДАМИ ВЫБРАСЫВАЕТ В ОШИБКУ



ПОДСКАЖИТЕ В ЧЕМ ПРОБЛЕМА

ЗАРАНЕЕ БЛАГОДАРЕН

Ответ

программа конечно хорошая... но а где конец то??? , т.е. выход???
выход из программы осуществляется так
mov int 20h
или
ret
или
mov ax,4c00h
int 21h
Вперёд!


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

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

Вопрос №185

УВАЖАЕМЫЕ ЭКСПЕРТЫ

ИЗУЧЕНИЕ АССЕМБЛЯРА НАЧАЛ С НЕДАВНЕГО ВРЕМЕНИ

ЧТОБЫ ПРАКТИЧЕСКИ ПЕРЕЙТИ К ЕГО ПОНИМАЮ ПОПРОБОВАЛ МОДИФИЦИРОВАТЬ ПРОГРАММКУ ПРЕДСТАВЛЕННУЮ В ОДНОМ ИЗ НОМЕРОВ РАССЫЛКИ

АССЕМБЛИРОВАНИИИ ЕЕ MASM 6.1 ТО ЕСТЬ ML.EXE [ИМЯ ФАЙЛА] /AT

ПРИ ЗАПУСКЕ ИЗ РЕЖИМА ms-dos ПОД ВИНДАМИ ВЫБРАСЫВАЕТ В ОШИБКУ



ПОДСКАЖИТЕ В ЧЕМ ПРОБЛЕМА

ЗАРАНЕЕ БЛАГОДАРЕН

Ответ

Ты тут собственно чего наинтуичил, а? Возврат из подпрограммы должен быть или нет. Он возвращает ошибку, когда начинает выполнять строку "Привет". Перед ней команду ret поставить надо. Но в любом случае эта программа никогда не завершит свое выполнеение ты чего-то слишком перемудрил. Написал бы что-ли, что она делать должна, помогли бы.


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

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

Вопрос №182

Help !!!

Знает кто, какой процессор кроме "up to 233MMX" можно поставить на 5SVA VIA Apollo VPX ?

... или как это дело можно разогнать ?

Зараннее спасибо.

Ответ

А у тебя точно MMX поддерживает. Тогда есть надежда воткнуть какой-нибудь AMD K6. Во-вторых, если у тебя Flash BIOS - зайди на сайт VIA, скачай версию поновей. И, в-третьих, в какой-то статье на IXBT прочел, что некоторые старые мамки поддерживают множитель 6, в положении соответствующем множителю 2. Кстати, если плата не поддерживает DIMM, то дешевле новую мамку купить. Потому что DIMM'ы стоят как грязь, а SIMM как раритет.


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

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

Вопрос №183

Привет!

Где можно найти подробное, желательно русское описание того как работать в Telnet - e ? (принцип, комманды, примеры)

Зараннее спасибо.

Ответ

а че там описывать? да еще и подробно. всеизвестно, что у каждого хоста в нете есть свой адрес ip (четыре числа <=255, разделленых точками), и чтобы на одном хосте можно было запускать не одну, а несколько программ (к которым можно подключаться), и чтобы каждой программе не давать свой ip (а то быстро закончатся), придумали еще порты. так вот telnet может подключаться к любой программе, даете ему ip и порт и подключаетесь. принцип: весь input (все что вы вводите) передает программе на другом конце, весь output от той программы выдает вам. команды: у телнета неееееету никаких команд! команды у конкретной проги к которой вы подсоеденились. например, подсоеденились к telnetd (d - daemon) у linuxa, так вот команды линукса и вводите; подсоеденились к почтовому серверу (pop или smtp), вот команды pop или smtp и вводите. пример: запускаете телнет, так
telnet <имя вашего pop сервера> 110
имя вашего поп сервера вы должны были вводить в вашем почтовом клиенте (outlook или theBat!). 110 - это порт для pop3 сервера. ну и дальше делайте так: (сначало настройте Терминал -> Параметры... поставьте галочку Отображение ввода, так как pop сервер его не выводит и будет сам телнет показывать, что вы набираете)
1) user <ваш логин>
2) pass <ваш пароль>
вот вы зашли
3) list
вы увидите скока у вас мэилов в ящике
4) top <номер мэила> <кол-во строк>
или retr <номер мэила>
в первом случае вы увидите заголовок письма + первые строки мэила (сколько вы их ввели), во втором - весь мэил целиком. повторяйте п.4 пока не надоест, а как надоест
5) quit
теперь вам не нужен никакой outlook, чтобы проверить почту! :)) кстати, outlook (и любой другой почтовый клиент) и делает как раз все, что вы проделали выше.
если знакомы с BSD, linux, unix и т.п., то можете зайти сюда: http://sekt7.org/openroot/ там написанно как к ним подключиться, и через тот же телнет можете полазить по их системе (галочку Отображение ввода уберите, так как виртуальные терминалы в unix-like системах все, что вы вводите выводят, как в досе когда вы ввели какую-то команду (например dir), она появляется на экране).
вот вроде и все.


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

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

Вопрос №182

Help !!!

Знает кто, какой процессор кроме "up to 233MMX" можно поставить на 5SVA VIA Apollo VPX ?

... или как это дело можно разогнать ?

Зараннее спасибо.

Ответ

по VPX:
они поддержиают напряжение 2.2 вольта стало быть поддерживают процессов К6-2 далее все зависит от производителя. Как правило это выглядит как коэф 4 (только для К6-2) атакже шина 83 (иногда 75)
стало быть держит она все пни и аналоги, атакже CYRIX MII-300 (реально он 3х75=225) и К6-2 266
разгон:
первые пни интел:
3.5х83=290, 3.5х75=266 (только 233 и то если позволит)
3х83=250 (максимум для всех остальных)
АМД К6:
3.5х83=290 (это максимум, а там все от проца)
сайроксы гнать не советую
К6-2-266:
4х83=333


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

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

Вопрос №188

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

Ответьте мне пожалуйста на такой вопрос:

Как избавиться от "пустого места в файле", которое

возникает в связи с использованием конструкции типа

buffer db 2048 dup(0). Дело в том, что для ускорения

работы одной из моих программ необходима работа с длинной

строкой считаных байтов. С реализацией проблем нет, но вот

файл .com - формата получается аж на 2-4 кило тяжелее, и

все сражения за свободное место оказываются тщетными.

Нет ли возможности просто читать байты "куда-нибудь",

т.е. просто на какой-то адрес, т.е. определить какую-то

область ОП под это дело. Может это какой-то директивой

делается, или ещё как-нить. Словом, буду благодарен за

любую помощь. И ещё. Опубликуйте пожалуйста хотя бы

несколько адресов, где можно скачать РУССКУЮ(на русском)

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

чайников), по программированию на tasm и masm под окошки

билли. Дос бесспорно ещё интересен, но хотелось бы писать

уже и под винду, тем более что по размеру проги как ни странно

получаются ненамного больше. С уважением. Заранее благодарен.

aili(aili@mail.ru)

Ответ

привет. Да, можно твой com сделать меньше. Для этого выделяешь под свою строку динамическую память с помощью функции 48h прерывания
21h:
mov ah,48h
mov bx,memory
(где memory - нужный тебе размер блока памяти в параграфах (1 параграф=16 байт))
int 21h
После вызова этой функции значения регистров такие:
AX= адрес (сегмент) памяти, который тебе выделели или код
ошибки если СF=1
Если CF=1 и AX=8 , то BX= размеру максимальному доступного блока памяти.


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

Экспертная группа: Оптимизация программ

Вопрос №188

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

Ответьте мне пожалуйста на такой вопрос:

Как избавиться от "пустого места в файле", которое

возникает в связи с использованием конструкции типа

buffer db 2048 dup(0). Дело в том, что для ускорения

работы одной из моих программ необходима работа с длинной

строкой считаных байтов. С реализацией проблем нет, но вот

файл .com - формата получается аж на 2-4 кило тяжелее, и

все сражения за свободное место оказываются тщетными.

Нет ли возможности просто читать байты "куда-нибудь",

т.е. просто на какой-то адрес, т.е. определить какую-то

область ОП под это дело. Может это какой-то директивой

делается, или ещё как-нить. Словом, буду благодарен за

любую помощь. И ещё. Опубликуйте пожалуйста хотя бы

несколько адресов, где можно скачать РУССКУЮ(на русском)

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

чайников), по программированию на tasm и masm под окошки

билли. Дос бесспорно ещё интересен, но хотелось бы писать

уже и под винду, тем более что по размеру проги как ни странно

получаются ненамного больше. С уважением. Заранее благодарен.

aili(aili@mail.ru)

Ответ

если тебе НЕ ВАЖНО, что там будет, когда прога стратует, вместо 0, используй ?, т.е. buffer db 2048 dup(?) и плюс к этому распологай это дело в конце сегмента, тогда tasm/masm это не будет включать в код программы. если тебе все-таки ВАЖНО, чтобы там были нули, то при НЕбольших размерах буффера, можно сделать и как ты сделал. но если речь идет о таких больших размерах, то делаешь как в первом случае и добавляешь в прогу коротенький кусок кода, который обнуляет все это дело (см. приложение).

З.Ы. Евгений, тут динамическое выделение памяти не при чем. если пишешь db 0, то ассемблер считает, что там должен быть 0 сразу как загрузится прога, вот он его так и сохранит, и прога меньше не станет хоть c динамическим выделением, хоть без него. а чтоб ее уменьшить, как я уже показал, динамическое выделение не нужно. просто надо грамотно все описывать. кстати, если динамически выделять, то тоже надо будет все обнулять.

Приложение:


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

Экспертная группа: Оптимизация программ

Мнение

Уважаемый Олег!

1. Небольшое замечание.
Большинство авторов вопросов, конечно же, чайники, но не ламеры, т.к. хотят получить знания, возможно не самым справедливым способом, но эксперты дело как очень благородное, так и добровольное. Поэтому если возможно отвечайте на вопросы, учитывая, что очевидные вещи для Вас могут, и часто являются, для авторов вопросов непонятными и трудными, и не всегда это связано с их ленью или низким интеллектом.

2. Теперь вопрос
Имеется WinMe. Могут ли с ним работать MASM/TASM, SoftIce и другие программы, которые необходимы для программирования на Asm'е (аналогичная тема поднималась в вопросах № 123 и 165).
Один ответ экспертов, касаясь SoftIce, содержит фразу <да, но с соответствующей версией>. Термин <соответствующая> - это любая версия SoftIce? Или определенный номер её?
Другой ответ - рекомендует <поэкспериментировать>, скажем для чайника -это суперпереоценка его способностей. Хорошо, что он уже SoftIce пишет правильно.
В ответе, уже касаясь MASM/TASM, подтверждая совместимость, уточняется, что это означает < :V86 режим в pmode:>. (?!). Что это значит для чайника - не стоит объяснять...

Вопросы эти вызваны тем, что с точки зрения чайника, "внешне" режим MSDOS в WinMe организован иначе, чем в предыдущих версиях Win. И поэтому и вопрос о совместимости и, даже, - может стоит "вернуться" к WIN98.
Может следует вопрос о совместимости WinMe (и вообще версий программ с версиями Win) включить в выпуск № 30 или 31.

Извини за пространное письмо, но короче не получается.
С уважением и признательностью Евгений.


Вопрос №190

ъДТБЧУФЧХКФЕ, ЬЛУРЕТФЩ!

рПДУЛБЦЙФЕ, Ч ЮЈН РТЕЙНХЭЕУФЧП, Б НПЦЕФ ВЩФШ Й ОЕДПУФБФЛЙ РТПГЕУУПТПЧ AMD.

Ответ

вопрос очень общий, поэтому и ответ такой:
сравниваю к6, к6-2 с целеронами и первыми пнями
ПРЕИМУЩЕСТВА - в основном соотношение цена\производительность, а также бОльший cash по сравнению с целеронами, соответственно маленькие досовые проги работают быстрее
НЕДОСТАТКИ- меньшая производительностьв играх и при работе с плавающей запятой
Это не относится к Duron'ам, которые просто лучшие - Duron 750 при цене 50$ сопоставим с PIII 733 за 145$


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

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

Вопрос №190

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

Подскажите, в чём преимущество, а может быть и недостатки процессоров AMD.

Ответ

Самым главным достоинством процессоров от AMD является цена.
Недостатком же является сравнительно высокая цена на материнские платы.
При тестах на производительность (реальные задачи) процессоры Athlon/Duron и PentiumIII/Celeron при одинаковой тактовой частоте дают одинаковые же результаты. (хотя всё зависит от конфигурации)

Так что вопрос здесь в том готовы ли вы переплатить за Brand или сэкономив на процессоре приобретёте что-нибудь другое (память например).


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

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

Вопрос №191

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

Возможно ли написать на асемблере програмку, которая бы закрывала доступ к определеному порту, и, если можно, киньте исходник, если у кого есть.

Заранее спасибо!

Дмитрий.

Ответ

Какому-такому порту? Если имеется виду Com или Lpt-порт, то это элементарно. Если порт процессора, то ты братец залез в защищенный режим. Но весь ДОС, как назло в реальном режиме, поэтому это скорее всего не поможет. Хотя можно написать ДОС-расширитель работающий в режиме V86, очень даже возможно. Но очеень долго и неприятно. к тому же это чудо надо будет грузить раньше, чем ДОС. Иначе бред какой-то получается. Получается, что тебе придется написать ядро операционной системы для защищенного режима. А сколько ядро Windows занимает знаешь? У тебя я думаю раз в десять короче может получиться. Это навскидку. А вообще-то были какие-то версии ДОС работавшие в защищенном режиме. Насчет DR-DOS я неуверен, а вот PTS-DOS(ФизТЕхСофт) этим вроде как гордилась. Так что ставь другой ДОС производства башковитых парней из МФТИ и пиши небольшой драйвер. Но это чисто теоретический совет, практикой помочь не могу. Зато имеешь шанс поддержать отечественного производителя.


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

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

Вопрос №190

ъДТБЧУФЧХКФЕ, ЬЛУРЕТФЩ!

рПДУЛБЦЙФЕ, Ч ЮЈН РТЕЙНХЭЕУФЧП, Б НПЦЕФ ВЩФШ Й ОЕДПУФБФЛЙ РТПГЕУУПТПЧ AMD.

Ответ

Главное преимущество AMD - цена, а про остальное можно спорить. AMD - это целая философия. Если честно, то K6 там всякие отличались быстрыми целочисленными и ОЧЕНЬ тормозными дробными операциями. Надо сказать, что дробная арифметика не есть их лучшая сторона и сейчас, но зато эти процессоры выжимают из технологий ПРОШЛОГО поколения что-то наравне с Pentium III. Сравнивать что-либо с P4 вообще некорректно, разные весовые категории. Если мало денег - бери Duron, Athlon. Хотя мамки под них по цене не сильно отличаются от пнёвых.


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

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

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

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

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

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

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


Ваше имя *:

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

В избранное