Kod: |
DATA: EQU $6000 PROGRAM: EQU $6100 ORG DATA VALUE: DS.W 1 RESULT: DS.B 1 MASK: EQU $0001 ORG PROGRAM START: MOVE.W VALUE, D0 BEQ.S KRAJ MOVEQ #0, D2 LOOP: MOVE.W D0, D1 AND.W #MASK, D1 ADD.B D1, D2 LSR.W #1, D0 BNE.S LOOP KRAJ: MOVE.B D2, RESULT MOVE.B #9,D0 TRAP #15 ; halt simulator END START |
Kod: |
;Provjerite da li su tri niza ASCII znakova jednaka. ;Početne adrese stringova dane su 32 bitnim varijablama START1, START2, START3 s adresa $6000, $6004, $6008. ;Prvi bajt svakog stringa označava duljinu tog stringa u bajtovima. ;Ako su stringovi jednaki postavi varijablu MATCH s adrese $600C na 0, inače postavi na -1. DATA: EQU $6000 PROGRAM: EQU $6100 ORG DATA START1: DS.L 1 START2: DS.L 1 START3: DS.L 1 MATCH: DS.W 1 ORG PROGRAM START: MOVEA.L START1, A0 MOVEA.L START2, A1 MOVEA.L START3, A2 MOVEQ #-1, D1 MOVE.B (A0)+, D0 CMP.B (A1)+, D0 BNE.S KRAJ CMP.B (A2)+, D0 BNE.S KRAJ TST.B D0 BEQ.S ISTI SUBQ.W #1, D0 LOOP: CMPM.B (A0)+, (A1)+ DBNE D0, LOOP BNE.S KRAJ MOVEA.L START1, A0 MOVE.B (A0)+, D0 SUBQ.W #1, D0 LOOP1: CMPM.B (A0)+, (A2)+ DBNE D0, LOOP1 BNE.S KRAJ ISTI: MOVEQ #0, D1 KRAJ: MOVE.W D1, MATCH MOVE.B #9,D0 TRAP #15 ; halt simulator END START |
output generated using printer-friendly topic mod. Vremenska zona: GMT + 01:00.