Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *-----------------------------------------------------------
- * Title : Smalamálsverkefni 1
- * Written by : Guðmundur Óli Norland
- * Date : 09/10/2018
- * Description: Tölvuhögun
- *-----------------------------------------------------------
- START ORG $1000
- READ: LEA enterMsg,A1 hlöðum upphafsskilaboðunum í registerið A1
- MOVE.B #14,D0
- TRAP #15 keyrum I/O skipun 14 (birtir streng)
- LEA NAME,A1 geymum inputið í "name"
- MOVE.B #2,D0 keyrum I/O skipun 2, les inn streng frá notanda
- TRAP #15
- MOVE.B D1,D4
- CHECK: CMP D4,D2 D4 geymir lengd strengsins, loopum þangað til að teljarinn hefur náð lengdinni
- BEQ DISP ef við náum hingað er strengurinn á réttu formi
- MOVE.B (A1),D1 færum stafinn á þessu svæði í D1
- CMP #$20,D1 bil eru leyfileg
- BEQ SPACE
- CMP #$41,D1 ef stafurinn hefur minna hexagildi en A fæst alltaf villa
- BLO ERROR
- CMP #$7A,D1 stafurinn stærra hexagildi en z fæst alltaf villa
- BHI ERROR
- CMP #0,D7 0 í D7 -> hástafur, 1 í D7 -> lástafur
- BEQ HIGH
- BHI LOW
- INCR: ADD #1,D2 bætum við teljarann
- MOVE.B (A1),D6 geymum síðasta staf
- ADD #1,A1 bendum á svæðið fyrir ofan
- BSR CHECK
- SPACE: CMP #$20,D6 skoðum hvort síðasti stafur var líka bil, viljum það ekki
- BEQ ERROR
- MOVE.B #0,D7 setjum 0 til að fá hástaf á eftir bili
- MOVE.B #1,D5 þurfum allavega eitt bil til að geta verið með fullt nafn
- BSR INCR
- HIGH: CMP #$5A,D1 ascii gildið verður að vera minna en gildi Z
- BHI ERROR
- MOVE.B #1,D7 setjum 1 til að fá lástaf á eftir hástafi
- BSR INCR
- LOW: CMP #$61,D1 ascii gildið verður að vera hærra en gildi a
- BLO ERROR
- BSR INCR
- ERROR: LEA errorMsg,A1 prentum villuskilaboð og hættum
- MOVE.B #14,D0
- TRAP #15
- BSR END
- DISP: CMP #0,D5 ef það fékkst ekkert bil erum við ekki með fullt nafn
- BEQ ERROR
- CMP #7,D4 gerum ráð fyrir að nafn þurfi að vera að minnsta kosti 3 stafir
- BLO ERROR
- LEA correctMsg,A1 fékkst bil og á réttu formi svo við birtum skilaboð um það
- MOVE.B #14,D0
- TRAP #15
- LEA NAME,A1 birtum nafnið
- MOVE.B #1,D0
- TRAP #15
- LEA lengthMsg,A1 birtum lengdartexta
- MOVE.B #14,D0
- TRAP #15
- MOVE.B D4,D1 birtum lengdina
- MOVE.B #3,D0
- TRAP #15
- BSR END
- END SIMHALT
- CR EQU $0D carriage return
- LF EQU $0A line feed
- NAME DS.B 64
- enterMsg DC.B 'Sláðu inn nafnið þitt: ',0 upphafsskilaboð
- errorMsg DC.B CR,LF,'Nafn er ekki á réttu formi',CR,LF,0 villuskilaboð
- correctMsg DC.B CR,LF,'Nafn er: ',0
- lengthMsg DC.B ', lengd er: ',0
- END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement