Чегой-то? Оно обозначает, что из памяти по адресу, где лежит переменная num, будет взято 4 байта, независимо от того, каого размера был определен num. То есть, если num там определялся как 8-битное значение (db/byte), то это вовсе незначит, что значение будет расширено до 4 байт нулями или знаковым битом, а лишь значит, что num будет взят с последующими тремя мусорными байтами.
Dmitry_Milk, пожалуйста, дождитесь окончания статьи, найденные ошибки и опечатки публикуйте в этом топике. Заранее, спасибо!
https://wasm.in/threads/rukovodstvo...tektury-intel-x86-64.36832/page-2#post-451483 Если это руководство для новичков, тогда стоит заменить команду mov [rbx + 4], rdx на mov [rbx + 4], edx, чтобы не путать читателя несоответствием длин регистра и переменной.
Ну а комментарий-то? ; в память по адресу [RBX + 4] , т.е. в n2 помещаем значение из eDx. И к тому же, по моему мнению при Mov [RBX+4], RDX обнулится DW [RBX + 8] - что вообще некорректно. P.S. Если что я еще не дошел до x64. --- Сообщение объединено, 30 окт 2026 в 23:03 --- Да не "выгрести" все ошибки из статьи, если все откладывать. Код (ASM): .data ptrToSum qword offset sum ; указатель содержит адрес процедуры sum .code sum proc mov rax, rcx add rax, rdx ret sum endp main proc mov rcx, 22 mov rdx, 25 ;call ptrToSum ; ошибка ? если MASM-64 не безумно умный call [ptrToSum] ; вызываем процедуру через указатель ret main endp end Код (ASM): lea rax, sum mov ptrToSum, rax Ну раз уж выше указано на offset, то как альтернативный вариант? Код (ASM): mov ptrToSum, offset sum