Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Ассемблер? Это просто! Учимся программировать (FAQ)
Ассемблер? Это просто! Учимся программировать (FAQ)
Выпуск N 032 |
Вопросы, которые поступили от подписчиков рассылки
"Ассемблер? Это просто! Учимся программировать"
Дата выхода: 2001-07-06
Ваши письма
Здравствуйте!У меня небольшое замечание по работе формы набора вопросов к экспертам - почему-то при наборе текста в форме не всегда срабатывает пробел. Вы, наверное, уже обратили внимание, что в вопросах появились слитно написанные слова. С чем это связано - я не знаю. Но когда я набирал вопрос, пробел иногда не срабатывал - сдвигал форму, а курсор не двигался.
С уважением, Александр.
Мой комментарий
Уважаемые читатели! Если в форму невозможно вставить пробел, то это проблемы только Вашей почтовой программы. Форма с вопросом приходит в стандартном HTML-файле. Единственное, что могу посоветовать, сохраняйте письмо в файл, а затем используйте браузер (желательно Internet Explorer 5.0 и выше) для отправления ответа.
____________
И еще один момент. Пожалуйста, старайтесь не отправлять мне дополнения к вопросам, т.к. у меня просто не хватает времени их пересылать экспертам через форму. Например, вы задали вопрос. Получили ответ, в котором Вы изложили не все данные о проблеме. Эксперт ответил как мог. Вы же мне пересылаете его ответ + Ваше дополнение к вопросу. Мне приходится из прежнего Вашего ответа получать сущность вопроса + еще дополнительную информацию которую Вы прислали. Затем через форму я отправляю второй вопрос экспертам, но уже с дополнительными данными. Новая программа, которая скорее всего приступит к обработке корреспонденции, будет иметь гораздо больше возможностей, в том числе и решит проблему дополнения вопросов.
Пока же могу порекомендовать только отправлять еще один вопрос, но уже с дополнениями, цитируя при этом прежний Ваш вопрос + ответ эксперта в окне Дополнительная информация, дабы не нагружать рассылку.
Книга отзывов
Ответ эксперта Drona помог разобраться полностью с моим вопросом.Спасибо ему!
Вопрос №253
Здраствуйте, уважаемые эксперты!
Подскажите, кому не лень, какой самый удобный и лучший отладчик на ваш взгляд. Мне не обязательно с супер наворотами, в которых нужно разбираться, а удобный и без заморочек. И где его можно закачать?
Если есть ещё какие-нибудь удобные программки, то пишите где скачать.
Ну а у кого большое желание помочь, то вот моё мыло: vkmb5880@prvtel.uralnet.ru
Буду рад всякой помощи. Заранее благодарен.
Ответ
Здравствуйте, VK!
Мне больше нравится Soft Ice, но в нем лучше подразабраться, а если тебе неужен простой отладчик то исполбзуй Turbo Debuger, ну или на худой конец debug(это уже самый простой отладчик, но и сминимумом функций)
Отправил эксперт: Leha
Эксперт отправил ответов (всего): 4
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №260
Приветствую всех! Плиз, если вам не тяжко, расскажите можно ли в защищенном режиме использовать прерывания BIOS/DOS и каким образом (если такая возможность есть). Спасибо, что ответили.
Ответ
Здравствуйте, Воинствующий ламер!
Вычитал тут мнение что "НЕЛЬЗЯ!!!"
Ну не согласен!
Защищенный режим защищенному режиму рознь. :)
В идеале конечно нельзя, там и дос то абсолютно не к чему... :)
Но если работа идет под досом, под экстендером, то стандарты экстендеров предусматривают такие возможности...
Стандарт DPMI например предоставляет функции 300h (эмуляция прерывания реального режима), 301h (Вызов процедуры реального режима оканчивающейся на ret far), 302h (вызов процедуры реального режима оканчивающейся на iret)...
В PharLap тоже есть подобные функции 2510h и 2511h...
А делается это очень просто...
Процессор на некоторое время переключается в реальный режим, выполняет прерывание или функцию и возвращается обратно.
Можешь заглянуть на http://www.zdrx.da.ru/
Там есть DPMI совместимый DOS extender с исходниками.
Поковыряйся.
Отправил эксперт: Dron
Эксперт отправил ответов (всего): 29
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №274
Здраствуйте!
Есть вопрос по прграмме "Virus13" из урока №13.
В строке №102 содержится переход на метку Lab_jmp,которая находится в другом сегменте
102 jmp dword ptr cs:[Off_move]
при этом в строке №89 было заменено значение регистра ES,но CS оставался без изменений
89 mov es,Seg_move
1.Мне непонятно почему переход в другой сегмент вообще происходит (ведь ES содержит значение нашего сегмента)
2.Почему нельзя было записать так
102 jmp dword ptr es:[Off_move]
3.Почему после исполнения оператора перехода,меняется значение регистра CS
С уважением Nck71
Ответ
Здравствуйте, Nick71!
Ты в своих утверждениях допустил как минимум одну серьезную ошибку...
выражение
jmp dword ptr es:[offset]
Отправляется на по адресу es:offset а по адресу [offset + 2]:[offset]
т.е. беруться значения из памяти...
Возмона форма абсолютного межсегментного перехода
jmp seg:func ; не знаю точно как в тасме написать, мнемоника насмовая...
написать es:func помоему нельзя... нет такой инструкции
т.е. либо абсолютный переход, либо по адресу из памяти.
Отправил эксперт: Dron
Эксперт отправил ответов (всего): 30
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №275
Добрый день
пробую отасемблировать програму из 13 выпуска
набираю команду tasm.exe prog.asm/AT
при этом создается файл t.obj и все.
В чем причина.
у меня система WinNT и стоит far .
Ответ
Здравствуйте, dmitry!
tasm и ml это абсолютно разные вещи...
tasm /?
tlink /?
for help
Отправил эксперт: Dron
Эксперт отправил ответов (всего): 31
Экспертная группа: Работа с MASM/TASM
Вопрос №275
Добрый день
пробую отасемблировать програму из 13 выпуска
набираю команду tasm.exe prog.asm/AT
при этом создается файл t.obj и все.
В чем причина.
у меня система WinNT и стоит far .
Ответ
Здравствуйте, dmitry!
Компилировать ТАСМом нужно так:
tasm prog.asm
tlink prog.obj /t
А МАСМом так:
ml.exe prog.asm /AT
Вот и всё!!!
Отправил эксперт: Evgos (http://ospelnikov.narod.ru - Личная страничка)
Эксперт отправил ответов (всего): 21
Экспертная группа: Работа с MASM/TASM
Вопрос №276
Здравствуйте эксперты!
Скажите чем отличается пораллельный порт от последовательного?
И еше можно ли задавать вопросы по поводу прог. на Си?
Если да то напишите мне пожалусто процедуру для открытия файлана, на чистом Си (к примеру C:\1),с использованием оператора fread()!
Буду ждать ответа!!!
Ответ
Здравствуйте, Alex!
Скоростью обмена
В последовательном порту посылается бит за битом последовательно - максимальная скорость 115200 бит, а в паралельном порту идет весь байт сразу соответственно скорость до 4 Мбит\сек
Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 6
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №273
Уважаемые эксперты1
Прерывание 21 функции 2с считывает системное время.
Как мне это время вывести на экран? В десятичной форме.
Описание прерывания 8 нигде не могу найти. Кто проишлет мылом
Заранее спасибо.
Олег.
Ответ
Здравствуйте, Oleg!
Вообще, чтобы узнать что делают функции прерываний можно воспользоваться
системой "TECH Help", которую cкачать с www.Kalashnikoff.ru например.
но всеже кидаю на мыло описание Int 08h.
а функция 2с возвращает время в регистрах:
CH - часы, CL - минуты, DH - секунды, DL - сотые доли секунд (точность 0.04с)
Вот вродебы прога, которая выводит это дело на экран:
за то что большая сильно не бейте, лучше оптимизируйте сами.
Приложение:
Отправил эксперт: Event
Эксперт отправил ответов (всего): 7
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №275
Добрый день
пробую отасемблировать програму из 13 выпуска
набираю команду tasm.exe prog.asm/AT
при этом создается файл t.obj и все.
В чем причина.
у меня система WinNT и стоит far .
Ответ
Все понятно. tasm.exe не идет с ключем от ML !!!!! либо делать так:
tasm.exe prog
tlink.exe prog /t
или ml /AT prog.asm
Все.
Отправил эксперт: K.A. NiCK
Эксперт отправил ответов (всего): 37
Экспертная группа: Работа с MASM/TASM
Вопрос №273
Уважаемые эксперты1
Прерывание 21 функции 2с считывает системное время.
Как мне это время вывести на экран? В десятичной форме.
Описание прерывания 8 нигде не могу найти. Кто проишлет мылом
Заранее спасибо.
Олег.
Ответ
Здравствуйте, Oleg!
Если нужно описание напиши мне на lehan@svs.ru
Отправил эксперт: Leha
Эксперт отправил ответов (всего): 5
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №280
Подскажите пожалуйсто как написать генератор случайных чисел
Ответ
Я уже отвечал на такой вопрос. См. приложенный исходник. ничего сложного!
Приложение:
Отправил эксперт: K.A. NiCK (http://www.lightstorment.f2s.com - Lightstorm entertainment home page)
Эксперт отправил ответов (всего): 38
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №278
Я начинающий програмист на Ассемблере, интересуюсь резидентами.Но они у меня не работают компьютер просто зависает(386). Зависает в том числе и та резидентная программа которая опубликованна в 10 выпуске не знаю в чем дело помогите SOS!!!Програмирую на MASM версию не помню точно помоему 5.
Ответ
Здравствуйте, Роман!
Написать резидента под DOS проще простого.
(Хотя я в основном предпочитаю продукты Microsoft,
но для разработки ассемблерных программ лучше все же
использовать TASM версии >=2.5, он более универсален
и удобен в обращении)
Основное !
Надо всегда помнить, что когда приходит управление
на резидента он имеет дело со всеми чужими регистрами,
кроме CS:IP и даже не имеет своего стека!
Отсюда следует, что резидент должен быть предельно
осторожным и использовать для своей работы минимум
регистров и по возможности не использовать стек.
И это реально. Вот пример:
; Резидент, вешается на 75 вектор,
;------ обязательная часть необходима для компилятора,
;но не формирует кода в готовой программе ---------
.286
seg_a segment para
assume cs:seg_a, ds:seg_a
org 100h
start:
;-----------------------------------------
jmp begin
;----------------------------------------
;Здесь лучше расположить данные резидента
jmp begin
regAX dw 0
regBX dw 0
regCX dw 0
regDX dw 0
regES dw 0
regDS dw 0
;-------------------------------------------
int_75:
; так можно сохранить регистры чужой среды
mov cs:[RegAX],ax
mov cs:[RegBX],bx
mov cs:[RegCX],cx
mov cs:[RegDX],dx
mov cs:[RegES],es
mov ax,ds
mov cs:[RegDS],ds ;ax
; и т.д. (флаг можно не сохранять - он в стеке)
push cs
pop ds ; Hастраиваем DS, так как это TSR
; можно не настраивать, если пользоваться
;префиксом CS
; Oсновное тело программы
;---------------------------------
; выход из резидента - восстановление всех регистров
mov bx,cs:[RegBX]
mov cx,cs:[RegCX]
mov dx,cs:[RegDX]
mov ax,cs:[RegES]
mov es,ax
mov ax,cs:[RegDS]
mov ds,ax
mov ax,cs:[RegAX]
db 0EAh
regIP dw 0
regCS dw 0
;-----------------------------------------------------
begin:
; установить адрес int 75h на int_75
push cs
pop ds
;coхраняем адрес 75h
mov ax,3575h
int 21h
mov regIP,bx
mov regCS,es
; установить адрес int 75h на int_75
lea dx,int_75 ;(или mov dx,offset int_75 - компилятор формирует один и тот же код)
lea dx,int_75
mov ax,2575h
int 21h
; остаться резидентом
lea dx,begin
int 27h
; это для ассемблера, не формирует код
seg_a ends
end start
Отправил эксперт: AGat
Эксперт отправил ответов (всего): 1
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №281
У меня вопрос следующего содержания.
Я пользуюсь на работе операционной системой Windows 2000 Professional. Программа для DOS, которая должна посылать на LPT порт координаты детали , не работает корректно под этой системой. Мне говорили, что в NT как-то иначе определяются порты. Есть ли способ заставить эту порграмму заставить работать под NT? В Досе она работает корректно. Заранее спасибо.
Ответ
Разреши в настройках этой операционки использовать LPT порт ДОС программам... в общем тебе надо расшарить LPT порт.....
Отправил эксперт: DDKJ_MIX (http://lclock.chat.ru - простые и красивые часики для линуха)
Эксперт отправил ответов (всего): 1
Экспертная группа: Пользовательская работа с Windows
Вопрос №282
Здравствуйте, уважаемые эксперты!
У меня тут возникла идея поставить на мою 5SVA VIA Apollo VPX (up to 233MMX) AMD K6-II ( шина x 5, U= 2.4 V - кажется...) теоретически побежит на 415 Mhz на шине 83Мн. Но по паспорту напряжение можно регулировать в пределах 2,8-3,5 V.
Вопрос следующий: не запалится ли вышеуказанный процессор при U=2.8V ? (меньше не получается)
И еще: можно ли какой Целерон или еще что побыстрее поставить, если да - какой ?
P.S. PavelAT, да на socket 7 он !!! и на шине 83Мн у меня 166ММХ ОТЛИЧНО бегает на 208 Мн и всё нормально работает !
Заранее СПАСИБО, Сергей
Ответ
На заводе процы тестировали....при напряжении 2.4 ...так значит это
просто такой стандарт....и отсюда не факт то что он запалится....
и не факт конечно что он долго будет работать...всетаки это перегрузка.. а по поводу того что побыстрее ? а что побыстрее то...
celeron тебе не нужен....если у тя AMD так и покупай быстрый AMD-II
или выше....они дешевые все равно....разгонять это конечно хорошо...
просто глюки бывают.... это зависит от охоложденности процессора....
если ты собираешся...не следовать стандартам... то купи термопасту...
и намаж его....+ винтелятор хороший нужен или лучше всего два....
Отправил эксперт: DDKJ_MIX (http://www.lclock.chat.ru - простые и красивые часики для линуха)
Эксперт отправил ответов (всего): 2
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №282
Здравствуйте, уважаемые эксперты!
У меня тут возникла идея поставить на мою 5SVA VIA Apollo VPX (up to 233MMX) AMD K6-II ( шина x 5, U= 2.4 V - кажется...) теоретически побежит на 415 Mhz на шине 83Мн. Но по паспорту напряжение можно регулировать в пределах 2,8-3,5 V.
Вопрос следующий: не запалится ли вышеуказанный процессор при U=2.8V ? (меньше не получается)
И еще: можно ли какой Целерон или еще что побыстрее поставить, если да - какой ?
P.S. PavelAT, да на socket 7 он !!! и на шине 83Мн у меня 166ММХ ОТЛИЧНО бегает на 208 Мн и всё нормально работает !
Заранее СПАСИБО, Сергей
Ответ
Здравствуйте, Серегй!
Ни в коем случае! к6-2 2.2 V то есть теоритически прикрутом кулере и зимой можно поставить на 2.3, но не больше!
Celeron не станет - надо менять мать...
Дешевле всего тебе выйдет i810 чипсет, если найдешь
Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 7
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №283
Уважаемые эксперты!
Скажите, пожалуйста, могу ли я как индивидуальный предприниматель работать под какой-либо произвольно придуманной торговой маркой?
Заранее благодарю, Александр.
Ответ
Здравствуйте, Александр!
Причем здесь железо? ;)
по моему торговая марка - это общее название серии продуктов, а не предприятия, т.е. предприятие может владеть торговой маркой
ее конечно же надо зарегестрировать, за что платятся денюжки
А вообще-то это вопрос в рассылку законодательства...
Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 8
Экспертная группа: Модели, виды и типы компьютеров (hard)
Подписаться на рассылки
Форма подачи вопроса
ВНИМАНИЕ!!! Пожалуйста, НЕ высылайте один вопрос сразу нескольким подгруппам! Если Вы сомневаетесь, какой подгруппе следует отправить вопрос, то направляйте его в обычном текстовом виде по адресу Experts@Kalashnikoff.ru. Вопрос будет выслан соответствующей подгруппе.Нажимайте кнопку "Отправить" только ОДИН раз и дождитесь полной загрузки страницы, иначе вопрос будет продублирован!
Регистрация в качестве эксперта
Архив выпусков
Ведущий рассылки,
Калашников Олег:
Assembler@Kalashnikoff.ru
ICQ No.: 68951340
URL сайта подписчиков:
http://www.Kalashnikoff.ru
______________
По вопросам сотрудничества, рекламы и спонсорства обращайтесь:
- Публичное размещение материала из рассылки: Cooperation@Kalashnikoff.ru
- Реклама на сайте, в книге и рассылках: http://www.Kalashnikoff.ru/Reklama.html, Reklama@Kalashnikoff.ru
- Издание книги (спонсорство): Sponsor@Kalashnikoff.ru
(C) Москва, 2001. Авторское право принадлежит Калашникову О.А. Публичное размещение материала из рассылки, а также его использование полностью или частично в коммерческих или иных подобных целях без письменного согласия автора влечет ответственность за нарушение авторских прав. |
Реклама на сайте Kalashnikoff.ru
http://subscribe.ru/
E-mail: ask@subscribe.ru | Отписаться | Рейтингуется SpyLog |
В избранное | ||