Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* DO NOT MODIFY THIS --------------------------------------------*/
- .text
- .global AssemblyProgram
- AssemblyProgram:
- lea -40(%a7),%a7 /*Backing up data and address registers */
- movem.l %d2-%d7/%a2-%a5,(%a7)
- /*----------------------------------------------------------------*/
- /******************************************************************/
- /* General Information ********************************************/
- /* File Name: Lab1a.s *********************************************/
- /* Names of Students: _________________ and ____________________ **/
- /* Date: _________________ **/
- /* General Description: **/
- /* **/
- /******************************************************************/
- /*Write your program here******************************************/
- movea.l #0x43000000, %A2 /* pointers */
- movea.l #0x43100000, %A3
- /*counter*/
- loop:
- move.l (%A2),%D2
- cmpi.l #0x0D, %D2
- beq exit
- /*convert*/
- cmp.l #0x30, %D2
- blt error /* < 30*/
- cmp.l #0x39, %D2
- ble digits
- cmp.l #0x41, %D2
- blt error /* < 41*/
- cmp.l #0x46, %D2
- ble capitals
- cmp.l #0x61, %D2
- blt error /* < 61*/
- cmp.l #0x66, %D2
- ble lowers
- bra error
- capitals:
- move.l (%A2), %D3
- sub.l #0x37, %D3
- move.l %D3, (%A3)
- bra loop_once
- lowers:
- move.l (%A2), %D3
- sub.l #0x57, %D3
- move.l %D3, (%A3)
- bra loop_once
- digits:
- move.l (%A2), %D3
- sub.l #0x30, %D3
- move.l %D3, (%A3)
- bra loop_once
- error:
- move.l #0xFFFFFFFF, (%A3)
- bra loop_once
- loop_once:
- adda.l #4, %A2
- adda.l #4, %A3
- bra loop
- exit:
- /*End of program **************************************************/
- /* DO NOT MODIFY THIS --------------------------------------------*/
- movem.l (%a7),%d2-%d7/%a2-%a5 /*Restore data and address registers */
- lea 40(%a7),%a7
- rts
- /*----------------------------------------------------------------*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement