Member
Статус: Не в сети Регистрация: 09.07.2006 Откуда: Санкт-Петербург
L.A.W. писал(а):
Rasdolbay писал(а): А можно в трёх словах объяснить отличие моедлей памяти Tiny и Small ? Попробуй прочитать хотя бы 64000 байт в модели памяти Small без инициализации DS. Что получишь ?
Ты опять говоришь о том, чего не понимаешь. Давай так - изложи свое видение ответа на твой вопрос и скажи в чем по-твоему будет проблема при чтении в сегмент данных объемов данных близких по размеру к размеру сегмента.
От тут я обшибся - вместо "Tiny" написал "Compact". Теперь то же самое - но для Tiny ! Для Compact'а попробуй инициализировать парочку больших структур, в сегменте данных, ессно, а потом выделить память в том же сегменте под данные из файла в размере 65536. Придётся DS трогать ?
L.A.W. писал(а):
Ути бозе мой! Near - это термин не о памяти. По крайней мере в ассмеблере. В ассемблере near и far бываю процедуры и переходы.
Нормальные учебники почитай - не совковыми "инженерами" писанные. Для начала хотя бы Джордейна. Между прочим, в некоторых моделях памяти есть две "кучи", и обозночаются они как Near- и Far- соответственно. Иди учись, жертва Пасквиля !
L.A.W. писал(а):
Ай молодца ! А позвольте спросить - в каком регистре проца окажется значение 0B900h ? И какая разница - кто его туда запишет - программер или компилятор ?Для начала подучи систему команд 8086 !
Нда... А ты ваще про прямую адресацию слышал? А откуда берутся константы на шине знаешь?
Учи систему команд 8086, млин. И попробуй проделать свой прикол в 5-м МАСМе - а потом загрузи ехе-шник в приличный отладчик и посмотри содержимое регистров, двоечник !
L.A.W. писал(а):
Ты уже сам признал, что можно читать из файла не переназначая DS (пошли отмазки про чтение в динамическуя память).
Можно, только при этом памяти под данные слишком мало выделить можно - там же ещё и стат. структуры сидеть будут.
L.A.W. писал(а):
Ты, похоже, решил тихонько забыть свое предложение использовать сегментные регистры для последовательного доступа к памяти...
И не думал забывать - я уже объяснял - когда это оправдано, ибо операций меньше - скорость работы выше. Иди учись !
L.A.W. писал(а):
Rasdolbay писал(а): Я сказал что Пасквиль НЕ МОЖЕТ встроенными средствами разместить в памяти структуру более 64К.
Вот именно. Ты сморозил глупость - ты ее и доказывай.
И что тут доказывать ? Пробуем инициализировать массив строк длиной 128 байт размерностью 1024 элемента - что нам компилёр напишет ? Это называется использование встоенных средств.
А теперь приведи свой пример - что бы и компилёр не ругался, и работало, и обращение к элементом по индексу было.
_________________ Россия - без "православия" и "христианства" !
ЗАО "РпЦ" - ПОД СУД !
А теперь прикинь: в Linux для установки прав на каждый файл необходимо 6 байт, а в Windows: N+M байт, где N - число пользователей, M - число групп.
Это ты про CHMOD чтоли?
sergey_g писал(а):
Вот-вот, я тогда говорил, и сейчас повторю, пока MS будет за пользователя решать, что ему надо на компьютере, а что нет, говорить о юзерфрендли просто смешно.
Как раз в наборе предустановленного софта и заключается часть юзерфрендливости системы, хотя:
sergey_g писал(а):
Что самое главное 98-ая еще при установке спрашивала, какие компоненты ставить а какие нет.
Жалко что в XP и последущих версия убрали эту опцию...
Можно, только при этом памяти под данные слишком мало выделить можно - там же ещё и стат. структуры сидеть будут.
"Слишком мало"??? Тут это уже вопрос заточки рук! В
Rasdolbay писал(а):
И не думал забывать - я уже объяснял - когда это оправдано, ибо операций меньше - скорость работы выше. Иди учись !
Операций меньше? Тебе самому не смешно? А то что для внесения начального значения в сегментный регистр нужно 2 действия а не одно ты уже забыл? А инкремент будет занимать столько же операция сколько и для дргуих регистров. И еще тебе нужно хранить предыдущее значение сегментного регистра для ег восстановления. А в случае переназначения DS ты теряешь возможность норамльно обращаться к дургим данным. Признай сам - идиотская идея так использовать сегментные регистры.
Rasdolbay писал(а):
Пробуем инициализировать массив строк длиной 128 байт размерностью 1024 элемента - что нам компилёр напишет ?
Т.е. ты попробовал ОДИН вариант и сделал вывод о невозможности реализации этого средствами Паскаля? Браво! Блестящий вывод! Абсолютно обоснованный!
Rasdolbay писал(а):
Для Compact'а попробуй инициализировать парочку больших структур, в сегменте данных, ессно, а потом выделить память в том же сегменте под данные из файла в размере 65536. Придётся DS трогать ?
Во первых при модели памяти компакт я могу выделить несколько регистров данных. Естественно для переключения между ними можно, а иногда и нужно, переназначать DS. А если тебя интересует принципиальная возможность читать данные из файла в другой сегмент данных без переназначения DS - функции БИОС тебе в руки. Они такую возможность дают. Если честно - я ваще не понял, что ты хотел на этом примере проилюстировать?
Rasdolbay писал(а):
Теперь то же самое - но для Tiny !
Чего "то же самое"? Не понял твою мысль...
_________________ I L.A.W. you, baby!
For a GNU dawn! For freedom!
Member
Статус: Не в сети Регистрация: 09.07.2006 Откуда: Санкт-Петербург
L.A.W. писал(а):
Чего "то же самое"? Не понял твою мысль...
Поясню - прочти из файла 64К, НЕ МЕНЯЯ DS. Что получим ?
L.A.W. писал(а):
Операций меньше? Тебе самому не смешно? Smile А то что для внесения начального значения в сегментный регистр нужно 2 действия а не одно ты уже забыл? А инкремент будет занимать столько же операция сколько и для дргуих регистров.
Да ? Плз, нарисуй простенький алгоритм - простыми словами, кода не надо - у тебя есть некий файл, содержащий 4000 записей по 64 байта каждая. Тебе надо в ПРОИЗВОЛЬНОМ порядке вносить изменения в них. Опиши алгоритм, а ? Для Пасквиля или асма - уже не важно. Простенько так, на пальцах, лады ?
L.A.W. писал(а):
"Слишком мало"??? Very Happy Тут это уже вопрос заточки рук!
Ок ! У тебя около 40К стат. данных и структур - сколько останется в сег. данных ?
L.A.W. писал(а):
А если тебя интересует принципиальная возможность читать данные из файла в другой сегмент данных без переназначения DS - функции БИОС тебе в руки. Они такую возможность дают.
Оба на ! Месье извращенец ? Ну-ка набросай алгоритм чтения файла используя БИОС !
Иди учись ! И признай что был неправ - иначе уж слишком смешно выглядишь.
L.A.W. писал(а):
А в случае переназначения DS ты теряешь возможность норамльно обращаться к дургим данным. Признай сам - идиотская идея так использовать сегментные регистры.
Код:
push DS pop DS
или
Код:
pusha popa
нормально ?
Хотя можно и явно сохранить DS. Тем более что он понадобится ТОЛЬКО после окончания чтения файла - потери не велеки.
Поясню - прочти из файла 64К, НЕ МЕНЯЯ DS. Что получим ?
Глупый вопрос. Мы получим 64К прочитанные из файла! И ничего другого.
Rasdolbay писал(а):
Да ? Плз, нарисуй простенький алгоритм - простыми словами, кода не надо - у тебя есть некий файл, содержащий 4000 записей по 64 байта каждая. Тебе надо в ПРОИЗВОЛЬНОМ порядке вносить изменения в них. Опиши алгоритм, а ? Для Пасквиля или асма - уже не важно. Простенько так, на пальцах, лады ?
Ээээ... И чем же тут эффективнее использовать сегментные регистры? Наоборот - для работы с записями в произвольном порядке будет лучше читать их в одну и ту же область памяти и обрабатывать.
Rasdolbay писал(а):
Оба на ! Месье извращенец ? Ну-ка набросай алгоритм чтения файла используя БИОС ! Иди учись ! И признай что был неправ - иначе уж слишком смешно выглядишь.
А что тебя удивляет? Ты никогда не сылшал про 13-е прерывание?
Rasdolbay писал(а):
Код:
push DSpop DS
или
Код:
pushapopa
нормально ?
Эээ.. Ты щас что вообще доказываешь? Что регистр DS можно сохранить и потом восстановить? Да можно согласен. Но ты тут тельняжку на груди по поводу эффективности рвал... А если перед каждым обращением к данным из сегмента данных ты будешь восстанавливать DS из стека, а потом опять в него что-то записывать, то о какой эффективности может идти речь?
Так о чем ты щас споришь? Что иногда нужно переназначать DS? Так с этим я согласен. А с начла ты говорил, что при чтении из файла без этого невозможно обойтись. Но щас ты от этой придури отказлася. Поздравляю.
_________________ I L.A.W. you, baby!
For a GNU dawn! For freedom!
Member
Статус: Не в сети Регистрация: 09.07.2006 Откуда: Санкт-Петербург
L.A.W. писал(а):
Глупый вопрос. Мы получим 64К прочитанные из файла! И ничего другого.
Садись - ДВА ! В модели памяти Tiny (впрочем, как и Small) данные и код размещаются в ОДНОМ сегменте, по умолчанию DS указывает на него. И если тебе удастся прочесть в него 64К - то пипец всей проге. Иди учись , "энжэнер", млин ...
L.A.W. писал(а):
Ээээ... И чем же тут эффективнее использовать сегментные регистры? Наоборот - для работы с записями в произвольном порядке будет лучше читать их в одну и ту же область памяти и обрабатывать.
Т.е. 4000 раз вызывать int21h ? Очень быстро будет ....
L.A.W. писал(а):
ы щас что вообще доказываешь? Что регистр DS можно сохранить и потом восстановить? Да можно согласен. Но ты тут тельняжку на груди по поводу эффективности рвал... А если перед каждым обращением к данным из сегмента данных ты будешь восстанавливать DS из стека, а потом опять в него что-то записывать, то о какой эффективности может идти речь?
Я буду сохранять/восстанавливать DS в данном примере всего 8-мь раз. Ты же проделаешь это 4000 раз (обработка прерывания начинается с pusha, заканчивается popa).
L.A.W. писал(а):
А что тебя удивляет? Ты никогда не сылшал про 13-е прерывание?
Ну-ка примерчик в студию ! Я - то слышал про int13, авот ты-то знаешь, что ему в качестве аргументов передают ?
_________________ Россия - без "православия" и "христианства" !
ЗАО "РпЦ" - ПОД СУД !
Member
Статус: Не в сети Регистрация: 15.11.2005 Откуда: Одесса
virus писал(а):
Не аргумент, это не часть ОСь по этому должен быть "удаляемый"...
Ну это вопрос идеологический, а не практический. Места ИЕ, сам по-себе практически не занимает. Его компоненты - часть эксплорера, без них не было бы "Представить рабочий стол, как веб-страницу" и т.п.
А вот практический вопрос - как установишь какой-нибудь линуксовый дистр, он раскинется на пару-тройку гигов, а вот удалить все, что тебе не нужно - проблема: все удаляется, да, но пакетов, содержащих все ненужное сотни, и мелкие такие.
Тему почитай, а вообще макросами и быстродействием(под Windows по крайней мере).
Тему читаю, иногда, но вот запоминать её...
Есть мнение, что эти самые макросы не очень безопасны - дыры для вирусов. А вот ссылку на тесты производительности хотелось бы всё же увидеть. Кстати как у мс офиса реализована совместимость со старыми версиями? К тому же, сколько стоит последняя версия мс офиса?
Сомневаюсь, что обычным пользователям нужны макросы, а вот организации подсевшие на мс офис будут вынуждены постоянно покупать новые более дорогие версии, либо сидеть с дырами. Закрытое п.о. - это как игла. И очень сильно сомневаюсь, что в скором времени появятся нормальные конвертеры.
Member
Статус: Не в сети Регистрация: 08.03.2004 Откуда: Москва
Linn писал(а):
А вот практический вопрос - как установишь какой-нибудь линуксовый дистр, он раскинется на пару-тройку гигов, а вот удалить все, что тебе не нужно - проблема: все удаляется, да, но пакетов, содержащих все ненужное сотни, и мелкие такие.
есть несколько вариантов дистрибутивов. Берем любой, какой хочешь, ту же убунту! Смотрим: десктоп - уже настроенный десктоп с браузерами и офисами, сервер - уже настроеный сервер - не подходят? есть альтернейт - поставь только то, что тебе нужно. У других (сюся, деб, мандра) при установке есть окно, где галочками помечаешь что тебе нужно поставить, а чего нет.
_________________ Software is like a sex, it is better when it is free
В модели памяти Tiny (впрочем, как и Small) данные и код размещаются в ОДНОМ сегменте
В модели памяти Small код размещен в отдельном сегменте. А вот стек и данные - в одном сегменте.
Rasdolbay писал(а):
по умолчанию DS указывает на него
В модел ипамяти small DS так же требуется инициализировать, занеся в него сегмнтный адрес сегмента данных.
Rasdolbay писал(а):
И если тебе удастся прочесть в него 64К - то пипец всей проге.
А я разве писал, что буде читать в него? Ты сначала поучись, как работает 13-е прерывание.
Rasdolbay писал(а):
Ну-ка примерчик в студию ! Я - то слышал про int13, авот ты-то знаешь, что ему в качестве аргументов передают ?
Вот сам для начал прочти!
Rasdolbay писал(а):
Т.е. 4000 раз вызывать int21h ? Очень быстро будет ....
Не обязательно. Если тебе понадобится только 2 запсиси, то тебе прийдется считать только 2 записи. А если делать твоим способом - ты загадишь уйму памяти без дела.
_________________ I L.A.W. you, baby!
For a GNU dawn! For freedom!
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 55
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения