------------------------------------------------------------------------------- Object Addr code Symbol Mnemon Operand Comment ------------------------------------------------------------------------------- ;This is assignment 2 solution ;This program reads two 4-char words from the input and outputs th ;in the alphabetic order (consider the first two chars only) ; 0000 700010 BR main 0003 00 ch11: .BLOCK d#1 0004 00 ch12: .BLOCK d#1 0005 00 ch13: .BLOCK d#1 0006 00 ch14: .BLOCK d#1 0007 00 return: .BLOCK d#1 0008 00 ch21: .BLOCK d#1 0009 00 ch22: .BLOCK d#1 000A 00 ch23: .BLOCK d#1 000B 00 ch24: .BLOCK d#1 000C 0000 int21: .BLOCK d#2 000E 0000 int22: .BLOCK d#2 ; 0010 E00057 main: CHARO c#/W/,i ; cout << 'Word 1: ' 0013 E0006F CHARO c#/o/,i 0016 E00072 CHARO c#/r/,i 0019 E00064 CHARO c#/d/,i 001C E00020 CHARO c#/ /,i 001F E00031 CHARO c#/1/,i 0022 E0003A CHARO c#/:/,i 0025 E00020 CHARO c#/ /,i ; 0028 D90003 CHARI ch11,d ; cin >> ch11 >> ch12 >> ch13 >> ch14 002B D90004 CHARI ch12,d 002E D90005 CHARI ch13,d 0031 D90006 CHARI ch14,d 0034 D90007 CHARI return,d ; absorbs the return key ; 0037 E00057 CHARO c#/W/,i ; cout << 'Word 2: ' 003A E0006F CHARO c#/o/,i 003D E00072 CHARO c#/r/,i 0040 E00064 CHARO c#/d/,i 0043 E00020 CHARO c#/ /,i 0046 E00032 CHARO c#/2/,i 0049 E0003A CHARO c#/:/,i 004C E00020 CHARO c#/ /,i ; 004F D90008 CHARI ch21,d ; cin >> ch21 >> ch22 >> ch23 >> ch24 0052 D90009 CHARI ch22,d 0055 D9000A CHARI ch23,d 0058 D9000B CHARI ch24,d ; 005B 080000 LOADA h#0000,i ; convert ch21 into integer, and store 005E 510008 LDBYTA ch21,d 0061 11000C STOREA int21,d ; 0064 080000 LOADA h#0000,i ; convert ch22 into integer, and store 0067 510009 LDBYTA ch22,d 006A 11000E STOREA int22,d ; 006D 080000 if: LOADA h#0000,i 0070 510003 LDBYTA ch11,d ;if(ch11 < ch21) 0073 B9000C COMPA int21,d 0076 A0009A BRGT elseif1 0079 8800B8 BREQ else 007C E10003 CHARO ch11,d ; cout << ch11 << ch12 << ch13 << ch14 007F E10004 CHARO ch12,d 0082 E10005 CHARO ch13,d 0085 E10006 CHARO ch14,d 0088 E00020 CHARO c#/ /,i ; cout << ' ' << ch21 << ch22 << ch23 008B E10008 CHARO ch21,d 008E E10009 CHARO ch22,d 0091 E1000A CHARO ch23,d 0094 E1000B CHARO ch24,d 0097 7000FD BR endif ; 009A E10008 elseif1: CHARO ch21,d ;elseif(ch11 > ch21) then 009D E10009 CHARO ch22,d ;cout << ch21 << ch22 << ch23 << ch24 00A0 E1000A CHARO ch23,d 00A3 E1000B CHARO ch24,d 00A6 E00020 CHARO c#/ /,i 00A9 E10003 CHARO ch11,d ; cout <<' ' << ch11 << ch12 << ch13 < 00AC E10004 CHARO ch12,d 00AF E10005 CHARO ch13,d 00B2 E10006 CHARO ch14,d 00B5 7000FD BR endif ; 00B8 080000 else: LOADA h#0000,i 00BB 510004 LDBYTA ch12,d ;else 00BE B9000E COMPA int22,d ; if (ch12 > ch22) 00C1 7800E2 BRLE elseif2 00C4 E10008 CHARO ch21,d ;cout << ch21 << ch22 << ch23 << ch24 00C7 E10009 CHARO ch22,d 00CA E1000A CHARO ch23,d 00CD E1000B CHARO ch24,d 00D0 E00020 CHARO c#/ /,i 00D3 E10003 CHARO ch11,d ; cout <<' ' << ch11 << ch12 << ch13 < 00D6 E10004 CHARO ch12,d 00D9 E10005 CHARO ch13,d 00DC E10006 CHARO ch14,d 00DF 7000FD BR endif ; ; 00E2 E10003 elseif2: CHARO ch11,d ;elseif(ch12 <= ch22) then 00E5 E10004 CHARO ch12,d ; cout << ch11 << ch12 << ch13 << ch14 00E8 E10005 CHARO ch13,d 00EB E10006 CHARO ch14,d 00EE E00020 CHARO c#/ /,i ; cout << ' ' << ch21 << ch22 << ch23 00F1 E10008 CHARO ch21,d 00F4 E10009 CHARO ch22,d 00F7 E1000A CHARO ch23,d 00FA E1000B CHARO ch24,d ; 00FD 00 endif: STOP 00FE .END ------------------------------------------------------------------------------- Symbol table -------------------------------------- Symbol Value Symbol Value -------------------------------------- ch11 0003 ch12 0004 ch13 0005 ch14 0006 ch21 0008 ch22 0009 ch23 000A ch24 000B else 00B8 elseif1 009A elseif2 00E2 endif 00FD if 006D int21 000C int22 000E main 0010 return 0007 -------------------------------------- No errors. Successful assembly.