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

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


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

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

Выпуск N 105

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

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


Вопрос №1016

гДПЮБЯРБСИРЕ, СБЮФЮЕЛШЕ ЩЙЯОЕПРШ!
цДЕ-РН ЯКШЬЮК, ВРН Outlook Express ЯНУПЮМЪЕР ОЮПНКХ Й ОНВРНБШЛ ЪЫХЙЮЛ Б НРЙПШРНЛ БХДЕ(Р.Е. МХЙЮЙ ХУ МЕ ЙНДХПСЕР), Х ХУ ГЮОПНЯРН ЛНФМН ОПНЯЛНРПЕРЭ. оПЮБДЮ КХ ЩРН? еЯКХ ДЮ, РН ЦДЕ ЯЛНРПЕРЭ(БПНДЕ БЯё ОЕПЕПШК, МН МЕ МЮЬЕК)? б Opere ГМЮЧ, ДЕИЯРБХРЕКЭМН ОЮПНКЭ БОХЯШБЮЕРЯЪ Б *.ini ТЮИК Х ОПНЯРШЛ АКНЙМНРНЛ ЛНФМН ОПНЯЛНРПЕРЭ.
гЮПЮМЕЕ АКЮЦНДЮПЕМ, цЕМЮ.

Ответ

гДПЮБЯРБСИРЕ, gena!
не ДЕИЯРБХРЕКЭМН УПЮМХР ОЮПНКХ Б ПЕЕЯРПЕ, Б БЕРЙЕ HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Mail and News\MAIL\ POP3\"бЮЬ ЯЕПБЕП". оПЮБДЮ НМХ ЯКЕЦЙЮ ГЮЬХТПНБЮМШ.
оПХ ФЕКЮМХХ, Б ЯЕРХ ЛНФМН МЮИРХ ЯОЕЖНКЭМНЕ он ХЯОПЮБКЪЧЫЕЕ ЩРН МЕДНПЮГСЛЕМХЕ. хКХ ЛНФМН ОНЙНОЮРЭЯЪ ПСВЙЮЛХ. мН ЩРН ДНКЦН Х ГЮВЮЯРСЧ МЕЩТТЕЙРХБМН ХАН С МЕЙНРНПШУ ОНКЭГНБЮРЕКЕИ ЕЯРЭ "ОКНУЮЪ" ОПХБШВЙЮ ХЛЕРЭ ПЮГМШЕ ОЮПНКХ МЮ ОНВРС Х МЮ БШУНД Б ЯЕРЭ.


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

Экспертная группа: оНКЭГНБЮРЕКЭЯЙЮЪ ПЮАНРЮ Я Windows

Вопрос №1019

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

Vik

Ответ

Здравствуйте, vik!
Че за момед у тя???
Попробуй с поиграть с регистрами моддема....


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

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

Вопрос №1024

НАРОД!!! ЛЮДИ!!!
Как же вы не заметили, что ответили на 1000 (ТЫСЯЧНЫЙ!!!!) вопрос!??
Я ВСЕХ поздравляю! Рассылка процветает! Пора устраивать глобальную пьянку! Экспертам отдельное СПАСИБО и поздравления. Калашникову - вообще слов нет...
Кстати, я с вами где-то с 400-го вопроса. Вы мне очень помогли и поддержали, поэтому я хотел почитать кому вы еще поддержали и помогли, порылся на Kalashnikove и ничего не нашел. Короче, без базара - ГДЕ АРХИВ ПЕРВЫХ РАССЫЛОК FAQ?
Вал.Ик.

Ответ

Здравствуйте, Вал.Ик.!

1000 не такая уж и круглая цифра.. вот 1024 - это да... праздник! :))
Насчет пьянки - идея хорошая... пивка попить я завсегда рад. :)
Москвичи, давайте затусуемся! :))


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

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

Вопрос №1021

К вопросу 1007или1008
Спасибо всем за программу!
НО!!!
При асемблировании masm.exe mmm.asm:
model tiny
code
org 100h
start:
mov ah,60
mov al,50
cmp ah,al
jnl then
shl ah,2
jmp exitx
then:
xor al,01010101b
exitx:
ret
end start

Выдаёт mmm.asm(9): error A2070: invalid instruction operands
(2) что такое: .model tiny
.code

Ответ

