Описание тега zero-extension

0 ответов

Перемещает ли 32-битный ноль старшие биты в 64-битном регистре?

Возможный дубликат: Почему большинство инструкций x64 обнуляют верхнюю часть 32 регистра Если я сделаю movl something, %eax а также rax содержит что-то вроде 0x1234567812345678, будет ли он автоматически обнулять верхнюю половину rax?
14 ноя '12 в 09:53
1 ответ

Может ли "mov eax, 0x1" всегда использоваться вместо "mov rax, 0x1"?

При сборке этого кода с nasm: BITS 64 mov eax, 0x1 mov rax, 0x1 Я получаю этот вывод: b8 01 00 00 00 b8 01 00 00 00 который является кодом для mov eax, 0x1 повторяется дважды. Значит ли это, что mov rax, 0x1 всегда можно заменить на mov eax, 0x1 или…
06 авг '12 в 04:41
3 ответа

MASM Assembly перемещает 8-битный регистр в 16-битный регистр (т.е. mov cx, ch)

Я решил выучить ассемблерный язык программирования. Я использую это. В нижней части упражнения это найти ошибку в некоторых инструкциях, и одна из них mov cx, ch В этой теме я нашел похожий вопрос по SO, объясняющий, как этого добиться, но теперь я …
18 апр '15 в 11:38
1 ответ

x86_64 регистры rax/eax/ax/al перезаписывают полное содержимое регистра

Как широко рекламируется, современные процессоры x86_64 имеют 64-битные регистры, которые могут использоваться обратно совместимым образом в качестве 32-битных регистров, 16-битных регистров и даже 8-битных регистров, например: 0x1122334455667788 ==…
22 авг '14 в 20:57
1 ответ

Странные результаты с movzwl, %ax и отрицательными значениями

Хорошо, я имею дело со следующим фрагментом кода: push %ebp mov %esp,%ebp push %ebx mov 0x8(%ebp),%eax movzwl %ax,%edx Так что это ведет себя как ожидалось, когда дело касается положительных ценностей. Значение, скопированное в%edx, является последн…
06 сен '11 в 06:03
4 ответа

Почему инструкции x86-64 для 32-битных регистров обнуляют верхнюю часть полного 64-битного регистра?

В Руководстве по Intel x86-64 я прочитал Возможно, самый удивительный факт заключается в том, что такая инструкция, как MOV EAX, EBX автоматически обнуляет старшие 32 бита RAX регистр. Документация Intel (3.4.1.1 Регистры общего назначения в 64-битн…
2 ответа

Ноль / знак-расширение не нужны, зачем тогда инструкции для каждого типа размера?

Для x86 и x64 компиляторы генерируют одинаковое расширение ноль / знак MOVSX и MOVZX. Само по себе расширение не является бесплатным, но позволяет процессорам ускорять магические операции вне очереди. Но на RISC-V: Следовательно, преобразование межд…
04 окт '18 в 12:02
1 ответ

Сдвиг вправо и сдвиг влево на ассемблере

Если я хочу сказать, например, bx это число: shl bx,1 shr bx,1 Каким будет новое значение bx? Это остается тем же самым?
1 ответ

Как знак команды MOVSX расширяет ввод в этом случае?

У меня есть следующие разборки: [dest] = d5 cd e8 ca 68 movzx eax, [ebp+dest] # value of edx at this point is: F7FBB898 movsx edx, al # value of edx after this is: FFFFFFD5 # [ebp+var_E] stores 0 movzx eax, [ebp+var_E] movsx eax, al # eax = 0 here a…
1 ответ

Как изолировать элементы массива байтов и слов в 64-битном регистре

Я могу сказать, что это очень простая проблема, но я еще не понял ее. По сути, я просто хочу иметь возможность взять один элемент массива и добавить и вычесть из него некоторые числа с помощью регистров, а затем поместить результат в свою переменную…
30 окт '19 в 03:50
1 ответ

Почему movzbl используется в сборке при преобразовании unsigned char в подписанные типы данных?

Я изучаю перемещение данных (MOV) в сборке.Я попытался скомпилировать код, чтобы увидеть сборку на машине x86_64 Ubuntu 18.04: typedef unsigned char src_t; typedef xxx dst_t; dst_t cast(src_t *sp, dst_t *dp) { *dp = (dst_t)*sp; return *dp; } где src…
24 окт '19 в 13:10
0 ответов

Сборка x86 - mov и movzx из dword в qword?

Я тестирую следующий код: .intel_syntax noprefix .data .Ltest_data: .byte 0xEF, 0xBE, 0xAD, 0xDE, 0xBE, 0xBA, 0xED, 0xFE .text ... movzx rax, BYTE PTR[.Ltest_data] # 0xEF movzx rax, WORD PTR[.Ltest_data] # 0xBEEF movsx rax, DWORD PTR[.Ltest_data] # …
1 ответ

MOV от 8 бит до 16 бит регистра (от al до bx)

Как я могу исправить проблему с перемещением 8-битного значения в регистр BX (16 бит)? mov al, 10h mov bx, al за это я получаю: operands do not match: 16 bit and 8 bit register
0 ответов

когда вы используете инструкцию перемещения расширения на языке ассемблера

Я видел movw %dx (%eax) в моем учебнике, и мне интересно, зачем использовать movw скорее, чем movswl или movzwl Вот? Я думаю, что в %dx и 4 байта в (%eax) (для 32-битной машины), так что нужно расширение?
2 ответа

Перенос значения меньшего размера в регистр

Я сохранил однобайтовое значение 8 и я бы хотел переместить это в raxрегистр. Я сейчас делаю это сmovzx чтобы обнулить байт: .globl main main: push %rbp mov %rsp, %rbp movb $8, -1(%rbp) movzx -1(%rbp), %rax <-- here ... Каким образом movzx инстру…
13 авг '20 в 09:10
1 ответ

Проблема с сохранением значения из регистра в памяти, ARM 32 бит

Я новичок в ARM и ассемблере. Я попытался написать простую программу для хранения значений из регистра в памяти. string: .ascii "%d\012\000" .align 2 var1: .word 0 .align 4 .text .global main main: push {ip, lr} ldr r1, adr_var1 ldrb r1, [r1] mov r1…
0 ответов

Не понял команду movzx

Я не понял, что делает эта команда, например: "movzx eax, byte [rax]" Перед выполнением команды значение rax было: '0x7ffff253c523', а после этой строки оно стало '0x00000070', почему? Я действительно могу использовать какое-то объяснение или пример…
14 ноя '20 в 19:34
1 ответ

Вопрос по преобразованию сборки в c - что конкретно делает инструкция movzbl?

Я пытаюсь понять, что это в сборке будет означать в C: movq 16(%rdi), %rdx movq 16(%rsi), %rax movzbl (%rdx), %edx Я в основном не понимаю, что будет делать movzbl (%rdx), %edx. Благодаря!
16 окт '20 в 01:02
1 ответ

Добавление байта (из памяти) в регистр AX (MASM)

В настоящее время я пытаюсь выяснить, как добавить первый байт в памяти, на который указывает регистр указателя SI, к текущему содержимому регистра ax. Поэтому, если SI содержит какой-то адрес, а значения в памяти - 00 01 по этому адресу, я хочу доб…
0 ответов

тест случайных эффектов в GLMM или смешанной модели с нулевым завышением

Я рассматриваю несколько моделей, таких как GLM, GLMM, с нулевым раздуванием и с нулевым раздуванием, смешанных в данных подсчета.Вся моя работа была сделана в R .Предыдущие исследования подтвердили, что при анализе данных счетчика необходимо учитыв…