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

User Tag List

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

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

  1. #1
    Guru Аватар для CodeMaster
    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,226
    Спасибо Благодарностей отдано 
    140
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    182 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

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

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

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

  3. #2
    Master
    Регистрация
    31.03.2008
    Адрес
    Москва
    Сообщений
    725
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    75
    Поблагодарили
    34 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В Спеке тоже можно все вперемешку.
    Разделение кода и данных - просто хороший тон программирования.
    Если речь про архитектуру, то Гугли это:
    Архитектура фон Неймана
    Гарвардская архитектура
    ZXM-Phoenix rev.01 2048K, VG93 hw emulator

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

    По умолчанию

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

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

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

  5. #4
    Master
    Регистрация
    31.03.2008
    Адрес
    Москва
    Сообщений
    725
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    75
    Поблагодарили
    34 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Имеется ввиду то, что данные не могут быть исполняемыми
    Z80 аполитичен, что данные, что код: что подсунут на адрес исполнения, то и исполняет.
    ZXM-Phoenix rev.01 2048K, VG93 hw emulator

  6. #5
    Guru Аватар для Vadim
    Регистрация
    24.07.2008
    Адрес
    г. Курган
    Сообщений
    2,062
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    1 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
    Guru Аватар для CodeMaster
    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,226
    Спасибо Благодарностей отдано 
    140
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    182 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

    По умолчанию

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

  9. #8
    Guru Аватар для CodeMaster
    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,226
    Спасибо Благодарностей отдано 
    140
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    182 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  10. #9
    ZEK
    Гость

    По умолчанию

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

  11. #10
    Guru Аватар для Vadim
    Регистрация
    24.07.2008
    Адрес
    г. Курган
    Сообщений
    2,062
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    1 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. Базы данных на Спекки
    от Ewgeny7 в разделе Софт
    Ответов: 18
    Последнее: 06.06.2019, 17:30
  2. Суперпаковщик данных BitBuster
    от Aprisobal в разделе Программирование
    Ответов: 35
    Последнее: 18.10.2010, 08:02
  3. В чем смысл разделых полей памяти
    от Gryphon в разделе Для начинающих
    Ответов: 31
    Последнее: 20.05.2010, 18:12
  4. База данных по модулям МПИ
    от KALDYH в разделе ДВК, УКНЦ
    Ответов: 0
    Последнее: 10.06.2009, 17:39

Ваши права

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