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!
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения