Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Assembler

Автор: Abs62
Дата сообщения: 03.10.2009 17:16
bomzzz
А к прерыванию это никакого отношения и не имеет - это настройка регистров на входе в программу. Зачем автор её впихнул в com-файл, лучше у него спросить.
Автор: bomzzz
Дата сообщения: 03.10.2009 17:19
он пади умер давно. просто тут много примеров, но везде где работа с файлами вот эта настройка регистров.
Автор: Abs62
Дата сообщения: 03.10.2009 17:35
bomzzz
Дык, небось все они из одного делались, методом копипаста.
Автор: Infinite Retrieval
Дата сообщения: 03.10.2009 21:39

Цитата:
А речь шла, насколько я понял, об доступе чисто ассемблерными методами, прямым заданием значений регистров.

Именно это я и спрашивал. Тобишь из под винды вообще нельзя обращаться к физическому адресу напрямую через регистры сегментов?
Автор: Abs62
Дата сообщения: 03.10.2009 22:18
Infinite Retrieval

Цитата:
Тобишь из под винды вообще нельзя обращаться к физическому адресу напрямую через регистры сегментов?

Более того, там и содержимое сегментных регистров имеет другой смысл.
Здесь можно подробнее почитать, если интересно.
Автор: Infinite Retrieval
Дата сообщения: 03.10.2009 22:22

Цитата:
Более того, там и содержимое сегментных регистров имеет другой смысл.

Зачем такие сложности понадобились?
Автор: Abs62
Дата сообщения: 03.10.2009 22:24
Infinite Retrieval
Так работает защищённый режим процессора. Ссылку я уже кинул.
Автор: Infinite Retrieval
Дата сообщения: 03.10.2009 22:28
Ок, я эту тему с защищённым режимом не изучал раньше, сейчас восполню пробел, спасибо за ссылку.
Автор: Lyrik
Дата сообщения: 05.10.2009 19:16
Infinite Retrieval

Цитата:
Тобишь из под винды вообще нельзя обращаться к физическому адресу напрямую через регистры сегментов?

можно, но только на нулевом кольце.
Автор: bomzzz
Дата сообщения: 05.10.2009 19:44
ну как же узнать какое сообщение посылается чужому окну?
winspy winid поставил проги крайне полезные, но в той куче инфы которую они выдают об окнах нет одного - сообщений.
как узнать какое сообщение посылается окнам експлорера когда он обновляет конфигурацию при изменении свойств папки????

может это просто invoke UpdateWindow
Автор: ALEF
Дата сообщения: 07.10.2009 17:21
Может оно посылаестя не окнам?
лучше используй другую программу, которая показывает сообщения
Автор: bomzzz
Дата сообщения: 07.10.2009 18:18
какую.
Автор: Lyrik
Дата сообщения: 07.10.2009 22:17
bomzzz
или я не пойму что вы хотите или вы что-то не так делаете.
если Вы уверены, что это - сообщение windows, тогда такой алгоритм:
1. запускайте нужную прогу
2. запускаете spy++
3. в меню spy++ выбираете Search->Find Window (или жмете Alt+F3)
4. в новом окне выбирает прицел и находите нужное окно путем перетаскивания этого прицела на нужное окно.
5. spy++ находит это окно в своем списке окон.
6. жмете пкм на этом окне и выбираете Messages.
7. в spy++ появится новое окно. там жмете F8 (Messages->Stop Logging).
8. потом жмете Ctrl+O (Messages->Logging Options).
9. на вкладке Windows можете поставить галочки в зависимости от Ваших нужд.
10. на вкладке Messages жмете кнопку Select All и жмете ОК.
11. опять жмете F8 (Messages->Start Logging).
12. переключаетесь на нужную прогу и делаете действия, когда по Вашему эта прога шлет какие-то сообщения.
13. переключаетесь на spy++ и разбераете его логи

Автор: bomzzz
Дата сообщения: 07.10.2009 22:29
пасипки щас попробую

у меня прога была нета - какой то кастрированный вариант. нашел ТУ прогу, вроде сделал все правельна, но похоже обновление эксплорера делается не сообщением хотя странно.
Автор: Lyrik
Дата сообщения: 18.10.2009 18:43
доброго времени суток! есть ли здесь тех, кого не затруднит скомпилить и запустить прогу и сказать ее результаты? оооочень надо. вот сам код:

Код: mov ah, 08h
mov dl, 80h
int 13h
Автор: Prober
Дата сообщения: 18.10.2009 19:17
Lyrik
Чистый ДОС сейчас непросто найти. Была в ДОСе и осталась в Окнах утилита DEBUG, этот код легко выполняется из-под нее.

Лень подымать раритетную документацию, но, насколько я помню, эта функция (как и многие другие 13-го прерывания) проектировалась, когда гигабайтных дисков еще и в помине не было, и у ее регистров просто не хватит разрядности, чтобы вернуть правильный результат.
Автор: Lyrik
Дата сообщения: 19.10.2009 00:19
Prober

Цитата:
Чистый ДОС сейчас непросто найти.

у меня чистый дос есть в составе hiren's boot cd. там и тестил.

Цитата:
Лень подымать раритетную документацию, но, насколько я помню, эта функция (как и многие другие 13-го прерывания) проектировалась, когда гигабайтных дисков еще и в помине не было, и у ее регистров просто не хватит разрядности, чтобы вернуть правильный результат.

дык это и так ясно интересно что она вернет. нули, ФФ или то, что помещается.
спасибо конечно за то, что исполнили под виндой, но это неверно. поскольку я тестировал этот код на разных виндовс машинах и везде возвращается этот результат, что говорит о том, что ntvdm создает заглушку и возвращает всегда фиксированные числа.
Автор: bomzzz
Дата сообщения: 19.10.2009 04:15
*
Автор: Lyrik
Дата сообщения: 19.10.2009 11:06
bomzzz
вот мне интересно, Вы этот код исполняли? я вот смотрел тут http://www.emu8086.com/assembly_language_tutorial_assembler_reference/8086_bios_and_dos_interrupts.html и не увидел 8 функции 13 прерывания. но я решил все же скачать и проверить. но получил то, что написано в документации.
з.ы. сразу скажу, что пробовал и досбокс, если вдруг мне начнут кидать сайты и скрины досбокса.
з.з.ы. пока результатов никаких
Автор: bomzzz
Дата сообщения: 19.10.2009 11:23
*
Автор: Lyrik
Дата сообщения: 19.10.2009 15:36
bomzzz

Цитата:
если прерывание не поддерживается эмулятором код все равно можно откомпилировать - и исполнить

и что? винда его тоже исполняет, только результат неверный.

Цитата:
и эта программа гораздо удобнее чем дебугер.

о вкусах не спорят.

Цитата:
тасм скачай да и откомпилируй он 400 кб весит. дос найди старую в инете - да и запусти ее на компе вместо винды.

если Вы не внимательно читали мой пост, то привожу цитату:

Цитата:
вот провел у себя тест на винте 120гиг и мне почему в dx выдало значение 0xFE02. хотя я ожидал, что будет 0xFF02.


Цитата:
и каких можно результатов ожидать если прога не выводит никаких данных.

опять же читайте внимательно мой пост:

Цитата:
интересуют такие регистры: ax, bx, cx, dx и флаг CF.


Цитата:
INT 13H: дисковый ввод-вывод

зачем приводить справочную информацию? или Вы думаете, что я просто так написал этот код? пожалуйста, перечитайте пост
Автор: bomzzz
Дата сообщения: 19.10.2009 16:19
ну так ты бы исполняемый файл сделал и попросил проверить у всех ли разметка диска в инфо размера не включается.
Автор: Lyrik
Дата сообщения: 19.10.2009 20:49

