First, you should be running ALU-nostat.tst before attempting ALU.tst. ALU-nostat test only the arithmetic part of the ALU and ignores the 'zr' and 'ng' status outputs. After ALU-nostat is passing, then run ALU.tst.
You need to look at the 'Output' and 'Compare' views and see what the difference is between the Compare (correct result) and Output (your part's result) values. This should give you clues to what is being miscomputed.
After a compare failure, you can single step to force the next line of the test to run. This can give you additional clues about what is wrong.
When asking for help in future, it will be most helpful if you include the compare line and the output line in your post. You do not need to retype them; they are in the files ALU.cmp and ALU.out so you can easily copy them into your post (or ALU-nostat.cmp and .out if that is the test you are running).
If you can't find your problem, you may email me your code and I'll take a look at it and offer hints.
--Mark