I want to write code on graphic memory in 64 bit assembly like 0b800 ram address in 16 bit system and after a lot searching on internet i found that i must have ml64 assembler, but i can't find it. Also i can write assembly code in 64 bit but i don't know how can i directly write on graphic memory.
I'm not sure that ml64 is available any longer from Microsoft. An alternative is yasm, which can assemble 64-bit code. You access the graphics memory as you would in 32-bit, by writing to address 0x0B800; but you will need to be running the code in supervisor mode (e.g. a device driver) otherwise you will be forbidden to access that memory. In Windows you shouldn't really try to access the graphics memory directly; use the Windwos functions instead.
You might also like to look at this site which has other good resources for 32- and 64-bit assembler programming on Windows.