User Tag List

Показано с 1 по 10 из 125

Тема: LLVM Backend для Z80

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    17.01.2006
    Адрес
    Тамбов
    Сообщений
    97
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В llvm есть такие операции как усечение значений и расширение. Например усечением 16 битного слова будет являться 8 бит, т.е. 1 байт. Это легко реализуется, например, усеченным значением регистра HL будет регистр L.
    Теперь о расширении значений. Всего имеется 3 вида расширений:
    1. zext - расширение с обнулением старшей части. Например расширение регистра A в регистра HL будет выглядеть так:
    Код:
                   LD L,A
                   LD H,#00
    2. anyext - расширение с неопределенной старшей частью:
    Код:
                   LD L,A
    3. sext - знаковое расширение. Т.е. если 7 бит равен единице, то старшая часть заполняется единицами. Что-то вроде этого
    Код:
                   LD L,A
                   LD H,#00
                   BIT 7,A
                   JR Z,NO_SIGN
                   LD H,#FF
    NO_SIGN:
    Пример написал для большего понимания. Посоветуйте как эффективнее и короче можно сделать знаковое расширение.
    Последний раз редактировалось EARL; 21.10.2012 в 13:57.

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

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

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

Ваши права

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