• dmk © (05.02.18 19:09) [0]
    Пытаюсь написать постфикс h после шестнадцатиричного значения:

    asm
     mov eax, 437F0000h //<- Компилятор принимает h
     movd xmm1, eax
     shufps xmm1, xmm1, 00b
     mov eax, $C0000408 //<- Компилятор НЕ принимает h !!!
    end;


    Как такое может быть?
  • Styx © (05.02.18 23:38) [1]
    Так а доллар принимает? Вы пытаетесь поставить и $, и h? Для обозначения шестнадцатеричной системы Дельфи допускает один из этих символов, но не оба сразу.
  • dmk © (06.02.18 00:29) [2]
    В первом случае компилятор принял h, а во втором нет.
    Мне больше h нравится вместо доллара, но компилятор чего то через 3 строчки заупрямился.
    Пишет: [dcc64 Error] LightModels.pas(115): E2003 Undeclared identifier: 'C0000408h'.
    А с долларом норм. Это же просто число. Странно.
  • dmk © (06.02.18 00:31) [3]
    Так принимает: mov eax, 3221226504
    Так принимает: mov eax, $C0000408
    Так не принимает: mov eax, C0000408h
  • Styx © (06.02.18 00:37) [4]
    Numeric constants must start with one of the digits 0 through 9 or the $ character. When you write a hexadecimal constant using the H suffix, an extra zero is required in front of the number if the first significant digit is one of the digits A through F. For example, 0BAD4H and $BAD4 are hexadecimal constants, but BAD4H is an identifier because it starts with a letter.

    http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Assembly_Expressions
  • KilkennyCat © (06.02.18 00:40) [5]

    > [dcc64 Error] LightModels.pas(115): E2003 Undeclared identifier: 'C0000408h'.

    это надо было писать в самом начале.
    http://segfault.kiev.ua/smart-questions-ru.html
  • Rouse_ © (06.02.18 02:30) [6]
    Все принимает в обоих видах
  • Германн © (06.02.18 02:58) [7]

    > Так не принимает:
    > ?
    > 1
    >  
    > mov eax, C0000408h

    А так принимает?
    mov eax, 0C0000408h

  • dmk © (06.02.18 04:30) [8]
    Это случай из [4].

    >А так принимает?
    >mov eax, 0C0000408h
    Угу. Так принимает.
  • dmk © (06.02.18 04:33) [9]
    Rouse_ ©   (06.02.18 02:30) [6]
    На чем пишите?
  • Германн © (07.02.18 02:29) [10]
    Угу. Так принимает.
    Что и требовалось доказать. Любое число в (любом, имею наглость заявить) intell'овском ассемблере не может начинаться с символа отличного от цифр. И не важно что это число представляет собой. Значение или адрес.
  • dmk © (07.02.18 04:52) [11]
    >intell'овском ассемблере
    Это Embarcadero/Borland ассемблер. Думаю на другом такой вариант вполне прокатит.
  • kilkennycat © (07.02.18 05:29) [12]

    > И не важно что это число представляет собой. Значение или  адрес.

    адрес - это значение )
    то есть, число - это число. остальное - лишнее.
Есть новые Нет новых   [134427   +35][b:0][p:0.001]