Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- alloc(TypeName,256)
- alloc(ByteSize,4)
- alloc(ConvertRoutine,1024)
- alloc(ConvertBackRoutine,1024)
- alloc(UsesFloat,4)
- TypeName:
- db 'Float Big Endian',0
- ByteSize:
- dd 4
- UsesFloat:
- db 01
- ConvertRoutine:
- [32-bit]
- push ebp
- mov ebp,esp
- mov eax,[ebp+8] //place the address that contains the bytes into eax
- mov eax,[eax] //place the bytes into eax
- bswap eax
- pop ebp
- ret 4
- [/32-bit]
- [64-bit]
- //rcx=address of input
- mov eax,[rcx] //eax now contains the bytes 'input' pointed to
- bswap eax
- ret
- [/64-bit]
- ConvertBackRoutine:
- [32-bit]
- push ebp
- mov ebp,esp
- //[ebp+8]=input
- //[ebp+c]=address of output
- push eax
- push ebx
- mov eax,[ebp+8] //load the value into eax
- mov ebx,[ebp+c] //load the address into ebx
- bswap eax
- mov [ebx],eax //write the value into the address
- pop ebx
- pop eax
- pop ebp
- ret 8
- [/32-bit]
- [64-bit]
- //ecx=input
- //rdx=address of output
- bswap ecx
- mov [rdx],ecx //place the integer the 4 bytes pointed to by rdx
- ret
- [/64-bit]
Add Comment
Please, Sign In to add comment