Описание тега 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-битн…
24 июн '12 в 11:40
2
ответа
Ноль / знак-расширение не нужны, зачем тогда инструкции для каждого типа размера?
Для x86 и x64 компиляторы генерируют одинаковое расширение ноль / знак MOVSX и MOVZX. Само по себе расширение не является бесплатным, но позволяет процессорам ускорять магические операции вне очереди. Но на RISC-V: Следовательно, преобразование межд…
04 окт '18 в 12:02
1
ответ
Сдвиг вправо и сдвиг влево на ассемблере
Если я хочу сказать, например, bx это число: shl bx,1 shr bx,1 Каким будет новое значение bx? Это остается тем же самым?
25 май '19 в 18:44
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…
02 апр '19 в 08:29
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] # …
30 авг '20 в 09:04
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
08 ноя '19 в 16:54
0
ответов
когда вы используете инструкцию перемещения расширения на языке ассемблера
Я видел movw %dx (%eax) в моем учебнике, и мне интересно, зачем использовать movw скорее, чем movswl или movzwl Вот? Я думаю, что в %dx и 4 байта в (%eax) (для 32-битной машины), так что нужно расширение?
06 авг '20 в 21:47
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…
14 апр '20 в 00:17
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 по этому адресу, я хочу доб…
06 июл '21 в 03:42
0
ответов
тест случайных эффектов в GLMM или смешанной модели с нулевым завышением
Я рассматриваю несколько моделей, таких как GLM, GLMM, с нулевым раздуванием и с нулевым раздуванием, смешанных в данных подсчета.Вся моя работа была сделана в R .Предыдущие исследования подтвердили, что при анализе данных счетчика необходимо учитыв…
02 июн '22 в 03:05