Важная информация

User Tag List

Страница 1 из 5 12345 ПоследняяПоследняя
Показано с 1 по 10 из 50

Тема: В чем смысл раздельных областей программы и данных

  1. #1
    Moderator Аватар для CodeMaster
    Регистрация
    26.04.2009
    Адрес
    Воронеж
    Сообщений
    4,254
    Благодарностей: 590
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию В чем смысл раздельных областей программы и данных

    То же решил задать тупой вопрос в этом разделе ;-) Помню впервые это понятие встретил в руководстве по клону именно Спектрума, вот до сих пор мучит этот вопрос :-) Сам-то я в основном на БК работал, там всё ОЗУ кроме стека было сквозным и данные были в перемешку с кодом. Это зависит от архитектуры проца или машины в целом?
    Рыцарь ордена Хламовников

    Мои магазины на Мешке: Retro store и Компьютерные комплектующие

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Master
    Регистрация
    31.03.2008
    Адрес
    Москва
    Сообщений
    583
    Благодарностей: 311
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В Спеке тоже можно все вперемешку.
    Разделение кода и данных - просто хороший тон программирования.
    Если речь про архитектуру, то Гугли это:
    Архитектура фон Неймана
    Гарвардская архитектура
    ZXM-Phoenix rev01 2048, FloppyEmulator/SD, IDE->CF 4Gb

  4. #3
    Master Аватар для Keeper
    Регистрация
    16.11.2007
    Адрес
    Харьков
    Сообщений
    873
    Благодарностей: 372
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Имеется ввиду то, что данные не могут быть исполняемыми Например, в процах архитектуры x86 начиная с 286 в защищенном режиме попытка, скажем, перехода (JMP) в сегмент данных вызовет исключение...

    Цитата Сообщение от CodeMaster Посмотреть сообщение
    Это зависит от архитектуры проца или машины в целом?
    В основном от архитектуры проца. Z80, например, позволяет отделить опкоды от всего остального (хотя это и не совсем то о чем Вы спрашиваете), но в спектруме это не используется (разве что в видеопроцессоре ZX-NEXT ).

    Цитата Сообщение от IanPo Посмотреть сообщение
    Архитектура фон Неймана
    Гарвардская архитектура
    Это не совсем то (или совсем не то ). Гарвардская архитектура требует отдельной шины для команд и отдельной шины для данных. В Фон Неймановской используется общая шина для команд и данных.

  5. #4
    Master
    Регистрация
    31.03.2008
    Адрес
    Москва
    Сообщений
    583
    Благодарностей: 311
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Имеется ввиду то, что данные не могут быть исполняемыми
    Z80 аполитичен, что данные, что код: что подсунут на адрес исполнения, то и исполняет.
    ZXM-Phoenix rev01 2048, FloppyEmulator/SD, IDE->CF 4Gb

  6. #5
    Veteran Аватар для Vadim
    Регистрация
    24.07.2008
    Адрес
    Курган
    Сообщений
    1,811
    Благодарностей: 375
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CodeMaster Посмотреть сообщение
    В чем смысл раздельных областей программы и данных
    В современных процах - что бы в область данных не подсунули вредоносный код, которому потом передадут управление. В старых процах типа z80, 6502, 8086 процессор аппаратно не отличает коды и данные, ему по барабану что исполнять. В процессорах типа i8035 коды программ физически отделены от данных, есть два адресных пространства которые не пересекаются. Адрес 0 для кода это одно, для данных - другое. Т.е. что я хочу сказать, почти все современные компы построены по архитектуре фон-неймана, включая пентиумы все. Просто, как уже было сказано выше, разделять их можно логически для удобства, как правило хорошего тона. Кроме того процы начиная с 80286 стали позволять помечать определенные сегменты как сегменты данных, для исключения их выполнения (по ошибке). Это как бы некий такой уровень защиты. А где вы увидели о разделении данных и кода именно в ключе спектрума, не знаю. Скорее всего из наставлений Инфоркома или из перепечаток интервью с западными программистами. На Z80 можно делать как душа пожелает. Только вот аппаратно пометить сегмент данных или стека не удастся. В Z280 только такие средства появились.

    Скрытый текст

    Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
    ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
    ZX Evolution Rev B.
    Color 48 + Beta Disk Interface +FDD+YM2149F
    Орель-08БК
    Pentagon-48 (недоссобранный кем-то)
    Pentagon-128 (полуубитый)
    Кворум-128 (в ремонте)
    Магик-05 (в ремонте)
    Robotron 1715
    Корвет ПК8020 и ПК8010
    Amstrad CPC 464
    Amstrad CPC 6128
    [свернуть]

  7. #6
    Moderator Аватар для CodeMaster
    Регистрация
    26.04.2009
    Адрес
    Воронеж
    Сообщений
    4,254
    Благодарностей: 590
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vadim Посмотреть сообщение
    А где вы увидели о разделении данных и кода именно в ключе спектрума, не знаю.
    Если найду эту книгу, скажу. Мне кааца, это было в разделе описАния комманд.
    Рыцарь ордена Хламовников

    Мои магазины на Мешке: Retro store и Компьютерные комплектующие

  8. #7
    Master Аватар для Keeper
    Регистрация
    16.11.2007
    Адрес
    Харьков
    Сообщений
    873
    Благодарностей: 372
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от IanPo Посмотреть сообщение
    Z80 аполитичен, что данные, что код: что подсунут на адрес исполнения, то и исполняет.
    Цитата Сообщение от Vadim Посмотреть сообщение
    На Z80 можно делать как душа пожелает. Только вот аппаратно пометить сегмент данных или стека не удастся.
    Повторюсь, у Z80 есть сигнал /M1 который позволяет аппаратно отделить опкоды от всего остального, т.е. Z80 фактически может адресовать 128Кб, по 64Кб опкодов и данных. Другой вопрос что это практически нигде не используется. Единственный спектрум в котором эта возможность используется это ZX-NEXT и то в видеопроцессоре, там сигнал /M1 видеопроцессора заведен на адресную линию ПЗУ и соответственно имеется два независимых адресных пространства.

  9. Этот пользователь поблагодарил Keeper за это полезное сообщение:
    IanPo (01.06.2010)

  10. #8
    Moderator Аватар для CodeMaster
    Регистрация
    26.04.2009
    Адрес
    Воронеж
    Сообщений
    4,254
    Благодарностей: 590
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Keeper Посмотреть сообщение
    Повторюсь, у Z80 есть сигнал /M1 который позволяет аппаратно отделить опкоды от всего остального, т.е. Z80 фактически может адресовать 128Кб, по 64Кб опкодов и данных.
    Скорее всего именно про это я и читал.
    Рыцарь ордена Хламовников

    Мои магазины на Мешке: Retro store и Компьютерные комплектующие

  11. #9
    ZEK
    Гость

    По умолчанию

    Цитата Сообщение от Keeper Посмотреть сообщение
    овторюсь, у Z80 есть сигнал /M1 который позволяет аппаратно отделить опкоды от всего остального
    А току от него, опкод читаем из области с кодами, аргументы из области данных???

  12. #10
    Veteran Аватар для Vadim
    Регистрация
    24.07.2008
    Адрес
    Курган
    Сообщений
    1,811
    Благодарностей: 375
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Keeper Посмотреть сообщение
    т.е. Z80 фактически может адресовать 128Кб, по 64Кб опкодов и данных.
    Чушь. Полнейшая охинея!!!! Сигнал М1 что означает? Читать доки умеем? МАШИННЫЙ цикл. Что это? А? Выборка кода операции (КОП) и не более того! Следующие за машинным циклом циклы не стробируются М1!!!! Z80 сам по себе не может отличить коды команд от данных, память одна. 65536 ячеек адресного пространства. Отделяются они программистом, который заранее построит программу так, что бы проц не стал "выполнять" данные.

    Что за детский сад? Откуда столько глупостей пишите? Я в шоке просто!!! Читайте книги по Z80, Спектруму и не пишите бреда!

    Скрытый текст

    Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
    ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
    ZX Evolution Rev B.
    Color 48 + Beta Disk Interface +FDD+YM2149F
    Орель-08БК
    Pentagon-48 (недоссобранный кем-то)
    Pentagon-128 (полуубитый)
    Кворум-128 (в ремонте)
    Магик-05 (в ремонте)
    Robotron 1715
    Корвет ПК8020 и ПК8010
    Amstrad CPC 464
    Amstrad CPC 6128
    [свернуть]

Страница 1 из 5 12345 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Суперпаковщик данных BitBuster
    от Aprisobal в разделе Программирование
    Ответов: 35
    Последнее: 18.10.2010, 08:02
  2. В чем смысл разделых полей памяти
    от Gryphon в разделе Для начинающих
    Ответов: 31
    Последнее: 20.05.2010, 17:12
  3. База данных по модулям МПИ
    от KALDYH в разделе ДВК, УКНЦ
    Ответов: 0
    Последнее: 10.06.2009, 16:39
  4. Базы данных на Спекки
    от Ewgeny7 в разделе Софт
    Ответов: 9
    Последнее: 03.01.2008, 03:16

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •