Как вычислить целочисленный квадратный корень из числа в x86-64, не используя div? [Дубликат]

Группы, которые вас захватывают, могут использоваться позже в регулярном выражении для соответствия OR, вы можете использовать их в замещающей части регулярного выражения. Создание группы, не связанной с захватом, просто освобождает эту группу от использования по любой из этих причин.

Не захватывающие группы великолепны, если вы пытаетесь захватить много разных вещей, и есть группы, которые вы не хотите захватывать.

Это в значительной степени причина, по которой они существуют. Пока вы узнаете о группах, узнайте о Atomic Groups , они многое делают! Есть также группы поиска, но они немного сложнее и не используются так много.

Пример использования позже в регулярном выражении (обратная ссылка):

<([A-Z][A-Z0-9]*)\b[^>]*>.*? [Находит [x6]

([A-Z][A-Z0-9]*) - группа захвата (в этом случае это тэг)

В дальнейшем в регулярном выражении \1 будет соответствовать только тому же тексту, который был в первой группе (группа ([A-Z][A-Z0-9]*)) (в этом случае он соответствует концевому тегу).

19
задан nrz 4 March 2013 в 00:45
поделиться

5 ответов

Нет, это не совсем так.

EAX is the full 32-bit value
AX is the lower 16-bits
AL is the lower 8 bits
AH is the bits 8 through 15 (zero-based)

Edit:

Для полноты, в дополнение к вышесказанному, который был основан на 32-битном процессоре, 64- разрядные процессоры Intel / AMD имеют

RAX, which hold a 64-bit value, and where EAX is mapped to the lower 32 bits.
38
ответ дан 500 - Internal Server Error 27 August 2018 в 07:01
поделиться

Нет - AL - это 8 младших значащих бит AX. AX - это 16 наименее значимых бит EAX.

Возможно, с этим легче справиться, если мы начнем с 04030201h в eax. В этом случае AX будет содержать 0201h, AH wil содержит 02h, а AL будет содержать 01h.

4
ответ дан Jerry Coffin 27 August 2018 в 07:01
поделиться

AX - это 16 младших бит EAX. AH - 8 старших бит AX (т.е. бит 8-15 EAX), а AL - младший байт (бит 0-7) EAX, а также AX.

Пример (шестнадцатеричные цифры) :

EAX: 12 34 56 78
AX: 56 78
AH: 56
AL: 78
23
ответ дан phuclv 27 August 2018 в 07:01
поделиться

В приведенном ниже фрагменте рассматривается EAX с использованием GDB.

    (gdb) info register eax
    eax            0xaa55   43605
    (gdb) info register ax
    ax             0xaa55   -21931
    (gdb) info register ah
    ah             0xaa -86
    (gdb) info register al
    al             0x55 85
  1. EAX - полное 32-битное значение
  2. AX - младшее 16-битное значение
  3. AH - биты от 8 до 15
  4. AL - младшие 8 бит EAX / AX
4
ответ дан scanjee 27 August 2018 в 07:01
поделиться

no your ans Wrong

Выбор Al и Ah происходит от AX не от EAX

, например

EAX=0000 0000 0000 0000 0000 0000 0000 0111

Итак, если мы назовем AX it должен возвращать

0000 0000 0000 0111

, если мы вызываем AH, он должен возвращать

0000 0000

, и когда мы вызываем AL, он должен возвращать

0000 0111

Пример номер 2

EAX: 22 33 55 77
AX: 55 77
AH: 55    
AL: 77

пример 3

EAX: 1111 0000 0000 0000 0000 0000 0000 0111    
AX= 0000 0000 0000 0111
AH= 0000 0000
AL= 0000 0111  
5
ответ дан Tomas Pastircak 27 August 2018 в 07:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: