Не могу понять алгоритм вычисления

movsx eax,byte ptr ds:[r9+2]                     
movsx ecx,byte ptr ds:[r9+3]                      
add r11d,1                                          
add ecx,eax                                         
movsx eax,byte ptr ds:[r9+1]                        
add rbx,4                                           
add ecx,eax                                         
movsx eax,byte ptr ds:[r9]                         
add r9,5                                            
 lea ecx,qword ptr ds:[rcx+rax-C0]                   
 mov dword ptr ds:[rbx-4],ecx                        
 add r10d,ecx      

берется код 4 и 3 символа блока, складывается, потом добавляется код 2 символа, первого и всё это помещается в ecx командой lea ecx,qword ptr ds:[rcx+rax-C0], только вот операция происходит не арифметическая а какая-то сдвиговая что ли, т.е. 30+30 - 5 (например) не равно 55. Уже прочитал все что связанно с lea на coderoad, но так и не понял можно ли по полкам разложить lea ecx,qword ptr ds:[rcx+rax-C0]?


Ответы (0 шт):