there are three ways of doing it
1) 3 exclusive OR
2) 3 moves using an intermediate work variable
3) 1 load 1 move 1 store ( using a register instead of the work variable )
1. Google is your friend. Googling
swap memory xor find 1,770,000 hits and the very first one explains it clearly.
2. You cannot figure out how to use a temporary variable to hold one of the values, move the other to that variable, then move the temporary variable to the second variable? Are you sure you should be in IT at all if such simple logic escapes you?
3. Hint: fullwords in memory are, conveniently, the same size as registers. Knowing that and finding a solution to #2 will allow you to easily find this method as well.
Doing the prime problem in Assembler is tedious but not difficult. Assembler requires a lot of other code around the actual algorithm for control mechanisms. How long it would take depends upon your level of expertise with Assembler -- based upon what you've posted so far, count on weeks or months of effort to write and debug the code.