Здравствуйте, Владимир!
При ассемблировании в masm'e надо ставить директиву .386(или .286, точно не помню) для shl, в tasm'e ассемблируется все классно!
model tiny - задается соответствующая модель памяти, у нас COM-прога, поэтому tiny, так как сегменты все объединены(код, данные, стек) в один в памяти!
code - начало сегмента кода.

PS Да и еще, тут меня Sensey поправил:) замени shl на Rol, тогда не будет учитываться флаг переноса!

Приложение:


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

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

Вопрос №1026

Здравствуйте эксперты.
Хочу спросить,можно ли в Windows XP создать загрузочный диск,если можно то как.И в Windows2000.Спасибо.

Ответ

Здравствуйте, Max!
Загрузочные дискеты (для Вынь2000 их надо аж 4) можно сделать с помощью утилит makeboot.exe или makebt32.exe находящихся на компакт-диске с дистрибутивом. У ВыньХР думаю тоже что-то похожее есть.


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

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

Вопрос №1017

Уважаемые эксперты, подскажите, какой командой в АСМе выводить на экран двоичное число (BCD) например из регистра
AX . Заранее спасибо!

Ответ

Здравствуйте, niceman! Такой команды нет. Но можна так: (уже 151 раз отвечаю): см. приложение

Приложение:


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

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

Вопрос №1023

Как пользоваться AFD? Где найти подробное объяснение? А также MASM? По пользованию AFD - смотри afd.txt в архиве с Kalashnikoff.ru: В прежние времена (5-6 лет назад) был довольно-таки популярным отладчиком. В настоящий момент он стал неактуален из-за того, что не поддерживает 32-х разрядные регистры. Однако, для наших примеров его вполне хватает. Гибкость в работе и удобство интерфейса делают его незаменимым помощником в отладке программ под MS-DOS. Мне он в свое время очень даже помогал. Не представляю, чтобы я делал без него... Клавиши управления: F1 - пошаговое выполнение команд. AFD будет заходить в прерывания и процедуры. Команды типа LOOP выполняются пошагово. F2 - процедурное выполнение. AFD будет выполнять прерывания и процедуры, а также команды типа LOOP за один шаг. F7 F8 F9 F10 - переход к тому или иному окну (регистры, память, флаги...) quit - выход из программы L имя_файла.расширение - загрузка программы Можно загружать так: afdpro.exe prog.com

Ответ

Здравствуйте, Chajnic!
По пользованию AFD - смотри afd.txt в архиве с Kalashnikoff.ru:

В прежние времена (5-6 лет назад) был довольно-таки популярным отладчиком.
В настоящий момент он стал неактуален из-за того, что не поддерживает
32-х разрядные регистры.
Однако, для наших примеров его вполне хватает.
Гибкость в работе и удобство интерфейса делают его незаменимым помощником
в отладке программ под MS-DOS.
Мне он в свое время очень даже помогал. Не представляю, чтобы я делал без
него...

Клавиши управления:

F1 - пошаговое выполнение команд.
AFD будет заходить в прерывания и процедуры. Команды типа LOOP выполняются
пошагово.

F2 - процедурное выполнение.
AFD будет выполнять прерывания и процедуры, а также команды типа LOOP за один
шаг.

F7 F8 F9 F10 - переход к тому или иному окну (регистры, память, флаги...)

quit - выход из программы

L имя_файла.расширение - загрузка программы

Можно загружать так:
afdpro.exe prog.com

По MASM - минимальный набор, необходимый для компиляции описан в первой части книги Калашникова ("Знакомство с Ассемблером", помоему).
Для полного списка команд и прочего - MASM /help. Довольно интересная справка выводится - я и сам удивился.


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

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

Вопрос №1029

Привет!
У меня задание по Паскаль-Ассемблер:
в граф.режиме 320х200 нарисовать окружность(Bios 10h).
А у меня выходит эллипс...
В режиме 640x480 этот код срабатывает.
Но мне-то нужно 320х200!!!

Ответ

Здравствуйте, Ig!
Ну смысл в том, что по Х координаты меньше, чем по Y, а чтоб узнать насколько меньше, вычислим следующим образом, зная что с режимом 640х480 все в порядке:
640*200/480=266, значит, чтоб у тебя рисовался круг тебе надо "заменить" режим 320х200 на 266х200(что пропорционально стандартному режиму 640х480)!
Значит для рисования "правильного" круга надо его радиус "по Х" умножить на приращение 320/266! Короче см. прогу, все поймешь, надеюсь!

