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

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler

Выпуск № 186
от 15.07.2005, 15:40

Администратор:Калашников О.А.
В рассылке:Подписчиков: 244, Экспертов: 13
В номере:Вопросов: 3, Ответов: 4


Вопрос № 23274: Скажите пожалуйста, что за функции базовой версии DOS для: последовательной записи? последовательного чтения? Дле чего они нужны? Еще мне нужны две команды для инициализации регистра DS, полгагая, что имя сегмента д...
Вопрос № 23275: Привет, мощные кодеры. Это снова LvT. Мой вопрос касается нюансов работы загрузчика в вин32 или в самом скилле программирования, я не знаю. Но недавно я натолкнулся на пример кода (в паке масм32), в котором можно было использовать...
Вопрос № 23287: Мне нужно вывести на экран символ(ы) с помощью прерываний BIOS (это задачку мне такую загадали). Какая пара прерывание-функция для этого используется? Тупой поиск по всем функциям 16-го прерывания меня не просветил. Я подозреваю, что BIOS не имее...

Вопрос № 23.274
Скажите пожалуйста, что за функции базовой версии DOS для:

последовательной записи?
последовательного чтения?

Дле чего они нужны?

Еще мне нужны две команды для инициализации
регистра DS, полгагая, что имя сегмента данных DATSEG.

Так ли это выглядить будет?:

mov ax,DATSEG
mov ds,ax
Верно?
Отправлен: 09.07.2005, 19:14
Вопрос задал: Терсков Алексей Николаевич (статус: Посетитель)
Всего ответов отправлено: 1

Отвечает: Ayl
Здравствуйте, Терсков Алексей Николаевич!

2. Да, правильно. Именно так и будет. Еще можно так:
push DATSEG
pop ds

1. запись и чтение из файла всегда будут последовательными до того момента, пока ты не изменишь указатель файла с помощью функции 42h прерывания 21h.

Чтение из файла: функция 3fh прерывания 21h
Чтение из файла: функция 40h прерывания 21h

---------
Трудное - то, что можно сделать немедленно. Невозможное - то, для выполнения чего требуется немного больше времени
Ответ отправил: Ayl (статус: Профессор)
Отправлен: 11.07.2005, 12:56


Вопрос № 23.275
Привет, мощные кодеры.
Это снова LvT.
Мой вопрос касается нюансов работы загрузчика
в вин32 или в самом скилле программирования,
я не знаю. Но недавно я натолкнулся на пример кода
(в паке масм32), в котором можно было использовать
функции API, не используя секцию импорта...
Кодер вроде клялся, что не вирмейкер,
но что любит писать совместимый код.
Короче, он использует что-то интересное.
Если кто видел, то, плиз, объясните ламеру.
Заранее огромно благодарен...
Sir LvT de said...
The best wishes, grretings and respects :D
Отправлен: 09.07.2005, 19:41
Вопрос задал: Skarrywizzard (статус: Посетитель)
Всего ответов отправлено: 1

Отвечает: John Freeman
Здравствуйте, Skarrywizzard!
А что странного? В WIN32 для создания процессa USER уровня используется CreateProcess, соответственно на входе в код любой программы имеем в стэке адрес возврата в диапазоне Kernel32.dll, от этого и пляшем просто чтением памяти разбирая заголовок kernel32....
Пример на WASM.ru вот здесь
http://wasm.ru/srclist.php?list=6
Название - Kernel(by Yoda)
---------
You're trying to take me They trying to make me This is the only Gives me the only thing Tired of lying, I'm tired of lying The only thing I inderstand is what I feel...
Ответ отправил: John Freeman (статус: Профессор)
Отправлен: 10.07.2005, 22:02
Оценка за ответ: 5


Вопрос № 23.287
Мне нужно вывести на экран символ(ы) с помощью прерываний BIOS (это задачку мне такую загадали). Какая пара прерывание-функция для этого используется?
Тупой поиск по всем функциям 16-го прерывания меня не просветил. Я подозреваю, что BIOS не имеет функции "вывести символ на экран" но наверняка имеет что-нибудь вроде "flash какой-нибудь буфер"

Подскажие как "правильно" использовать BIOS прерывания для вывода на дисплей.

Мой уровень:
Калашников - урок 8 (начинаем работать с файлами)
Iczelion - tutorial 3 (простое окно)

ЗЫ у меня Windows XP стоят, если для них какие трюки требуются (как
mov ax, 3
int 10H
чтобы прямой вывод в видеобуфер работал) предупредите пожалуйста.
Когда пишу 16-bit DOS код, время уходит не столько на изучение ассемблера, сколько на выяснения почему опять нормальный код не работает :)
Отправлен: 10.07.2005, 11:48
Вопрос задала: Janno (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: Евгений Иванов
Здравствуйте, Janno!
используй 16 прерывание, функцию 10.

---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 10.07.2005, 13:35

Отвечает: Ayl
Здравствуйте, Janno!

Функции BIOS для вывода символов находятся в прерывании 10h - работа с видеокартой.

Можешь использовать одну из следующих функций:

09h - вывести один или несколько одинаковых символов с заданным атрибутом (AH = 9, AL = символ, BH = страница, BL = атрибут, CX = кол-во символов).

0ah - вывести один или несколько символов без изменения аттрибута в позиции символа (AH = 0ah, AL = символ, BH = страница, CX = кол-во символов).


---------
Трудное - то, что можно сделать немедленно. Невозможное - то, для выполнения чего требуется немного больше времени
Ответ отправил: Ayl (статус: Профессор)
Отправлен: 11.07.2005, 13:04
Оценка за ответ: 5
Комментарий оценки:
ответ в самую точу!


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.faq
Отписаться
Вспомнить пароль

В избранное