Цитата:
ну так ты бы исполняемый файл сделал и попросил проверить у всех ли разметка диска в инфо размера не включается.

откуда мне знать, что надо исполняемый файл? я сам делал как Prober написал. но если кому-то нужно, то вот. после запуска под досом приведите тут, пожалуйста, результаты работы.
Автор: bomzzz
Дата сообщения: 19.10.2009 21:06
зависит от того хочешь ли ты чтоб тебе помогли - сомневаюсь что кто нибудь будет запускать у себя неизвестно что. если возвращаемое значение есть - значит надо читать описание прерывания и разбираться почему оно такое, а не другое.
врядли тут дело в разметке диска.

вот хорошее описание нашел http://hdpt.page.by/int13.html
пробовать все равно врядли буду не вижу задач чтоб так с винтом работать
Автор: Prober
Дата сообщения: 20.10.2009 00:45
bomzzz
Правила форума, раздел VIII:

Цитата:
2.20. Запрещены любые действия, явно или косвенно направленные на нарушение нормального функционирования форума, включая, но не ограничиваясь:
...
2.20.2. модифицирование собственных сообщений с целью изменения их первоначального смысла, произведенное после появления следующих сообщений в теме;
2.20.3. удаление или изменение собственных сообщений, делающее следующие опубликованные сообщения в теме бессмысленными.
Автор: bomzzz
Дата сообщения: 20.10.2009 00:58
можешь теперь утопится
Автор: Qraizer
Дата сообщения: 20.10.2009 02:03
ASUS P5LD2 945 ICH7, IDE контроллер в enhanced режиме, двухядерник E2180 разогнан до 2,66ГГц, 3Гб RAM, HDD Samsung HD321KJ 320Гб SATA.
DOS ядро от Win98SE RUS. Проверялось в реальном и виртуальном режимах. В обоих случаях грузился HIMEM.SYS, виртуальный режим обеспечивался EMM386.EXE. Проверялось в DEBUG.COM.

AX=003F BX=0000 CX=FEFF DX=FE02 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1AFD ES=1AFD SS=1AFD CS=1AFD IP=0102 NV UP EI PL NZ NA PO NC


Результаты идентичны с точностью до значений сегментных регистров.
Автор: Prober
Дата сообщения: 20.10.2009 02:08
Lyrik
Нашел старую дискету с ДОСом 6.22, сдул с нее пыль, загрузился. Чтобы не переписывать результаты с экрана, создал файл IN.TXT:

Код: f 100 l10 90
a 100
mov ah, 8
mov dl, 80
int 13

u 100 l10
g =100 106
q
Автор: bomzzz
Дата сообщения: 20.10.2009 02:13

Цитата:

Производитель: Samsung
Объем, Гб: 320 Гб
Количество дисков: 3
Количество головок: 5
Скорость вращения дисков, об/ мин: 7200 rpm
Интерфейс: S-ATA II
Объем кэша, МБ: 16 Мб
Тип устройства: для настольного компьютера (3.5')
Внешняя шина, МБ/ сек: 300 Мб/ с
Внутренняя шина, МБ/ сек: 1000 Мбит/ с
Время доступа по дорожкам, мс: 0.8 мс
Среднее время доступа, мс: 8.9 мс
Среднее время задержки (Latency): 4.17 мс
Время доступа full stroke: 18 мс
Линейка: SpinPoint T166S
Уровень шума простоя: 23 Дб
Поддержка NCQ: есть
Ударостойкость при работе: 63 G
Уровень шума работы: 27 Дб
Ударостойкость при хранении: 350 G

Время наработки на отказ (MBTF), ч: 600000 ч
Размеры (Ш х В х Г), мм: 25.4x146x101.6 мм
Вес, кг: 0.51 кг
Накопитель HDD SAMSUNG 320GB (HD322HJ / HD321KJ)
Автор: Qraizer
Дата сообщения: 20.10.2009 02:14
Prober,

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384

Предыдущая тема: .NET GUI компоненты


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.