И я еще кое-что изменил для более четкого рисования круга!

Приложение:


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

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

Вопрос №1028

Уважаемые эксперты! Ниже приведён фрагмент программы. Прошу вас объяснить значение строк 05-07 и 16-18. Зарание благодарен!

Ответ

Ув. Garret!
<05> db 90h ; код команды nop (для выравнивания сегмента)
<06> db 0E9h
<07> dw (offset PROGRAMM_START-104h) ; ну насчет 6 строки все ясно - это near jmp. В 7 я немного повтыкал и вывел следующее: если смещение метки PROGRAMM_START, например, 0119h и написать просто dw offset PROGRAMM_START (без вычитания 104h), то в памяти так все и будет выгладеть: 0E9 19 01 (0E9 - jmp, 19 и 01 - смещение задом наперед). Т.е. по идее должно транслироваться в jmp 0119h, а хрен знает почему транслируется в jmp 021Dh. Вот затем то и припаяли этот -104h (кто-то подобирал чисто экспериментальным путем), 021Dh-0104h=0119h (реальное смещение метки PROGRAM_START)

<16> call $+3
<17> pop BP
<18> sub BP,3

на 16 строке программа делает переход на... 17. (call $+3 эквивалентно E8 XX XX, где XX XX - два байта адреса перехода, - итого - 3 байта, потому-то к $ (текущий адрес) прибавляется 3). Что означают 17 и 18 строки - хоть убей, не знаю!!! по той простой причине, что ни я писал эту прогу, а по куску, что ты дал догадаться довольно затруднительно...

p.s. и все же, почему 07 строка транслируется в бред??? ;(


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

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

Вопрос №1021

К вопросу 1007или1008
Спасибо всем за программу!
НО!!!
При асемблировании masm.exe mmm.asm:
.model tiny
.code
org 100h
start:
mov ah,60
mov al,50
cmp ah,al
jnl then
shl ah,2
jmp exitx
then:
xor al,01010101b
exitx:
ret
end start

Выдаёт mmm.asm(9): error A2070: invalid instruction operands
(2) что такое: .model tiny
.code

Ответ

Здравствуйте, Владимир!
лично я с масмом не работаю. по моему в задании подразумевался rol, а не shl:
> иначе старший байт сдвинте циклически влево на два разряда без
> учёта флажка переноса.

.model tiny и .code - это так называемые директивы условной сегментации. Используются для того, чтобы людям облегчать жизнь и не заставлять их описывать сегменты руками. Почитай об этом в Зубкове или Юрове.


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

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

Вопрос №1028

Уважаемые эксперты! Ниже приведён фрагмент программы. Прошу вас объяснить значение строк 05-07 и 16-18. Зарание благодарен!

Ответ

Здравствуйте, Garret!
90h - nop
0e9h - jmp
offset - куда прыгать.
очевидно, что потом это место гдето затирается какой либо другой командой (3-хбайтной - для того и nop).
16-18 стандартный прием для определения значения ip (call сохраняет в стеке ip и потом его оттуда попают и вычитают 3 т.е. те 3 байта которые занимают pop и sub).


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

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

Вопрос №1029

Привет!
У меня задание по Паскаль-Ассемблер:
в граф.режиме 320х200 нарисовать окружность(Bios 10h).
А у меня выходит эллипс...
В режиме 640x480 этот код срабатывает.
Но мне-то нужно 320х200!!!

Ответ

Здравствуйте, Ig!
А вот так вот попробуй:
for i:=1 to 360 do PixelOut(120,trunc(x+radius*sin(i)),trunc(y+radius*cos(i)*0.83));
Ты на верное спросишь, а почему собственно 0.83. Я мыслил так. Предположим, что разрешение 640х480 - идеальное (т.е. круг в нем ровный в следствии соответствия этого разрешения с размером зерна монитора). -> что также красиво получится во всех разрешениях с отношением сторон = 640/480=4/3 = 1.33333 (к таким разрешениям относятся 800х600, 1024х768, 1600х1200 и большинство стандартных разрешений). 320/200=1.6. Одсюда и получаем коэффициент (1.333/1.6=0.833).


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

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

Вопрос №1030

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

Ответ

Здравствуйте, Димок!
Я так понимаю, что www.narod.ru и www.boom.ru тебя не устраивают... Попробуй www.hut.ru. Дают 30 метров. Только внимательно читай лицензию (там нельзя кучу всего хранить, в том числе mp3). Если хватит 10 метров есть www.beep.ru. Еще неплохой сервак www.null.ru, только уж оченно нестабильный. Поищи по яндексу!!!! там мне попадлась статейка с сылками на хостинги.


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

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

Вопрос №1029

Привет!
У меня задание по Паскаль-Ассемблер:
в граф.режиме 320х200 нарисовать окружность(Bios 10h).
А у меня выходит эллипс...
В режиме 640x480 этот код срабатывает.
Но мне-то нужно 320х200!!!

Ответ

Здравствуйте, Ig!
Все дело в том что размеры монитора 4х3 и 640х480 как раз соответсвует этой пропорции, а 320х200- нет, либо кооректируй на эту пропорцию, либо пусть выводит так. Т.е. y=1.6*x в уже вычесленных до этого


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

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

Вопрос №1028

Уважаемые эксперты! Ниже приведён фрагмент программы. Прошу вас объяснить значение строк 05-07 и 16-18. Зарание благодарен!

Ответ

Здравствуйте, Garret!
Это что-то напоминает вирус для com файла. Просто это команда ближнего перехода. Т.е. точка входа в программу. или подмена ее


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

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

Вопрос №1032

Вопрос такой где можно найти описание функций API для ASM.
И второе где можно найти хорошее и полное описание ресурсов желательно с примерами подсоединения к прогрммам на ASM. (если то и другое на русском вообще хорошо).

Ответ

Здравствуйте, Denisov Evgeniy!
Зайди сюда http://src.fitkursk.ru/ и там усё есть в разделе лит-ры


Отправил эксперт: Digger (www.digger-mib.chat.ru/freeware.htm - Мой софт :))
Эксперт отправил ответов (всего): 7

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

