Yesterday I spent over five hours in lab working on four different projects in assembly language. The software my class uses for writing assembly is Freescale's CodeWarrior 12. I installed a freely downloaded copy on my Windows laptop so I can code at home. This works wonderfully in the IDE's Full Circuit Simulation (FCS) mode; however, FCS does not simulate the evaluation board we use (shown below). It will not allow access to hardware ports or even allow faking of the ports. For example, if you wish to output a one-byte value to the LEDs, you send the value to port $0248; FCS will simply not allow any data to go to $0248. You can go to $0248 to see the value at the address but you cannot edit it in FCS.
If CodeWarrior is set to our evaluation board, it requires the evaluation board be physically present. Otherwise effectively nothing can done. This results in trying to write everything in FCS and using substitute ports since the actual hardware ports are verboten. I sometimes write my hardware assignments this way then duplicate the code, set it for evaluation board then go back through it to tediously revert every substitute port to the required hardware port.
Years ago I bought a license for Metrowerks' CodeWarrior, which was the alleged top IDE for programming for Macintosh. I did very little with it.