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

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


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

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

Выпуск N 013

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

Дата выхода: 2001-06-04


Вопрос №3

Здавствуйте уважаемые эксперты, есть вопросик по поводу исправления одной программки. Она занимается форматированием текста (после знаков препинания пробел, новый абзац с краной строки, если после точки стоит строчная буква она меняется на заглавную. Приэтом она должна работать через буфер). Как сделать чтобы она форматировала файл размером больше, чем 16Кб, т.е. забить сегмент памяти, а потом запустить, поцесс дальнейшей обработки в цикл с последующей записью в файл. Желательно чтобы эта прога обрабатывала файлы до 2Гб. Исходник прилагается. Заранее благодарен.

Олег

Ответ

Ну вообще здесь все просто.
Читаешь первые 32к
Обрабатываешь, записываешь
Читаешь дальше 32к или сколько там у тебя в буфере? :)
Обрабатываешь, записываешь.
И так, пока файл не кончится.
Исходник нужен?


Отправил: Dron
Эксперт отправил ответов (всего): 9

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

Вопрос №19

Здравствуйте Уважаемые Эксперты.

У меня возник вопрос по которому я ни где не могу найти информацию.

При програмировании SVGA видеорежимов в режиме реального адреса используется память 0a000h:0000h при чем размер ее ограничен 0ffffh байтами и если установить например режим 114h (800x600x64k color) то обьем видеопамяти требующийся для отбражения изображения составляет примерно 1 Мегабайт и в реальном режиме процессора приходится менять банки видеопамяти чтобы по частям отбражать весь Мегабайт данных.

В защищенном режиме (или в нереальном режиме) можно использовать всю оперативную память.Но как запрограммировать видеоадаптер чтобы перенести видеопамять с 0a000h:0000h на совершенно другой адрес и переключить его в режим работы LFB (Linear Frame Buffer) чтобы весь Мегабайт изображения лежал на непрерывном куске памяти?

Заранее благодарен.

Ответ

Эта возможность появилась только в VBE 2.0
И информацию о нахождении линейного видеобуффера можно найти в информации по конкретному режиму.


Отправил: Dron
Эксперт отправил ответов (всего): 11

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

Вопрос №25

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

Как перевести текстовый файл WINDOWS в текстовик DOS?



С уважением, SKSoft.

Ответ

Есть несколько способов:

1). Выделите текст, нажмите Ctrl+Insert, затем в FAR или DN нажмите Shift+F4, введите имя файла, нажмите Shift+Insert, затем F2.
2). Выделите текст, вставте (Ctrl+C) в WORD, сохраните как Текст DOS.


Отправил: Evgos (http://ospelnikov.narod.ru - Личная страничка)
Эксперт отправил ответов (всего): 1

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

Вопрос №25

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

Как перевести текстовый файл WINDOWS в текстовик DOS?



С уважением, SKSoft.

Ответ

Здравствуйте, SKSoft!

Я для этой цели использую файловую оболочку Far, которая может работать и переводить из кодировок DOS в Windows и наоборот.


Отправил: Олег Калашников (http://www.Kalashnikoff.ru - Рассылки по Ассемблеру и Законодательству)
Эксперт отправил ответов (всего): 7

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

Вопрос №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


Отправил: Oleg
Эксперт отправил ответов (всего): 1

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

Вопрос №27

Уважаемые эксперты!

Вопрос не совсем по теме ассемблера, но хотелось одну книжку

по ассемблеру распечатать на бумагу, а то не очень удобно

читать с экрана.

Пытался напечатать на принтере игольчатом, старом очень

Star LC24, текст с кириллицей из файла в ДОСе,не получается, вылазит какая-то ерунда.Т.е в ДОСе принтер

не печатает кириллицу, в Виндовс печатает без проблем,

но эти текстовые файлы в Виндовс открываются не правильно, на экране непонятный набор символов, пытался разные

шрифты- то же самое.

Имею Win98SE Rus, и WIN2000 Eng.

Спасибо.

Ответ

Открываешь этот файл WORDом (текст ДОС), затем сохраняешь как текст Виндовс. Из того же Ворда можно отпечатать документ. Существуют специальные программы, я использую Штирлиц(Взять можно на www.redcom.ru).


Отправил: Evgos (http://ospelnikov.narod.ru - Личная страничка)
Эксперт отправил ответов (всего): 2

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

Вопрос №28

Увожаемые эксперты!!!

Я хотел бы уточнить для себя такие понятия как кэш и шина,

ясли я хоть как то представляю работу кэша, то о шине имею только поверхностное представление.

Ответте на вопрос что такое кэш и шиа (если можно по подробнее)!!!



За ранее благодарен.........Александр!



Ответ

Про шину что писать то? в зависимости от разрядности процессора бывает разной ширины... 4, 8, 16, 32, 64, 128 бит...
Служит для общения между процессором, памятью, контроллерами внешних устройствами...

Вот КЭШ - тут похитрее и для программиста гораздо более значимо. :)
Есть два КЭША. КЭШ память бывает внутренняя и внешняя... внутренняя сравнительно мала (8К для 486, 32К для Пентиума...), внешняя обычно больше, до нескольких мегабайт. КЭШ память обладает большей скоростью, нежели обыкновенные модули памяти, и служит для промежуточного хранения программных кодов и данных. Внешней КЭШ памяти может не быть, внутренняя присутствует всегда и непосредственно связана с устройством предвыборки процессора. Ну что еще написать? Метки переходов лучше выравнивать на 16 байт, так как это число - градация КЭШ памяти, ну и много всяких тонкостей оптимизации с этим связано. :))


Отправил: Dron
Эксперт отправил ответов (всего): 12

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

Вопрос №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


Отправил: Sultriness (http://rvs.hotmail.ru - Programs, help, documentations etc.)
Эксперт отправил ответов (всего): 4

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

Вопрос №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


Отправил: Sultriness (http://rvs.hotmail.ru - Programs, help, documentations etc.)
Эксперт отправил ответов (всего): 5

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

Вопрос №22

Здравствуйте, боссы ассемблера!

Хотелось бы получить полную таблицу команд

пнёвого процессора (шестнадцатеричный код, мнемоника,

влияние на флаги, кол-во тактов за которое выполняется

и по возможности краткое описание).

Заранее спасибо.



Ответ

Вообщето это около 500 стр. если в метрах - around 4.
Смотри книгу Assembler для DOS, Windows и UNIX. Издательства ДМК. Автор Зубков С.В. тма есть все вплоть до SSE and 3Dnow and MMX команд с полнейшей инфой по конвеерам машинным кодам команд и многое другое. Лично я считаю эту книгу одной из лучших.

With respect Asmlord


Отправил: Sultriness (http://rvs.hotmail.ru - Programs, help, documentations etc.)
Эксперт отправил ответов (всего): 7

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

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

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

Задать вопрос экспертам

Регистрация в качестве эксперта


Ведущий рассылки,

Калашников Олег: 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. Авторское право принадлежит Калашникову О.А. Публичное размещение материала из рассылки, а также его использование полностью или частично в коммерческих или иных подобных целях без письменного согласия автора влечет ответственность за нарушение авторских прав.

be number one


Реклама на сайте Kalashnikoff.ru


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться Relayed by Corbina
Рейтингуется SpyLog

В избранное