Вопрос №1032

Вопрос такой где можно найти описание функций API для ASM.
И второе где можно найти хорошее и полное описание ресурсов желательно с примерами подсоединения к прогрммам на ASM. (если то и другое на русском вообще хорошо).

Ответ

Здравствуйте, Denisov Evgeniy!
1. В Бораландовском С++ для виндов, если при установке выберешь элемент Help, то в папке с С++ будет валяться Win32.hlp - то что тебе нада. Про русский можешь не мечтать.
2. Что такое подсоединение к программам на АСМ? Если ты имеешь ввиду связь асма с языками высокого уровня, то все это описано, да хотя бы в том же Зубкове... на русском.


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

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

Вопрос №1033

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


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


Ответ

Здравствуйте, ГенийЕв!
Ну куда тебя направить? не будешь же ты, самом деле, логить время каждую секунду... Напиши прогу, которая, допустим, при включении компа и загрузке запоминала дату и время в файл - вот это реально... Насчет выключения - тут немного сложнее, но если пораскинуть, то никаких проблем.


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

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

Вопрос №1027

У меня чето с Win98se,иногда на кнопке пуск пропадает надпись,становится белой или какие то полоски,квадратики цветные.Как то неделю назад нашел у себя троянчика (пишу на русском,на англ. не помню если что извените, примерно так "Сикер-базед") что он делает может из за него такое гавно начилось.И еще,может кто нибуть знает где можно найти руссификацию программы Ashampoo Uninstaller 2000 v.2.0 если она есть.(ответ "в интернете"-не надо,он бооольшой а я один).Спасибо.Заканчиваю,а то помойму я наглеть начал.Хотя с каждым вопросом еще больше вопросов.Все.

Ответ

Здравствуйте, Max!
Из за трояна ето врядли т.к трояны пишут так чтоб его небыло видно
(хотя если родитель трояна криворукий то.....)
Могет у тя какой нить драйвер глючит..попробуй переставаить драйвер
видюхи...
руссификатор ищи в инете :-)))))))))))
а де ысчо взять у меня например его нету...


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

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

Вопрос №1026

Здравствуйте эксперты.
Хочу спросить,можно ли в Windows XP создать загрузочный диск,если можно то как.И в Windows2000.Спасибо.

Ответ

Здравствуйте, Max!
так же как и вдругих форточках....


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

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

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

Рассылки 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

В избранное