При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Ассемблер? Это просто! Учимся программировать (FAQ)
Выпуск N 013 |
Вопросы, которые поступили от подписчиков рассылки
"Ассемблер? Это просто! Учимся программировать"
Дата выхода: 2001-06-04
Вопрос №3
Здавствуйте уважаемые эксперты, есть вопросик по поводу исправления одной программки. Она занимается форматированием текста (после знаков препинания пробел, новый абзац с краной строки, если после точки стоит строчная буква она меняется на заглавную. Приэтом она должна работать через буфер). Как сделать чтобы она форматировала файл размером больше, чем 16Кб, т.е. забить сегмент памяти, а потом запустить, поцесс дальнейшей обработки в цикл с последующей записью в файл. Желательно чтобы эта прога обрабатывала файлы до 2Гб. Исходник прилагается. Заранее благодарен.
Олег
Ответ
Ну вообще здесь все просто.
Читаешь первые 32к
Обрабатываешь, записываешь
Читаешь дальше 32к или сколько там у тебя в буфере? :)
Обрабатываешь, записываешь.
И так, пока файл не кончится.
Исходник нужен?
Вопрос №19
Здравствуйте Уважаемые Эксперты.
У меня возник вопрос по которому я ни где не могу найти информацию.
При програмировании SVGA видеорежимов в режиме реального адреса используется память 0a000h:0000h при чем размер ее ограничен 0ffffh байтами и если установить например режим 114h (800x600x64k color) то обьем видеопамяти требующийся для отбражения изображения составляет примерно 1 Мегабайт и в реальном режиме процессора приходится менять банки видеопамяти чтобы по частям отбражать весь Мегабайт данных.
В защищенном режиме (или в нереальном режиме) можно использовать всю оперативную память.Но как запрограммировать видеоадаптер чтобы перенести видеопамять с 0a000h:0000h на совершенно другой адрес и переключить его в режим работы LFB (Linear Frame Buffer) чтобы весь Мегабайт изображения лежал на непрерывном куске памяти?
Заранее благодарен.
Ответ
Эта возможность появилась только в VBE 2.0
И информацию о нахождении линейного видеобуффера можно найти в информации по конкретному режиму.
Вопрос №25
Здравствуйте эксперты!
Как перевести текстовый файл WINDOWS в текстовик DOS?
С уважением, SKSoft.
Ответ
Есть несколько способов:
1). Выделите текст, нажмите Ctrl+Insert, затем в FAR или DN нажмите Shift+F4, введите имя файла, нажмите Shift+Insert, затем F2.
2). Выделите текст, вставте (Ctrl+C) в WORD, сохраните как Текст DOS.
Вопрос №25
Здравствуйте эксперты!
Как перевести текстовый файл WINDOWS в текстовик DOS?
С уважением, SKSoft.
Ответ
Здравствуйте, SKSoft!
Я для этой цели использую файловую оболочку Far, которая может работать и переводить из кодировок DOS в Windows и наоборот.
Вопрос №24
Почему Windows ME не хочет работать с винтом Quantum на 210Mb, хотя Windows 2000 Pro видит его и не выдаёт никаких ошибок. Как устранить эту несовместимость?
Ответ
Hi,_Владимир. Windows ME использует_FAT-32,_а твой_Windows_2000,
по всей видимости,_отформатировал_диск_в_NTFS(NTFS5)
Для дисков_более_4,2Г_Windows_2000_выбирает_автоматически_FAT-32.
Существуют программы,_позволяющие_читать(и писать)_NTFS_из_FAT.
Попробуй_посмотреть_www.sysinternals.com(NTFSDOS)
Если есть ещё_вопросы,_пиши_Tschabanow@ewetel.net
Bye, Oleg
Вопрос №27
Уважаемые эксперты!
Вопрос не совсем по теме ассемблера, но хотелось одну книжку
по ассемблеру распечатать на бумагу, а то не очень удобно
читать с экрана.
Пытался напечатать на принтере игольчатом, старом очень
Star LC24, текст с кириллицей из файла в ДОСе,не получается, вылазит какая-то ерунда.Т.е в ДОСе принтер
не печатает кириллицу, в Виндовс печатает без проблем,
но эти текстовые файлы в Виндовс открываются не правильно, на экране непонятный набор символов, пытался разные
шрифты- то же самое.
Имею Win98SE Rus, и WIN2000 Eng.
Спасибо.
Ответ
Открываешь этот файл WORDом (текст ДОС), затем сохраняешь как текст Виндовс. Из того же Ворда можно отпечатать документ. Существуют специальные программы, я использую Штирлиц(Взять можно на www.redcom.ru).
Вопрос №28
Увожаемые эксперты!!!
Я хотел бы уточнить для себя такие понятия как кэш и шина,
ясли я хоть как то представляю работу кэша, то о шине имею только поверхностное представление.
Ответте на вопрос что такое кэш и шиа (если можно по подробнее)!!!
За ранее благодарен.........Александр!
Ответ
Про шину что писать то? в зависимости от разрядности процессора бывает разной ширины... 4, 8, 16, 32, 64, 128 бит...
Служит для общения между процессором, памятью, контроллерами внешних устройствами...
Вот КЭШ - тут похитрее и для программиста гораздо более значимо. :)
Есть два КЭША. КЭШ память бывает внутренняя и внешняя... внутренняя сравнительно мала (8К для 486, 32К для Пентиума...), внешняя обычно больше, до нескольких мегабайт. КЭШ память обладает большей скоростью, нежели обыкновенные модули памяти, и служит для промежуточного хранения программных кодов и данных. Внешней КЭШ памяти может не быть, внутренняя присутствует всегда и непосредственно связана с устройством предвыборки процессора. Ну что еще написать? Метки переходов лучше выравнивать на 16 байт, так как это число - градация КЭШ памяти, ну и много всяких тонкостей оптимизации с этим связано. :))
Вопрос №21
Уважаемые эксперты!
Прочитал вопрос за номером 12, ну и ещё пару книжек....
includelib import32.lib
MB_ICONINFORMATION equ 40h
extrn ExitProcess:proc
extrn MessageBoxA:proc
MessageBox equ MessageBoxA
с приведенным фрагментом всё ясно, но, возникает вопрос общего плана: MessageBox - это функция из API. Как под ассемблером можно работать с API? Вопрос вызван следующей причиной - я точно знаю, что API в DOS основано на прерываниях. А как вызвать APIшную функцию в защищеном режиме? Что содержится в библиотечных файлах (import32.lib)?
Ведь в конечном итоге, некий кусок кода (например функция MessageBox) будет прилинкована к нашей программе. Что у неё внутри? Всё тот же вызов прерывания? Обращение к вентилю вызова? Что то ещё?
И главное, что почитать по этому поводу?
Ответ
Работа с функциями Windows API на асме очень проста. В проге, если ты ее дизасембилруеш, то увидишь что при вызове будет джамп на вентиль входа. А в код твоей проги помещается стандартное смещение, по которому будет вызываться данная функция. По крайней мере это то что я знаю об этом.
Если моя версия неверна - плз пришли правельную.
With respect Asmlord
Вопрос №21
Уважаемые эксперты!
Прочитал вопрос за номером 12, ну и ещё пару книжек....
includelib import32.lib
MB_ICONINFORMATION equ 40h
extrn ExitProcess:proc
extrn MessageBoxA:proc
MessageBox equ MessageBoxA
с приведенным фрагментом всё ясно, но, возникает вопрос общего плана: MessageBox - это функция из API. Как под ассемблером можно работать с API? Вопрос вызван следующей причиной - я точно знаю, что API в DOS основано на прерываниях. А как вызвать APIшную функцию в защищеном режиме? Что содержится в библиотечных файлах (import32.lib)?
Ведь в конечном итоге, некий кусок кода (например функция MessageBox) будет прилинкована к нашей программе. Что у неё внутри? Всё тот же вызов прерывания? Обращение к вентилю вызова? Что то ещё?
И главное, что почитать по этому поводу?
Ответ
Работа с функциями Windows API на асме очень проста. В проге, если ты ее дизасембилруеш, то увидишь что при вызове будет джамп на вентиль входа. А в код твоей проги помещается стандартное смещение, по которому будет вызываться данная функция. По крайней мере это то что я знаю об этом.
Если моя версия неверна - плз пришли правельную.
With respect Asmlord
Вопрос №22
Здравствуйте, боссы ассемблера!
Хотелось бы получить полную таблицу команд
пнёвого процессора (шестнадцатеричный код, мнемоника,
влияние на флаги, кол-во тактов за которое выполняется
и по возможности краткое описание).
Заранее спасибо.
Ответ
Вообщето это около 500 стр. если в метрах - around 4.
Смотри книгу Assembler для DOS, Windows и UNIX. Издательства ДМК. Автор Зубков С.В. тма есть все вплоть до SSE and 3Dnow and MMX команд с полнейшей инфой по конвеерам машинным кодам команд и многое другое. Лично я считаю эту книгу одной из лучших.
With respect Asmlord
Подписаться на рассылки
Регистрация в качестве эксперта
Ведущий рассылки,
Калашников Олег:
Assembler@Kalashnikoff.ru
ICQ No.: 68951340
URL сайта подписчиков:
http://www.Kalashnikoff.ru
______________
По вопросам сотрудничества, рекламы и спонсорства обращайтесь:
(C) Москва, 2001. Авторское право принадлежит Калашникову О.А. Публичное размещение материала из рассылки, а также его использование полностью или частично в коммерческих или иных подобных целях без письменного согласия автора влечет ответственность за нарушение авторских прав. |
http://subscribe.ru/
E-mail: ask@subscribe.ru | Отписаться | Relayed by Corbina
Рейтингуется SpyLog |
В избранное | ||