MUL r32 в x64

Тема в разделе "WASM.X64", создана пользователем ormoulu, 18 дек 2022.

  1. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Так котоны, объясните где я туплю :scratch_one-s_head:Разве обнулиться должна не младшая часть?


    0:000> r
    rax=000000000000243a rbx=0000000000000000 rcx=000000000000d87b
    rdx=dddddddddddddddd rsi=0000000000000000 rdi=0000000000000000
    rip=00007ff66acc100a rsp=0000004ef35bf958 rbp=0000000000000000
    r8=0000004ef361e000 r9=00007ff66acc1000 r10=0000000000000000
    r11=0000000000000000 r12=0000000000000000 r13=0000000000000000
    r14=0000000000000000 r15=0000000000000000
    iopl=0 nv up ei pl nz na po nc
    cs=0033 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000206
    test64+0x100a:
    00007ff6`6acc100a f7e1 mul eax,ecx
    0:000> t
    test64+0x100c:
    00007ff6`6acc100c cc int 3
    0:000> r
    rax=000000001ea257de rbx=0000000000000000 rcx=000000000000d87b
    rdx=0000000000000000 rsi=0000000000000000 rdi=0000000000000000
    rip=00007ff66acc100c rsp=0000004ef35bf958 rbp=0000000000000000
    r8=0000004ef361e000 r9=00007ff66acc1000 r10=0000000000000000
    r11=0000000000000000 r12=0000000000000000 r13=0000000000000000
    r14=0000000000000000 r15=0000000000000000

    --- Сообщение объединено, 18 дек 2022 ---
    Можете не отвечать :crazy:

    В x86-64 запись в 32-разрядный регистр автоматически zero extends в старшие 32 разряда. О сколько нам открытий чудных...
    Но если кто процитирует конкретные пункты в Intel/AMD мануалах по этому поводу, мои благодарности заранее.
     
  2. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Именно знак? Интернеты пишут про zero extend.
     
  3. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    860
    Intel® 64 and IA-32 Architectures Software Developer’s Manual
    (3.4.1.1 General-Purpose Registers in 64-Bit Mode):
     
    ormoulu, Mikl___ и q2e74 нравится это.
  4. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Благодарю.

    Не слишком то они пытались обратить внимание на столь неочевидную особенность. При этом в описании самих опкодов mov, mul и т.д. это вроде бы не упоминается?
     
  5. aa_dav

    aa_dav Active Member

    Публикаций:
    0
    Регистрация:
    24 дек 2008
    Сообщения:
    439
    Не упоминается потому что пришлось бы в тысяче мест упоминать одно и то же.
    Поэтому эта особенность обозначена в особенностях архитектуры в начале книги и особо потом не упоминается.
    Но это крайне важная особенность влияющая на большую часть инструкций, поэтому не знать её нельзя тут.
     
  6. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Ну так-то там несколько томов крайне важных особенностей, которые "тут" нельзя не знать :grin:
     
  7. R81...

    R81... Active Member

    Публикаций:
    0
    Регистрация:
    1 фев 2020
    Сообщения:
    141
    Не работал с 64 "MUL r32 в x64", а в x32 Mul r32 команда беззнаковая, со всеми вытекающими.
     
    Последнее редактирование: 19 дек 2022