answersLogoWhite

0


alloc(TypeName,256)


alloc(ByteSize,4)


alloc(ConvertRoutine,1024)


alloc(ConvertBackRoutine,1024)



TypeName:


db 'Flash *8 type',0



ByteSize:


dd 4



//The convert routine should hold a routine that converts the data to an nteger (in eax)


//function declared as: stdcall int ConvertRoutine(unsigned char *input);



//Note: Keep in mind that this routine can be called by multiple threads at the same time.



ConvertRoutine:


[32-bit]


push ebp


mov ebp,esp


push ecx


mov ecx,[ebp+8]


[/32-bit]



//at this point ecx contains the address where the bytes are stored



//put the bytes into the eax register


mov eax,[ecx] //second fun fact, addressing with 32-bit registers doesn't work in 64-bit, it becomes a 64-bit automatically (most of the time)


shr eax,3 //shift right by 3 bits (divide by 8)



//and now exit the routine


[64-bit]


ret


[/64-bit]


[32-bit]


pop ecx


pop ebp


ret 4


[/32-bit]



//The convert back routine should hold a routine that converts the given integer back to a row of bytes (e.g when the user wats to write a new value)


//function declared as: stdcall void ConvertBackRoutine(int i, unsigned char *output);


ConvertBackRoutine:


[32-bit]


push ebp


mov ebp,esp


push edx //save the registers


push ecx


mov edx,[ebp+0c]


mov ecx,[ebp+08]


[/32-bit]



//at this point edx contains the address to write the value to


//and ecx contains the value



push eax


push edx




mov edx,[edx] //edx now contains the original value


and edx,7 //only save the first 3 bits



mov eax,ecx //eax gets the user input value


shl eax,3 //shift left by 3 bits (multiply by 8)


or eax,edx //add the bits of the original value



pop edx


mov [edx],eax //write the new value into the old value


pop eax



[64-bit]


//everything is back to what it was, so exit


ret


[/64-bit]



[32-bit]


//cleanup first


pop ecx


pop edx


pop ebp


ret 8


[/32-bit]

User Avatar

Wiki User

12y ago

What else can I help you with?

Related Questions

What is the highest level on Dragon Fable?

it just keeps on going that is bull crap i used cheat engin and it would not work after level 60 and i tryed legit and the bar would not move EDIT by olekgamma: so dumb u cant cheat on mmo's with cheat engine i feel sad for u my level is 61


Did the 1961 Chevy Impala come with a 409 engine or could it be special ordered?

yes there were a few 409's made in 61 but they were rare as the 348 was the big engine back in 61.


What is engine capacity in liters?

There are roughly ( 61 cubic inches per litre )


What is the CID for a 5.4 liter engine?

Multiply your litre rating, in this case 5.4, by 61. This will give you your cid. 5.4 x 61 = 329.4 cid


How many liters is a 454 Chevrolet engine?

divide 454 by 61 and you get 7.4 liter


What year and engine size is 3789935?

This motor is a chevrolet 283 anywhere from 61-64


What cubic inch of a 5.3 liter engine in a Chevy truck?

323 cubic inches. 5.3 x 61=323.30 or 327 engine.


Is a 427 Chevrolet engine a 6.0 liter engine?

No; a 427 is approx. 7 liter. 1 liter is approx. 61 cubic inches.


How can you tell what size motor you have in your 1963 Thunderbird?

All 61-65 Thunderbirds came with the 390 FE engine. No other engine available from the factory.


What is the meaning of a 3 cylinder car engine?

There are cars that have engines with only ( 3 ) engine cylinders such as : The Chevrolet Metro with the 1.0 liter , 61 cubic inch , 3 cylinder engine ( 1999 )


What vehicles had a 3 cylinder engine?

One car was the 1999 Chevrolet Metro , you could get a 1.0 liter / 61 cubic inch , 3 cylinder engine


What is the fule pressure for a 2000 Chevy Blazer?

Key on Engine not running 55 - 61 psi. Engine running pressure should decrease 3-10 psi.