Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 474
от 22.01.2003, 06:10
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 2464 Отправлено ответов: 7452 Активность: 302.4 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Eugene Статус: Опытный Общий рейтинг: 108.82 URL: мощный файловый архив [Подробней >>] |
Broken Sword Статус: Профессиональный Общий рейтинг: 126.9 URL: моя рассылка по Protected Mode [Подробней >>] |
Igoryk Статус: Опытный Общий рейтинг: 146.84 URL: IgorykSoft [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 117.66 [Подробней >>] |
Maverick Статус: Профессиональный Общий рейтинг: 139.86 URL: Задачи по ассемблеру Телефон: 89039415024 (BeeLine GSM) [Подробней >>] |
AlX1024 Статус: Начальный Общий рейтинг: 113.23 [Подробней >>] |
Bob Johnson Статус: Профессиональный Общий рейтинг: 152.82 URL: Программирование [Подробней >>] |
ASMодей Статус: Профессиональный Общий рейтинг: 117.83 [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 146.46 [Подробней >>] |
keleb-glin Статус: Опытный Общий рейтинг: 113.4 [Подробней >>] |
LIFO Статус: Профессиональный Общий рейтинг: 119.18 URL: наш сайт Телефон: 8 01710 24758 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 2432. Здравствуйте, эксперты! Пишу вам в первый раз, у меня не вопрос, а скорее просьба. Ассемблер я не из... (ответов: 5)
Вопрос № 2433. Привет всем! У меня вопрос: как найти каталог(и) и как узнать текущую дату? Спасибо... (ответов: 3)
Вопрос № 2434. Доброго дня всем!!! Какие есть (который знаете) самые маленькие и эффективные вирусы? Е... (ответов: 3)
Вопрос № 2435. Здравствуйте, эксперты и подписчики! ASM к своему стыду изучал я давно и не очень хорошо, вот и проб... (ответов: 6)
Вопрос № 2436. Многоуважаемые эксперты, помогите, пожалуйста, с захватом содержимого экрана, наподобие PrintScreen... (ответов: 1)
Вопрос № 2437. Здравствуйте! У меня два вопроса по работе с файлами: 1.Вот пишу CSEG segment assume cs:CSEG, ds:C... (ответов: 3)
Вопрос № 2438. А какие процессоры выбирают ассемблерщики Intel или AMD? Всю жизнь сижу на Intel'e, а щас вот апгрей... (ответов: 7)
Вопросов: 7, ответов: 28
Вопрос № 2432 |
Здравствуйте, эксперты!
Пишу вам в первый раз, у меня не вопрос, а скорее просьба.
Ассемблер я не изучала, но в универе на сессию дали задание написать прогу на нем. Не знаю, что делать, до сессии осталась неделя, а задание не готово...
Задание легкое: составить программу вывода на экран нескольких вертикальных линий синего цвета с произвольными координатами, используя один сегмент кода.
Буду очень вам признательна, если вы мне поможете, для меня это важно. Подскажите сайт, на котором можно прочесть информацию по изучению Ассемблера.
Огромное спасибо, буду ждать вашего ответа.
Вопрос отправлен: 17.01.2003, 07:23
Отправитель: Lika
[Следующий вопрос >>] [Список вопросов]
Отвечает Eugene
Доброе время суток, Lika!
Сомневаюсь, что тебе помогут какие-то сайты. Чтобы выучить ассемблер за неделю на том уровне, который нужен тебе, нужна книжка.
Ответ отправлен: 17.01.2003, 09:46
Отправитель: Eugene
Отвечает Broken Sword
Доброе время суток, Lika!
Мишка!!! Ты чтоль? :)
Igoryk, как насчет compo по этим синим полоскам?
; tasm /m 2432.asm
; tlink /3 /x /t 2432.obj
; 2432.com
; 14 bytes
.model tiny
.code
.386
org 100h
@@start:
xchg AX,DI ; DI=0
mov AH,99h ; blue on blue
;int 10h ; uncomment for WinXP
push 0B800h
pop ES ; ES=>video
mov CX,1000 ; 40x25
rep stosd ; fill screen
ret
end @@start
Ответ отправлен: 17.01.2003, 11:38
Отправитель: Broken Sword
Отвечает Igoryk
Здравствуйте, Lika!
Отпиши на почту igoryk@yandex.ru:
1. Сколько вывести линий
2. Как это вертикальные линии с произвольными координатами? (только по оси x произвольные?)?
3. Какое разрешение экрана использовать?
4. По-подробнее напиши задание.
Ответ отправлен: 17.01.2003, 16:46
Отправитель: Igoryk
Отвечает Ayl
Добрый день, Lika!
Ну что делать, что делать... Извечный русский вопрос. Еще можно узнать - а кто, собственно, виноват.
В общем, суть в том, что за неделю изучить ассемблер практически нельзя. Потому что он очень сильно отличается от прочих языков своей идеологией. Но если интересно - можешь посмотреть рассылку Калашникова на Subscribe.ru.
Кстати по заданию. Для какого режима должна быть программа - для текстового или графического? В общем, в приложении см. вариант для графического режима.
Приложение:
Ответ отправлен: 17.01.2003, 17:16
Отправитель: Ayl
Отвечает Maverick
Приветствую Вас, Lika!
www.wasm.ru
Может даже подобный исходник найдешь.
Ответ отправлен: 20.01.2003, 04:42
Отправитель: Maverick
Вопрос № 2433 |
Привет всем!
У меня вопрос: как найти каталог(и) и как узнать текущую дату?
Спасибо
Вопрос отправлен: 17.01.2003, 17:20
Отправитель: Faraon (faraon@hotmail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Igoryk
Приветствую Вас, Faraon!
А в какой ОС? Если в DOS, то используй прерывания (в TechHelpе подробно все описано). Если же в Windows, то используй функции FindFile и GetTime.
Ответ отправлен: 18.01.2003, 21:28
Отправитель: Igoryk
Отвечает AlX1024
Здравствуйте, Faraon!
Время DOS можно получить через 2A int21.
После выполнения получаешь:
AL - день недели (воскресенье - 0)
CX - год
DH - месяц
DL - число
Время из часов - через 4 int1a
AH - 0 и CF=0, если нет ошибки
CH - век (19-20)
CL - год (0-99)
DH - месяц (1-12)
DL - число (1-31)
Все числа - шеснадцатеричные.
Ответ отправлен: 17.01.2003, 21:18
Отправитель: AlX1024
Отвечает Bob Johnson
Доброе время суток, Faraon!
Текущая дата: GetDateFormat
найти каталог - обычным образом: FindFirstFile и FindNextFile
Ответ отправлен: 19.01.2003, 02:54
Отправитель: Bob Johnson
Вопрос № 2434 |
Доброго дня всем!!!
Какие есть (который знаете) самые маленькие и эффективные
вирусы? Если у кого есть, то вышлите на мыло исходники.
За ранее спасибо!
Вопрос отправлен: 17.01.2003, 17:43
Отправитель: Vah (Bigvah@yandex.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Igoryk
Приветствую Вас, Vah!
Могу прислать (хотя возможно у тебя есть) в DrWeb'е в файле типа readme. Приведен текст абсолютно безвредного вируса (около 23 байт).
Ответ отправлен: 18.01.2003, 21:29
Отправитель: Igoryk
Отвечает AlX1024
Добрый день, Vah!
Самый маленький вирус, который я знаю - Tiny.80. Но его исходника у меня нет. Но у меня есть исходник Tiny.132 - но это тоже немного. Но, самый эффективный, на мой взгляд, вирус - это OneHalf. Мало того, что он был сильно распространен в России два-три года назад, так он отлично работает и в DOS, и в Win9x. Это, конечно, если нет резидентного антивируса или прочей гадости. Но многие бутменеджеры, например, System Commander, находят вирус при первой же перезагрузке зараженной машины. И предлагают их удалить. Тот же OneHalf не работает под WinNT. Вообще, у меня есть куча всяких вирусов в исходниках. Надо - замылю. Пиши на alx1024@mail.ru.
Ответ отправлен: 17.01.2003, 20:58
Отправитель: AlX1024
Отвечает Maverick
Добрый день, Vah!
Смотря каких типов.
Вообще самые маленткие-оверврайтеры(overwrite), т.е. перезаписывающие.
Они находят файл и пишут себя поверх него, тем самым уничтажая файл.
Они самые простые.
Ответ отправлен: 20.01.2003, 04:42
Отправитель: Maverick
Вопрос № 2435 |
Здравствуйте, эксперты и подписчики!
ASM к своему стыду изучал я давно и не очень хорошо, вот и проблема теперь. Подскажите, как мне сосчитать сумму цифр (двоичных) числа, находящегося в регистре.
Заранее огромное спасибо.
Вопрос отправлен: 17.01.2003, 21:33
Отправитель: Andrew
[Следующий вопрос >>] [Список вопросов]
Отвечает Broken Sword
Добрый день, Andrew!
подозреваю, что ты имеешь ввиду не регистр процессора, а какого то устройства. вообщем принцип такой:
mov CX,reg_size
@@next_bit:
shr reg,1
stalc
add counter,AL
loop @@next_bit
Ответ отправлен: 18.01.2003, 01:10
Отправитель: Broken Sword
Отвечает ASMодей
Приветствую Вас, Andrew!
Ну например так:
;Предположим, что число находится в DX
sub ax,ax
mov cx,16
l1: rol dx,1
adc ax,0
loop l1
;Теперь в AX - сумма всех двоичных цифр
Ответ отправлен: 18.01.2003, 09:57
Отправитель: ASMодей
Отвечает masquer
Доброе время суток, Andrew!
В дополнение к уже сказанному команду bt можно использовать
Ответ отправлен: 18.01.2003, 13:31
Отправитель: masquer
Отвечает Bob Johnson
Здравствуйте, Andrew!
пусть eax - число.
xor ecx, ecx
@@m1:
shr eax, 1
adc ecx, 0
test eax, eax
jnz @@m1
ecx - число бит
Ответ отправлен: 19.01.2003, 02:55
Отправитель: Bob Johnson
Отвечает Maverick
Здравствуйте, Andrew!
Я так понял сумму 0и1...
Например число находится в аl.
1.Обнуляешь ah, и делаешь сдвиг битов влево на одну поцицию.
2.Приплюсовываешь ah к переменной или другому регистру(результат)
3.loop 1 -8раз
Вобщем примерно так.
Ответ отправлен: 20.01.2003, 04:42
Отправитель: Maverick
Отвечает Ayl
Здравствуйте, Andrew!
Ну, например, вот так:
; AX = число, BX = результат
mov bx, ax
and bx, 1 ; вначале сумма равна младшему биту
mov cx, 15 ; с оставшимися 15-ю выполнить:
l:
rol ax, 1 ; поместить в CF старший бит
adc bx, 0 ; прибавить к bx значение CF
loop l ; повторить 15 раз (кроме младшего бита)
rol ax, 1 ; восстановить как было
Ответ отправлен: 20.01.2003, 11:09
Отправитель: Ayl
Вопрос № 2436 |
Многоуважаемые эксперты, помогите, пожалуйста, с захватом содержимого экрана, наподобие PrintScreen. Я использую API функцию BitBlt c интервалом в 5 секунд, при этом машина ощутимо подтормаживает, может есть какая-нибудь альтернатива?
Вопрос отправлен: 17.01.2003, 21:36
Отправитель: new2 (new2@bk.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Добрый день, new2!
1. Upgrade машины.
2. Если тебе нужно только одно окно - захватывй только его.
3. Наверное, ты каждый раз создаешь в памяти bitmap и потом его удаляешь - не делай этого, копируй в один и тот же.
Ответ отправлен: 19.01.2003, 02:55
Отправитель: Bob Johnson
Вопрос № 2437 |
Здравствуйте!
У меня два вопроса по работе с файлами:
1.Вот пишу
CSEG segment
assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG
org 100h
Start:
mov ax,3d00h
mov dx,offset file ;открываем на чтение
int 21h
mov handle,ax ;сохраняем
mov bx,handle
mov ah,3fh
mov cx,0FFFFh ;читаем полностью??
mov dx,offset buf;в буфер
int 21h
mov bx,handle ;закрываем
mov ah, 3eh
int 21h
mov ah,9 ;выводим
mov dx,offset buf ;прочитанное
int 21h ;на экран
mov ah,4ch
int 21h
file db 'C:1.txt',0
buf db 500 dup (0)
Handle dw ?
CSEG ends
end Start
На экран почему-то выводиться какие-то ероглифы ... хотя вначале пишется текст прочитанного
файла. Как вывести нормально??
2.Как вывести на эран только 4 строку из файла ... типа этого на delphi
var
f:textfile;
i:integer;
s:string;
begin
i:=0;
assignfile(f,'c:1.txt');
reset(f);
while not eof(f) and (i<4) do begin
readln(f,s);
inc(i);
end;
closefile(f);
showmessage(s);
end;
lamachok
lamachok@mail.ru
Вопрос отправлен: 17.01.2003, 23:04
Отправитель: lamachok
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Добрый день, lamachok!
1. Под досом я тебе не помошник, смотри под отладчиком, строка вывода завершаться должна либо 0, либо $, проверяй в этом направлении.
2. Алгоритм такой - ищешь 3-й первод строки 0dh,0ah, макрируешь начало, ищешь следующий перевод строки, маркируешь конец, или длину вычисляешь сразу - все.
Ответ отправлен: 18.01.2003, 13:38
Отправитель: masquer
Отвечает Bob Johnson
Приветствую Вас, lamachok!
1. Тебе нужно в конец считанной из файла информации поставить "$".
после чтения файла поставь:
mov di, offset buffer
add di, ax
mov byte ptr [di], '$'
2. Нужно анализировать файл побайтно и самому найти начало 4 строки и потом ее вывести.
Ответ отправлен: 19.01.2003, 02:56
Отправитель: Bob Johnson
Отвечает Ayl
Добрый день, lamachok!
Вообще-то, тексты программ лучше размещать в приложении, а то очень много места занимают...
1. Функция 9 21-го прерывания выводит строку до символа '$'. Соответственно, тебе после считывания из файла надо добавить в буфер этот символ. Либо сразу же заполнить буфер символами доллара.
Кстати, хочу заметить, что если размер файла у тебя будет больше 500 байт, то у тебя затрется переменная Handle, что приведет к ошибке. Буфер лучше всего размещать последним.
2. В ассемблере нет понятия "текстовый файл". Все файлы рассматриваются просто как последовательность байт. Соответственно, все функции для работы с текстом тебе нужно писать самому.
Строка представляет собой последовательность символов до символа "перевод строки" (код 10). Для DOS'овских файлов за ним еще следует символ "возврат каретки" (код 13). Вот тебе и надо считать файл в буфер и последовательно перебирать его до очередного символа с кодом 10. И считать строки.
Ответ отправлен: 20.01.2003, 11:36
Отправитель: Ayl
Вопрос № 2438 |
А какие процессоры выбирают ассемблерщики Intel или AMD?
Всю жизнь сижу на Intel'e, а щас вот апгрейдиться думаю так у AMD достаточно заманчивые цены, да и производительность у него вроде неплоха но:
Компьютер у меня приемущественно не для игр, хотя иногда и играю. Учусь на программера. Программирую/учусь на Си/Си++ , щас и на асме чего то буду делать. Работаю в MS офисе, с базами данных и. т. д.
По интелу полно литературы.
Все преподы когда говорят о PC процессорах то с оговорокой что они говорят про Intel, а ни про какой нибудь другой.
Большинство PC процессоров в мире intel'овские и вероятно soft производители при производстве softa в первую очередь ориентируются на intel(тестят под ним...)
При работе на Асме процы AMD и Intel одинаковы или нет(если нет то сильно ли они различаются), за исключением всяких MMX, 3DNow!, SSE .
Хорошо ли работает AMD c различными средами Visual C++ и. т. д.?
Вопрос отправлен: 18.01.2003, 03:23
Отправитель: Пахан Вася
[Следующий вопрос >>] [Список вопросов]
Отвечает Igoryk
Приветствую Вас, Пахан Вася!
Едиснтвенное что могу сказать об AMD не очень хорошо отзываются. Intel forever так сказать. Может смотрел программу "Мир компьютера" - у нас повторяют. Так там тестировали AMD и Intel. Абсолютно по всем характеристикам последний был лучше. Но! Кто-то ведь пользуется Duronами b Athlonами. Так что выберать тебе!
Ответ отправлен: 18.01.2003, 21:29
Отправитель: Igoryk
Отвечает keleb-glin
Добрый день, Пахан Вася!
Не думаю, что Интел и АМД сильно различаются, иначе то что работало на АМД не работало бы на Интеле и наоборот.
Ответ отправлен: 18.01.2003, 21:43
Отправитель: keleb-glin
Отвечает Broken Sword
Приветствую Вас, Пахан Вася!
многие когда начинают спорить о Intel VS AMD начинают недовольно вопить, что "все это уже 1000 раз обсуждалось и ничего нового никто не скажет", однако я смотрю на все это с точки зрения истории ("нет матери истории важнее...")
Первый в мире серийный микропроцессор выпустила компания Intel в 1974 г. Ну и что? Первый автомобиль в мире, сошедший с конвеера - Ford, это ж не значит что он самый лучший и более престижный, чем ламборгини, которого тогда еще в помини не было. Значит, дело не в том, кто первый. Смотрим дальше. Первый сопроцессор придумала как раз AMD (в 1979 году), назывался он AMD 9511 (это позже его стали встраивать в кристалл процессора). Кстати, если кто-то считает, что AMD с утра до вечера только и занимается тем, что ворует у Интела "секреты производства" (я так и считал до недавнего времени) тот глубоко заблуждается - клоны x86 у AMD - одна из самых перспективных ветвей, не более того. Помимо x86 они ведут и кучи других разработок (как впрочем и Intel...).
AMD немало вещей в мире микропроцессоров "придумала самая первая", опередив даже SPARC на ниве RISK процессоров.
IBM выбрала (непонятно правда из каких соображений) Intel, этим сделав ей имя во всем мире. AMD (как и десятки других компаний выпускающих процессоры) в связи с этим ушли в тень и вынуждены были бороться за свой кусок пирога путем удешевления своих творений и, следовательно, мифическими попреками на "нестабильность" (это психология человека - если что то дешевле, значит оно хуже, это не всегда так)
Вообщем, чисто подсознательно, если положить рядом Intel и AMD - рука потянеться к Intel. Наверно потому, что то, на чем мы щас все сидим (клоны x86) - были ПРИДУМАНЫ И РАЗРАБОТАНЫ корпорацией INTEL. AMD завидя перспективы x86 (который раздул IBM) тоже взялся за это дело, хотя нигде в мире вы не найдете информации про то, КАК СОВЕРШЕННО РАЗНЫЕ ДВЕ КОМПАНИИ (INTEL и AMD) выпустили АБСОЛЮТНО одинаковый по архитектуре процессор? Не может быть, что бы кто то у кого то не спер (или купил) чертежи и т.п. схемы...
Очевидно, что AMD к x86 первоначально не имело никакого отношения, а потом просто купило у Intel все необходимые документы...
Это все к чему? А просто так, это интересно знать. А вообще всему виной IBM - если бы для первого настольного PC они бы выбрали не Intel, то не факт что ни о каких AMD и Intel вообще бы никто ничего не знал.
И еще - то что Intel более стабильны, а Athlon-ы быстрее нагреваются - это ерунда. Пока на первом месте фактор цены - AMD будет впереди
p.s. кстати, из всеобщих заблуждений, все знают, что MMX - это MultiMedia eXtension (мультимедийное расширение), однако сама Intel позже расшифровала это как Matrix Math eXtension (короче, расширение для работы с матрицами)
Ответ отправлен: 18.01.2003, 20:24
Отправитель: Broken Sword
Отвечает LIFO
Приветствую Вас, Пахан Вася!
Да ты все равно разницы не увидишь.
(Для программирования на C++)
Там есть 3dNow! вместо sse2, а так в принципе разницы нет.
Ответ отправлен: 18.01.2003, 23:04
Отправитель: LIFO
Отвечает ASMодей
Приветствую Вас, Пахан Вася!
Если за исключением всяких MMX, 3DNow! и SSE, то для программ
эти процессоры не отличаются ничем. У меня стоял и интеловский
Pentium и AMD Athlon - никакой разницы я не заметил и Visual C++
работал нормально.
Ответ отправлен: 18.01.2003, 09:57
Отправитель: ASMодей
Отвечает masquer
Здравствуйте, Пахан Вася!
Все нормально работет. Отличия - на атлонах есть 3dnow!, но нет sse2.
Ответ отправлен: 18.01.2003, 13:45
Отправитель: masquer
Отвечает Bob Johnson
Приветствую Вас, Пахан Вася!
Intel - это гарантировано надежный и работающий проц + возможность разгона (если тебе это интересно). Intel устанавливает стандарты на chipset, agp и многое другое + intel сам же делает chipset под свои процы. Но за это intel дороже.
AMD - это как лотерея. Можешь получить нормально работающую систему, можешь нет. У меня есть знакомые, которые тащатся от AMD - типа это руль, у них дома AMD и все в порядке. С другой стороны - есть знакомые, у которых был и глючил AMD или есть и глючит AMD. Один парень взял себе атлон ХР и сказал, что он может заглючить даже на стандартной частоте. Ни о каком разгоне думать вообще не приходится. Зато цена ниже.
В общем у меня Intel и я за Intel, т.к. для работы лучше он. AMD - это для игровых залов, где если и повиснет компьютер, то ...
Ответ отправлен: 19.01.2003, 02:56
Отправитель: Bob Johnson
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
© 2002 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (38) C / C++ (30) Perl (5) Delphi (18) Pascal (22) Basic / VBA (12) Java / JavaScript (8) PHP (6) MySQL / MSSQL (5) |
Пользователю Windows 95/98/Me (38) Windows NT/2000/XP (30) "Железо" (35) Поиск информации (20) |
Администратору Windows NT/2000/XP (11) Linux / Unix (13) |
Юристу Гражданское право (11) Семейное право (7) Трудовое право (6) КоАП (4) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||