Updated asm blocks so that they are not duplicated

Warning large refactor.  Printf works but getchar does not
Changed Expression