я имею следующие сборочные линии:операции МУЛА в сборке
...
MOV ECX, 0x36EE80
MOV EDX, 0x95217CB1
MUL EDX
SHR EDX, 0x15
MOV DWORD PTR SS:[EBP-0x3C8], EDX
....
....
Так, в http://en.wikibooks.org/wiki/X86_Assembly/Arithmetic Я прочитал, что значение операнда MUL (в этом случае EDX) умножаются на значении в EAX. Итак, в EAX у меня значение 0330FD3B (десятичное: 53542203). В EDX у меня есть значение 95217CB1 (в десятичной системе: 2501999793). Но после операции MUL у меня в EDX значение 01DBEE41 (в десятичной системе: 31190593). Но это должно быть неправильно, потому что 53542203 * 2501999793 не 31190593 ...
Может кто-нибудь объяснить мне это?
Если это касается сборки x86, вы должны пометить ее как таковой. – lurker
Когда вы умножаете EDX на EAX, результат получается в 'EDX: EAX'. '0330FD3B' *' 95217CB1' является '1DBEE41EB22A9CB', поэтому' EDX' будет '1DBEE41', а EAX будет« EB22A9CB », образуя весь ответ. – lurker
Прочтите ссылку, которую вы разместили более тщательно, OP :) –