For Emacs: -*- coding: utf-8 -*- IN1020 Løsningsforslag til øvelsesoppgaver 8.-12.10.2018 Oppgave 1 INP // Les a BRZ skriv // Hvis a==0, // skriv ut 0. BRP pos // LDA v1neg // a<0, så BRA skriv // skriv -1. pos LDA v1 // a>0, så skriv 1. skriv OUT // Skriv svaret HLT // og stopp. v1 DAT 1 // Konstant 1 v1neg DAT -1 // Konstant -1 Oppgave 2 Det er flere måter å ordne dette på, for eksempel ved å lagre tekstens lengde. Her har jeg valgt å legge verdien 0 bakerst i teksten. (Programmeringsspråket C gjør det samme.) Skriv LDA txt // Hent neste tegn. BRZ Ferdig // Ferdig hvis det er 0. OTC // Skriv ut tegnet. LDA Skriv // Endre instruksjonen ADD v1 // Skriv til å angi STA Skriv // neste tegn. BRA Skriv // Gjenta løkken. Ferdig HLT // Ferdig. v1 DAT 1 // Konstant 1 txt DAT 86 // 'V' DAT 101 // 'e' DAT 108 // 'l' DAT 107 // 'k' DAT 111 // 'o' DAT 109 // 'm' DAT 109 // 'm' DAT 101 // 'e' DAT 110 // 'n' DAT 33 // '!' DAT 0 // Slutt på tekst Oppgave 3 Hvis vi har glemt COB/HLT, vil vi sannsynligvis komme til en ubrukt celle i minnet der det i så fall ligger verdien 0. I så fall stopper programmet. Oppgave 4 INP // Les STA a // a. INP // Les STA b // b. Loekke LDA a // Regn ut a SUB b // - b. BRP OK // Hvis svaret er <0 BRA Ferdig // er vi ferdig. OK STA a // Ellers lagre ny a. LDA svar // Øk ADD v1 // svar med 1. STA svar // BRA Loekke // Gjenta løkken. Ferdig LDA svar // Skriv ut OUT // svaret. HLT // Stopp. a DAT 0 // Variabel a. b DAT 0 // Variabel b. svar DAT 0 // Variabel svar starter på 0. v1 DAT 1 // Konstant 1