Представление стека (маразм)

Тема в разделе "WASM.HEAP", создана пользователем MetAlic, 30 сен 2009.

  1. MetAlic

    MetAlic New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2009
    Сообщения:
    111
    Вот я тут подумал, а как более грамотно рисовать стек? Вверху нулевые адреса или внизу?

    Ясное дело, стек растет в сторону уменьшения адресов, и это главное и пофиг как его крутить. Но все-таки интересно, как более логично его изображать:

    0000 ! ----------! ffff !--------!
    ! ! в ! !
    ! ! ^ в ! ! ! в
    ! ! ! е или же ! ! ! н
    FFFF !_________! ! р ! ! ! и
    х 0000 !______ ! \/ з


    Собственно, разницы никакой нет. Что так, что так, он все арвно будет в сторону меньших адресов.

    Но мы читаем слева направои сверзу вниз. По идее тогда более логична будет левая картинка. С другой стороны. Отчет каких-то веще мы начинаем снизу, например, дом. Самый нижний- 1-й этаж, выше - второй и т.д. То есть тут логичнее правая картинка.
    Собственно дело в том, что в книгах\статьях всегда рисуют по разному.

    С другой стороны можно сделать так:

    0000 ffff
    ___________________
    ! !
    ! !
    ! !
    !__________________!

    <---------------
    чего я ни разу не видел.
     
  2. SashaTalakin

    SashaTalakin New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2008
    Сообщения:
    261
    Вы хотите поговорить об этом?
     
  3. Dukales

    Dukales New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2009
    Сообщения:
    199
    хм, а кольцевой стек матсопроцессора по часовой стрелке крутится или против? оО
     
  4. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    MetAlic
    стек - это чтото вроде стопки листов. листы кладутся сверху.
    также есть понятия "вершина стека" и "дно стека"

    в x86 стек устроен так, что его вершина имеет меньшие адреса по сравнению с дном, но вершина все равно должна изображаться сверху
     
  5. MetAlic

    MetAlic New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2009
    Сообщения:
    111
    GoldFinch, я в курсе. Речь идет именно о представлении на рисунке)

    ТО есть ты считаешь, что картинка слева более логична.

    Но по идее:
    ТО есть вершина имеет адрес 0000. По идее, на мой взгляд "вершина" от слова "верх" - верхний, предел короче. А предел у нас же не 0000,а ffff. Более логично же это.То есть дно по идее должно быть 0000. То есть по идее картинка справа более логична.

    Программа начнет записываться снизу,с дна. С меньших адресов. А стек разместится вверху и будет расти "сверху вниз".
     
  6. IceT

    IceT IceT

    Публикаций:
    0
    Регистрация:
    13 авг 2009
    Сообщения:
    233
    Адрес:
    RU
    Ильфак Гульфанов, например, с тобой не согласен. Логичнее - может быть, но не удобнее.
     
  7. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Вы что? :dntknw:
    такие молодые, а уже академический маразм..
    зёбра белая в чёрную полосочку или чёрная в белую..
    модеры грохните этот топик, а то некоторые опять визжать будут про говнотрёп на васме,
    со ссылкой на этот топик :)
     
  8. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    моё виденье стэка :)
     
  9. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    2.624
    Адрес:
    ого..
    [/topic]

    ну в самом деле - всем и так ясно что все визуализируют себе стёк в виде чего то, куда что то кладётся, и берётся с того же места, куда кладётся - стопка карт, трубка с монетками, обойма, ит.д.
    зачем?


    но саша таталкин меня заставил поплакать "))
     
  10. Microedition

    Microedition Active Member

    Публикаций:
    0
    Регистрация:
    5 июн 2008
    Сообщения:
    814
    imho, самые наглядные примеры представления стека - стопка книг, блинов, вещей в чемодане...

    но мне более удобен этот вариант:
    Код (Text):
    1. ffff   !--------!
    2.        !           !
    3.        !           !   !    в
    4.        !           !   !    н
    5.        !           !   !    и
    6. 0000 !______ !  \/    з
     
  11. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    мне побоку, лишь бы по порядку все было и адреса рядом стояли. в олли очень красивое представление, с параметрами там, с фреймами...
     
  12. MetAlic

    MetAlic New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2009
    Сообщения:
    111
    дык правильно. Логичнее же. Лист берется только сверху, с вершины.
    Мы кладем на стол лист. Это лист номер 1. Сверху лист номер 2, потом 3...то есть внизу у нас листы с меньшими номерами(адресами), а вверху с бОльшими.
    То есть, если так сравнивать, то более логична правая картинка опять же.
     
  13. IceT

    IceT IceT

    Публикаций:
    0
    Регистрация:
    13 авг 2009
    Сообщения:
    233
    Адрес:
    RU
    Обе картинки описывают LIFO. А то, что вы кладете блины снизу-вверх - это только потому что закон всемирного тяготения))
     
  14. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Рисовать надо так, как память рисовали проектировщики Интела. Они были явно не европейцы, 0 у них был внизу справа :) Об этом свидетельствует "ненормальное" расположение байт в слове.
    Если нарисовать так, как я сказал - все встанет с ног на голову. Вот только мы привыкли к другому :)
    Код (Text):
    1.   fffff ........
    2.   ..............
    3.   ..............
    4.   ..............
    5.   ..............
    6.   ..............
    7.   .............0
     
  15. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Ну и про стек. Задумка была такая : все в стеке должно сдвигаться на одно слово и на освободившееся место писать новую величину. Но аппаратно большой стек не реализовать и сделали так, как есть сейчас.
     
  16. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    А кто? Евреи и арабы пишут справа налево, но строчки идут сверху-вниз, китайцы и японцы не очень давно писали иероглифами сверху-вниз, но столбики шли слева-направо (некоторые газеты и плакаты до сих пор так пишут), вроде бы древние греки, римляне, этрусски, лидийцы использовали "бустрофедон (от др.-греч. бык и поворачиваю) — способ письма, при котором направление письма чередуется в зависимости от чётности строки, т. е. если первая строка пишется справа налево, то вторая — слева направо, третья — снова справа налево и т. д. Это движение напоминает движение быка с плугом на поле. При перемене направления письма буквы писались зеркально." Фесткий диск в виде спирали, разворачивающейся из центра и содержащей 4—5 витка
     
  17. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Жаль. Придется поправить картинку :

    Код (Text):
    1.   ...........0
    2.   ............
    3.   ............
    4.   FFFF.....
    Но про стек - это точно. Не уверен была ли аппаратная реализация, но в какой-то старой книжке он так описывался.
     
  18. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    http://sravnika.narod.ru/lxx/lxx22.htm
    И тем не менее:
     
  19. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    Mikl___
    столбики иероглифов у японцев и китайцев идут как раз справа налево, и даже страницы в книгах тоже. :)
    (зы. насчет японцев - точно, насчет китайцев - не уверен)
     
  20. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    2.624
    Адрес:
    ого..
    японская письменность заимствована там же, где китайская.
    японский текст можно развернуть на -90° и спокойно читать на европейский лад.