User Tag List

Страница 13 из 14 ПерваяПервая ... 91011121314 ПоследняяПоследняя
Показано с 121 по 130 из 140

Тема: Помогите новичку с ассемблером!

  1. #121

    Регистрация
    18.11.2009
    Адрес
    пгт.Малиновка
    Сообщений
    1,355
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    небольшой вопрос, на словах знаю, но обьясните алгоритмом что делает команда EXX

    ---------- Post added at 11:22 ---------- Previous post was at 11:19 ----------

    и верно, ли вот это :
    push hl
    push de
    push bc
    push af
    exx
    push hl
    push de
    push bc
    push af
    exx
    call куда-то
    exx
    pop af
    pop bc
    pop de
    pop hl
    exx
    pop af
    pop bc
    pop de
    pop hl
    _ _ __ ___ __ _____ _____________

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

  3. #122

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AER Посмотреть сообщение
    небольшой вопрос, на словах знаю, но обьясните алгоритмом что делает команда EXX
    Меняет между собой содержимое регистров bc,de,hl между основным и дополнительным набором регистров.

    Цитата Сообщение от AER Посмотреть сообщение
    и верно, ли вот это :
    Нет.
    1) Как сказано выше, exx не затрагивает пару af, а значит ее надо переключать явно
    2) еще есть ix,iy
    3) два лишних exx - догадайся какие

  4. #123

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Что же такое делает этот "call куда-то", что портит все значения регистров, и при том на выходе они нафиг не нужны?

    ---------- Post added at 12:24 ---------- Previous post was at 12:23 ----------

    теоретически конечно может такое быть, но на практике лучше поменьше push/pop и переключений на альтернативные регистры. Это ИМХО.

  5. #124

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    при том на выходе они нафиг не нужны
    Это ты с чего решил?

  6. #125

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если какое-то значение нужно несколько раз использовать в разных местах, то лучше его загонять в специально выделенный адрес памяти, а не в стек. Это и быстрее, и не нужно заморачиваться с очередью стека.

    ---------- Post added at 12:27 ---------- Previous post was at 12:27 ----------

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Сообщение от Andrew771
    при том на выходе они нафиг не нужны
    Это ты с чего решил?
    значения, полученные в процедуре, не нужны.

  7. #126

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Если какое-то значение нужно несколько раз использовать в разных местах, то лучше его загонять в специально выделенный адрес памяти, а не в стек. Это и быстрее, и не нужно заморачиваться с очередью стека.
    Это ты к чему?

    Аффтар, выдыхай!

    ---------- Post added at 12:28 ---------- Previous post was at 12:28 ----------

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    значения, полученные в процедуре не нужны.
    Предположим. А сам вызов процедуры, например, нужен.

  8. #127

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Это ты к чему?

    Аффтар, выдыхай!
    да, я чё-то в дебри полез. Просто, не помню такого случая в реале, чтобы все-все-все регистры нужно было сохранять перед входом в процедуру, а потом восстанавливать. Обычно A и HL как расходный материал, ничего долговременного в них нету. А что нужно часто и в разных местах, хранится в памяти, а не в стеке.
    Последний раз редактировалось Andrew771; 14.06.2012 в 12:43.

  9. #128

    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию



    ---------- Post added at 14:44 ---------- Previous post was at 14:41 ----------

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Просто, не помню такого случая в реале, чтобы все-все-все регистры нужно было сохранять перед входом в процедуру, а потом восстанавливать.
    заменить "куда-то" на play_music и добавить в конец ei:ret и получится самое оно!

  10. #129

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Просто, не помню такого случая в реале, чтобы все-все-все регистры нужно было сохранять перед входом в процедуру, а потом восстанавливать.
    А ты в реале обработчики прерываний использовал?

  11. #130

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    А ты в реале обработчики прерываний использовал?
    Пользовал. Там да, бывало. Альтернативщину только старался не трогать.

Страница 13 из 14 ПерваяПервая ... 91011121314 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Помогите новичку
    от Миша в разделе Разный софт
    Ответов: 54
    Последнее: 23.06.2011, 09:08
  2. Помогите разобраться с ассемблером
    от casperzx в разделе Программирование
    Ответов: 7
    Последнее: 07.09.2010, 22:27
  3. CP/M помогите новичку!
    от scooby-do в разделе Оси
    Ответов: 13
    Последнее: 12.05.2007, 19:41
  4. Помогите новичку.
    от tmp_online в разделе Программирование
    Ответов: 6
    Последнее: 03.03.2007, 11:36
  5. Помогите новичку!!!
    от Mister в разделе Несортированное железо
    Ответов: 19
    Последнее: 23.01.2007, 04:14

Ваши права

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