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

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


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

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

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

Выпуск № 367
от 09.02.2006, 23:21

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


Вопрос № 34706: Здравствуйте. После инструкции: db 0FFFFh dup ('*') один байт в буфере остается пустым, а после добавления db '*' tasm выдает предупреждение переполнения. Так как одной командой заполнить весь буфер. alexei_s@pop3....
Вопрос № 34717: Здравствуйте уважаемые эксперты! Как мне узнать адреса прерываний, точнее где эти прерывания лежат? Например я знаю что прерывание 10h лежит в DS (сегменте данных) в этой ячейке 40h, а прерывание 21h, лежит в 51h ячейке. Так ли это? ...

Вопрос № 34.706
Здравствуйте.

После инструкции: db 0FFFFh dup ('*') один байт в
буфере остается пустым, а после добавления db '*' tasm выдает
предупреждение переполнения. Так как одной командой заполнить
весь буфер.

alexei_s@pop3.ru
Отправлен: 04.02.2006, 05:34
Вопрос задал: Семенов Алексей Николаевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Евгений Иванов
Здравствуйте, Семенов Алексей Николаевич!
какой это весь буфер? что вы имеете в виду?
размер сегмента 64 Кб, а это 65536 байтов.
поэтому выделить память такого размера - для этого нужно создать отдельный сегмент. а он пишет, что переполнение, потому что там уже что-то находится.
Лучше используй функцию выделения памяти 48h.
удачи!
---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 04.02.2006, 12:24


Вопрос № 34.717
Здравствуйте уважаемые эксперты!
Как мне узнать адреса прерываний, точнее где эти прерывания лежат?
Например я знаю что прерывание 10h лежит в DS (сегменте данных) в этой ячейке 40h, а прерывание 21h, лежит в 51h ячейке. Так ли это?
Отправлен: 04.02.2006, 13:30
Вопрос задал: Minigun (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: EPDSota
Здравствуйте, Minigun!

дальний адрес прерывания= двойное слово по адресу (номер прерывания *4)...

то есть для прерывания 21h это будет:

push 0
pop gs;gs=сегмент таблицы прерываний
mov ax,gs:[21h*4+2]
mov es,ax
mov bx,gs:[21h*4]
;теперь es:bx - указывает на прерывание 21h
---------
Открыть глаза навстречу солнцу
Ответ отправил: EPDSota (статус: Практикант)
Отправлен: 04.02.2006, 14:12
Оценка за ответ: 5
Комментарий оценки:
Спасибо, теперь все ясно.

Отвечает: skif quest
Здравствуйте, Minigun!
"на расположение их указывает 4 байта по адресу получаемому таким образом: 4*N где N -номер прерывания. Это значит что адрес 21h -го прерывания лежит в 84h-88h ячейках памяти. "
А вот сам код прерываний может быть где угодно в пределах доступной памяти.
Ответ отправил: skif quest (статус: 1-ый класс)
Отправлен: 06.02.2006, 08:21
Оценка за ответ: 4
Комментарий оценки:
Верно, я умножил 21 на 4 и получил 84.
но скорее всего 84h+1, а не + 4, так как в каждой ячейки итак 4 байта. А вот сам код, лежит в 50-51 ячейке, по смещению d ds:50, это 21-го прерывания.


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.14 (бета) от 09.02.2006
Яндекс Rambler's Top100

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

В избранное