Я недавно начал изучать сборку masm, я разбирал многие из моих программ, просто чтобы посмотреть. Я заметил, что когда вы используете __int16 (слово), его значение сначала копируется в eax, а затем в саму переменную, но с помощью int (dword / 32) оно копируется непосредственно в переменную: здесь разбирается код для обоих
int y = 5;
0040101E mov dword ptr [y],5
y += 7;
00401025 mov eax,dword ptr [y]
00401028 add eax,7
0040102B mov dword ptr [y],eax
__int16 x = 3;
0040102E mov eax,3
00401033 mov word ptr [x],ax
x += 6;
00401037 movsx eax,word ptr [x]
0040103B add eax,6
0040103E mov word ptr [x],ax
Я заметил, что __int16 имеет размер 16 ... это половина размера eax, поэтому он сначала помещается в eax, а затем только в топор x?
Кроме того, какой самый быстрый?
Есть ли хорошие сайты, которые вы бы порекомендовали?
Спасибо за ваш вклад