2

By its definition, movaps instruction can't get immediate value. It can only get another register or memory location. You can see it in its documentation. MOVAPS xmm1, xmm2/m128 Move packed single-precision floating-point values from xmm2/m128 to xmm1. MOVAPS xmm2/m128, xmm1 Move packed single-precision floating-point values from xmm1 to xmm2/m128. ...


2

Yes, this sounds perfectly normal. If the program did not use C++, you won't see thiscall with usage of ecx but just standard stdcall or cdecl which use only stack for passing arguments.


2

You are referring to the early 80s of the last century. The 8086 architecture used this way of addressing 20-bit physical memory, the then tremendous amount of 1 (One!) MByte, or "one million bytes of memory", as Intel calls it in /1/, p.2-7. These "logical addresses", as Intel called them in /1/, served primarily two purposes: One idea ...


1

Typically, a register's value being used in a function prior to being initializing it is a hint that it may be a parameter. Here we see ecx being used for the first time in this function: 00893c1e 8bf1 mov esi,ecx There are a few different standard calling conventions that pass parameters in the ecx register such as fastcall. C++ compilers ...


Only top voted, non community-wiki answers of a minimum length are eligible