Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 628
от 29.08.2003, 23:00
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 4043 Отправлено ответов: 12010 Активность: 297.0 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
_vt Статус: Профессиональный Общий рейтинг: 121.21 [Подробней >>] |
dimka Статус: Опытный Общий рейтинг: 139.64 Телефон: (231)-4-43-85 [Подробней >>] |
Bob Johnson Статус: Профессиональный Общий рейтинг: 152.31 URL: Программирование [Подробней >>] |
Greys Статус: Доверительный Общий рейтинг: 125.75 [Подробней >>] |
Lynx Статус: Профессиональный Общий рейтинг: 117.14 Телефон: (8442) 750522 [Подробней >>] |
Евгений Иванов Статус: Профессиональный Общий рейтинг: 149.13 URL: Super Assembler Software Телефон: НСС +7 831 3107039 [Подробней >>] |
Алексей Статус: Доверительный Общий рейтинг: 103.92 [Подробней >>] |
[L2]Max Статус: Опытный Общий рейтинг: 126.72 Телефон: (0562) 323428 [Подробней >>] |
ASMодей Статус: Профессиональный Общий рейтинг: 113.14 [Подробней >>] |
Илья Статус: Опытный Общий рейтинг: 102.77 [Подробней >>] |
Fantomas Статус: Доверительный Общий рейтинг: 121.62 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 3998. Всем привет!!!!! Уважаемые эксперты, я написал на асме текстовый редактор с подсветкой синтаксиса и ... (ответов: 4)
Вопрос № 3999. cseg segment assume cs:cseg,ds:cseg,es:cseg,ss:cseg org 100h begin: mov ah,35h ... (ответов: 7)
Вопрос № 4000. здравствуйте. практикуюсь в ассемблере совсем недавно и ещё не освоился с масмовским компилером. не ... (ответов: 5)
Вопрос № 4001. Уважаемые эксперты! Помогите разобраться с SoftIce. Устанавливаю все как доктор прописал, а когда ... (ответов: 4)
Вопрос № 4002. Уважаемые эксперты, у меня такой вопрос: Как в окне класса "EDIT" убрать(сделать невидимым... (ответов: 4)
Вопрос № 4003. Всем привет!!! Как строку досовского формата (например C:PROGRA~1ANDROI~1.EXE) преобразовать в норма... (ответов: 7)
Вопросов: 6, ответов: 31
Вопрос № 3998 |
Всем привет!!!!!
Уважаемые эксперты, я написал на асме текстовый редактор с подсветкой синтаксиса и предлагаю вам его протестировать. Прошу указать все ошибки и слабые на ваш взгляд места. Пока что не берите во внимание проблемы с кириллицей.
Заранее благодарен!!!!
Текстовый редактор: http://asm.fatal.ru/download/txtmania1.0.zip
Вопрос отправлен: 25.08.2003, 01:58
Отправитель: Andrey (AndreyTorba@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает _vt
Добрый день, Andrey!
> я написал на асме текстовый редактор с подсветкой синтаксиса
О, моя любимая тема! Ну, сейчас разнесу! :-)
Итак, просмотрев бегло твой Редактор, перечисляю:
1) Достоинства:
- наверное, единственное - хороший интерфейс, нестандартные и очень приличные иконки (если действительно твои собственные - очень хорошо!)
2) Недостатки:
- серьезный глюк с подсветкой - какие-то накладки происходят цветов один на другой(в некоторых случаях)... Жирный минус в твою сторону... :-))
- по умолчанию как-то не очень сгруппированы ключевые слова по выделению цветом,
объединение некоторых в одну группу вообще вызывает недоумение...
- интересное явление при встаке даты - 25.08.20 - что бы это значило?? Наверное, зашифровано... :-)
Если необходима более детальная оценка и помощь - пиши. Меня очень интересует эта тема...
---===*** Updated E-Man 1.5 - it's cool!***===---
Ответ отправлен: 25.08.2003, 10:35
Отправитель: _vt
Отвечает dimka
Здравствуйте, Andrey!
Nu poprobuem!!!!
Ответ отправлен: 26.08.2003, 11:19
Отправитель: dimka
Отвечает Bob Johnson
Здравствуйте, Andrey!
А что исходники не выложил?
Кстати, как писал - на основе Rich Edit? Если да, то это плохо, здесь лучше что-то свое придумать.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 26.08.2003, 17:48
Отправитель: Bob Johnson
Отвечает Greys
Доброе время суток, Andrey!
Когда-то я написал похожий редактор, но с поддержкой командной строки,советую добавить командную строку в твой редактор, тогда он будет более универсальный (мне это позволяет сократить время на написание прог на ассемблере в самом редакторе)
С уважением, GREYS!
Ответ отправлен: 28.08.2003, 16:38
Отправитель: Greys
Вопрос № 3999 |
cseg segment
assume cs:cseg,ds:cseg,es:cseg,ss:cseg
org 100h
begin:
mov ah,35h ;ПОЛУЧАЕМ ВЕКТОР
mov al,21h ;21Н ПРЕРЫВАНИЯ
int 21h
mov word ptr vect,bx ;СОХРАНЯЕМ ЕГО.
mov word ptr vect+2,es
push ds ;ТУТ Я ВРОДЕ КАК ПЫТАЮСЬ
push dx ;ВЫЗВАТЬ 21Н ПРЕРЫВАНИЕ НЕ
push cs ;НА ПРЯМУЮ, А ПО ЕГО ВЕКТОРУ
pop ds ;КАК В РЕЗИДЕНТЕ..НО ,ЧТО ТО
mov dx,offset m1 ;НИЧЕГО НА ЭКРАНЕ НЕ ВИЖУ..
pushf
call dword ptr cs:[vect]
pop dx
pop ds
int 20h
m1 db 'hello!!!$'
vect dd ?
cseg ends
end begin
-------------------------------------------------
ПРИВЕТСТВИЕ, ГОСПОДА!!!!!!!! СПАСИБО ОГРОМНОЕ ЗА СКОРЫЙ ОТВЕТ!!!!! ТАМ ВСЁ КОРОТКО И ЯСНО!!!
Я ПРОДОЛЖАЮ ГЛУМИТЬСЯ НАД РЕЗИДЕНТОМ, РВУ ЕГО НА ЧАСТИ!!
ВОТ ОДНА ИЗ ЭТИХ ЧАСТЕЙ.. ОНА НЕ РАБОТАЕТ.. ПОЧЕМУ?
ЗАРАНИЕ БЛАГОДАРЕН!! (** КЛАСНАЯ У ВАС РАБОТА!! МНЕ Б ТАКУЮ!!! **)
Вопрос отправлен: 25.08.2003, 01:59
Отправитель: Женя (25-49-32@e-mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает _vt
Доброе время суток, Женя!
> НИЧЕГО НА ЭКРАНЕ НЕ ВИЖУ.
А ты ничего не должен увидеть: хочешь вывести строку, а не указываешь функцию вывода (mov ah,9 перед вызовом).
По твоему предыдущему вопросу я понимаю так, ты читаешь выпуски рассылки по одному, и пытаешься разобраться. Но ведь ошибки и сильно непонятные места объясняются в следующем выпуске!!! Для начала попробуй обратиться к следующему номеру, если уж сам не понял...
> (** КЛАСНАЯ У ВАС РАБОТА!! МНЕ Б ТАКУЮ!!! **)
Во-первых, это не работа - за это не платят...
Во-вторых, это учеба - разбираясь в чужих ошибках, уже не допустишь таких сам...
---===*** Updated E-Man 1.5 - it's cool!***===---
Ответ отправлен: 25.08.2003, 10:35
Отправитель: _vt
Отвечает Lynx
Здравствуйте, Женя!
Попробуй читать и устанавливать вектора прерываний не через int 21h, а прямым чтением//записью по нужным адресам. Я так всё время из положения выхожу.
Адреса для int 21h:
0000:0084 - смещение обработчика
0000:0086 - сегмент обработчика.
Ответ отправлен: 27.08.2003, 10:42
Отправитель: Lynx
Отвечает Евгений Иванов
Здравствуйте, Женя!
А ты забыл в AH номер фуеции занести.
По моему, 9.
Ответ отправлен: 25.08.2003, 11:26
Отправитель: Евгений Иванов
Отвечает Алексей
Доброе время суток, Женя!
Ты забыл записать в ah номер ф-ции вывода на экран, т.е перед mov dx,ofsset m1 поставь mov ah,9. Исправленный код в приложении.
>ЗАРАНИЕ БЛАГОДАРЕН!! (** КЛАСНАЯ У ВАС РАБОТА!! МНЕ Б ТАКУЮ!!! **)
А кто тебе мешает? Бери, да регистрируйся экспертом!
Приложение:
Ответ отправлен: 25.08.2003, 08:01
Отправитель: Алексей
Отвечает Bob Johnson
Добрый день, Женя!
> РВУ ЕГО НА ЧАСТИ!!
Да это он тебя на части рвет...
> ПОЧЕМУ?
Ты забыл занести номер функции (9) в ah перед вызовом...
Кстати, непонятны все твои действия push cs pop ds - в com файле все сегменты изначально равны!
В приложении твоя программа после переделки...
> ** КЛАСНАЯ У ВАС РАБОТА!! МНЕ Б ТАКУЮ!!! **
А кто тебе сказал, что это - работа??? У нас тут практически добровольный клуб...
* EMan1.5: ---===*** The game we play ***===---
Приложение:
Ответ отправлен: 25.08.2003, 17:13
Отправитель: Bob Johnson
Отвечает dimka
Доброе время суток, Женя!
Ne ispolizuesh :
mov ah,9
...
int 21h
Ответ отправлен: 26.08.2003, 11:26
Отправитель: dimka
Отвечает Greys
Доброе время суток, Женя!
Все очень просто перед вызовом "call dword ptr cs:[vect]" добавь команду "mov ah,09h", т.е. какую функцию прерывания ты вызываешь и тогда выскочит ожидаемая тобой строка: 'hello!!!'
С уважением,Greys!
Ответ отправлен: 28.08.2003, 18:41
Отправитель: Greys
Вопрос № 4000 |
здравствуйте.
практикуюсь в ассемблере совсем недавно и ещё не освоился с масмовским компилером. не получается у меня использовать include файлы. я имею ввиду файлы собственного производства, а не те что идут в комплекте с масм32. всё началось с того что мне надоело для каждой программы писать одни и те же процедурки типа обмера текстовой строки или перевода из hex в dec. и я решил написать универсальные процедуры поместив их в отдельный файл чтобы глаза не мозолили. и всё бы хорошо, но компилятор ругается страшными словами, я уж не знаю чего и придумать. могли бы вы точнее описать метод подключения таких файлов ? как при этом в включаемых процедурах определять локальные метки и локальные секции данных (и неинициализированных) ? не знаю как это сделать - в включаемой процедуре есть блок данных 64к, хотелось бы чтобы имена в нем не пересекались с именами из головного файла. пример не привожу - громоздкий слишком. может кто нибудь подкинет шаблончик включаемого файла и головоного ? заранее спасибо.
Вопрос отправлен: 25.08.2003, 18:11
Отправитель: ukms[z] (ukms@km.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает [L2]Max
Здравствуйте, ukms[z]!
Что ты подразумеваешь под головным файлом, ты думаешь что в ассемблере как в Си есть прототипы ??? Подключаемый файл(исходный) будет полностью продублирован в той части куда его и включили
Ответ отправлен: 26.08.2003, 04:37
Отправитель: [L2]Max
Отвечает ASMодей
Приветствую Вас, ukms[z]!
include-файл - это точно такой же *.asm файл, который будет просто подставляться в программу на место директивы include. Так что простой способ написания *.inc файлов такой: набираешь в основном тексте программы все что нужно, а потом вырезаешь нужные куски в inc-файлы.
Ответ отправлен: 26.08.2003, 07:06
Отправитель: ASMодей
Отвечает Евгений Иванов
Доброе время суток, ukms[z]!
Местные переменные объявляются с помощью двух символов AT:
@@local_perem
Ответ отправлен: 26.08.2003, 13:15
Отправитель: Евгений Иванов
Отвечает Bob Johnson
Доброе время суток, ukms[z]!
> типа обмера текстовой строки
В kernel32.dll есть функция lstrlen.
Вообще же самая распространенная ошибка - это то, что в подключаемом файле в конце пишут end. Этого делать нельзя - потому что этот файл компилятор как бы вставляет в основной в то место, где он нашел include. А end должен быть только один в конце программы.
Локальные переменные в tasm обозначаются как @@имя. При этом нужно указать компилятору директиву locals. Как это в масме - точно не уверен, но есть вероятность, что так же, потому как тасм по умолчанию работает в режиме совместимости с масм.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 26.08.2003, 15:49
Отправитель: Bob Johnson
Отвечает Greys
Приветствую Вас, ukms[z]!
Вот шаблон головной процедуры:
.286
CSEG segment
assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG
org 100h
Start:
jmp Begin
include key.asm
Begin:
call pause
CSEG ends
end Start
шаблон подключаемого файла:
;*********key.asm************
Pause proc
mov ah,10h
int 16h
ret
Pause endp
Ответ отправлен: 28.08.2003, 03:18
Отправитель: Greys
Вопрос № 4001 |
Уважаемые эксперты!
Помогите разобраться с SoftIce.
Устанавливаю все как доктор прописал, а когда запускаю Symbol Loader то
появляется строка:SoftICE is not active. Symbols cannot be loaded.
Заранее огромное спасибо :).
Ramala.
Вопрос отправлен: 25.08.2003, 19:47
Отправитель: Ramala
[Следующий вопрос >>] [Список вопросов]
Отвечает Илья
Добрый день, Ramala!
Ты скорее всего работаешь под 2000XP, а она позволяет грузить или не грузить Sice, причём различными способами.
По дефолту (IMHO) стоит manual(самостоятельная) загрузка. Для запуска нужно запустить батник ntice.bat, содержание которого:
net start ntice
Можно настроить и на автоматическую загрузку утилиткой Settings в параметрах Startup.
Ответ отправлен: 25.08.2003, 21:18
Отправитель: Илья
Отвечает _vt
Добрый день, Ramala!
Если под 9x - не запущен WINICE.EXE (должен запускаться из autoexec.bat).
Если под NT - не запущен сервайс NTICE.SYS (по умолчанию, SoftIce в NT системах устанавливается в режиме Manual, т.е. тебе надо его самому запускать, например, даже в меню "пуск" в группе ярлыков софтайса есть ярлык "Start SoftIce" )
---===*** Updated E-Man 1.5 - it's cool!***===---
Ответ отправлен: 25.08.2003, 22:20
Отправитель: _vt
Отвечает Fantomas
Доброе время суток, Ramala!
SoftICE is not active - зайди в опции и
выстави чтоб он грузился с Windows.
Symbols cannot be loaded - значит нет отладочной информации в этом файле, если я не ошибаюсь.
Просто у меня та же история... :-)
И не забудь в настройках добавить некоторые Dll библиотеки !
Ответ отправлен: 26.08.2003, 01:20
Отправитель: Fantomas
Отвечает dimka
Приветствую Вас, Ramala!
V Win Xp,2000 ne rabotaet bez SP3!!!
Ответ отправлен: 26.08.2003, 11:33
Отправитель: dimka
Вопрос № 4002 |
Уважаемые эксперты, у меня такой вопрос:
Как в окне класса "EDIT" убрать(сделать невидимым) мигающий курсор?
С помощью WinAPI я создал окно и хочу сделать на нем область для отображения информации(с полосами прокрутки),
класс "STATIC" не подходит, попробовал "EDIT", сделать его ReadOnly получилось, а вот курсор убрать не могу.
В MSDN копался, не нашел.
Вопрос отправлен: 25.08.2003, 21:01
Отправитель: softsnap (softsnap@softhome.net)
[Следующий вопрос >>] [Список вопросов]
Отвечает _vt
Доброе время суток, softsnap!
По крайней мере один из способов: функция HideCaret (HWND hEditWnd).
---===*** Updated E-Man 1.5 - it's cool!***===---
Ответ отправлен: 25.08.2003, 22:21
Отправитель: _vt
Отвечает Fantomas
Приветствую Вас, softsnap!
Попробуй заDisableли, только тогда окошко станет
серым !!!
Или тупо отслеживай, чтоб на него не попал фокус,
а если попадает переводи его на другой объект,
например на тот же ScrollBar.
Ответ отправлен: 26.08.2003, 01:20
Отправитель: Fantomas
Отвечает [L2]Max
Добрый день, softsnap!
SetCursor(NULL)
Ответ отправлен: 26.08.2003, 04:53
Отправитель: [L2]Max
Отвечает Евгений Иванов
Здравствуйте, softsnap!
Попробуй SetCaret.
Ответ отправлен: 26.08.2003, 13:18
Отправитель: Евгений Иванов
Вопрос № 4003 |
Всем привет!!!
Как строку досовского формата (например C:PROGRA~1ANDROI~1.EXE) преобразовать в нормальную строку (C:Program FilesAndroid.exe)
Заранее благодарен!!!!!
Вопрос отправлен: 25.08.2003, 21:19
Отправитель: Andrey (AndreyTorba@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Lynx
Добрый день, Andrey!
Никак!!! А тебе зачем? Если прога работает с виндовским форматом строки, то с досовским точно должна работать. Или я ошибаюсь? :)
Ответ отправлен: 27.08.2003, 10:42
Отправитель: Lynx
Отвечает _vt
Доброе время суток, Andrey!
Вроде как существуют API-функции
GetShortPathName - это из длинных в короткие
и
DWORD GetFullPathName(
LPCTSTR lpFileName, // address of name of file to find path for
DWORD nBufferLength, // size, in characters, of path buffer
LPTSTR lpBuffer, // address of path buffer
LPTSTR *lpFilePart // address of filename in path
); - а эта - из всяких в длинные.
---===*** Updated E-Man 1.5 - it's cool!***===---
Ответ отправлен: 25.08.2003, 22:21
Отправитель: _vt
Отвечает Fantomas
Приветствую Вас, Andrey!
Если ты, например, назвал каталог MyLongFolder под
виндой, то в Dos его имя будет таким: MyLong~1,
и винда помнит его окончание. Но если ты в Dos
что нибудь с ним сделаешь (скопируешь, переименуешь ...),
тогда окончание теряется навсегда. И тогда, брат,
никак ты ее уже не преобразуешь !
Ответ отправлен: 26.08.2003, 01:21
Отправитель: Fantomas
Отвечает ASMодей
Здравствуйте, Andrey!
Посмотри функцию API GetLongPathName.
Ответ отправлен: 26.08.2003, 07:11
Отправитель: ASMодей
Отвечает dimka
Здравствуйте, Andrey!
Esti programma doslnf.com(neobeazatelino ona)
Zaidi na dospage.by.ru...
Ответ отправлен: 26.08.2003, 11:36
Отправитель: dimka
Отвечает Евгений Иванов
Приветствую Вас, Andrey!
Это не строки надо преобразовывать!
А это проблема длинных имён.
Можно получить из короткого имени (или как бы на основе короткого имени)
длинное и наоборот.
Смотри
GetShortPathName
и
GetFullPathName.
Ответ отправлен: 26.08.2003, 13:24
Отправитель: Евгений Иванов
Отвечает Bob Johnson
Здравствуйте, Andrey!
GetLongPathName и GetFullPathName.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 26.08.2003, 15:44
Отправитель: Bob Johnson
Форма отправки вопроса |
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
(C) 2002-2003 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (37) C / C++ (30) Perl (4) Builder / Delphi (18) Pascal (26) Basic / VBA (8) Java / JavaScript (8) PHP (10) Криптография (9) WinAPI (16) |
Пользователю Windows 95/98/Me (48) Windows NT/2000/XP (63) "Железо" (42) Поиск информации (23) |
Администратору Windows NT/2000/XP (31) Linux / Unix (12) |
Юристу Гражданское право (11) Семейное право (7) Трудовое право (7) КоАП (6) |
Отправить вопрос всем экспертам выбранной рассылки.
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||