Created
December 25, 2011 17:35
-
-
Save sinannar/1519531 to your computer and use it in GitHub Desktop.
billab-hw-part3-30point
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
load rf,10 | |
load rf,10 | |
load rf,10 | |
load rf,10 | |
load r1,[pay] | |
load r2,[payda] | |
load r3,0 ;bolum | |
load r4,11111111b ;XOR necessarities | |
load r5,00000001b | |
load r0,0 | |
load r6,1 | |
basla: | |
jmpEQ r2=r0,paydaSifir ;if payda=0 print error | |
jmp devam ;continue | |
devam: | |
xor r4,r4,r2 ;XOR process | |
addi r4,r4,r5 | |
condCheck: | |
move r0,r2 | |
jmpLe r1<=r0,sonucSifir ;check the sum if its zero | |
jmp bolme | |
bolme: ;normal DIVISION | |
addi r1,r1,r4 | |
addi r3,r3,r6 | |
jmpLe r1<=r0,sonucVar | |
jmp bolme | |
sonucVar: ;cause of <=,we should check equality end of process | |
jmpEq r1=r0,addOne ;if its true,add 1 to result | |
jmp noAdd ;if not no add | |
addOne: | |
addi r3,r3,r6 ;adding | |
noAdd: | |
jmp printOnScreen ;non-adding | |
sonucSifir: | |
load r3,0 ;result is zero | |
jmp printOnScreen ;printing screen | |
printOnScreen: | |
load r0,9 | |
jmpLe r3<=r0,printAble ;checking printability | |
jmp canNotPrintAble | |
printAble: ;printing result with an array | |
MOVE RE,R3 | |
load R1,txtcn ;the start of the string | |
load R2,1 ;increase step | |
load R0,0 ;string-terminator | |
NextChar0: | |
load RF,[R1] ;get character and print it on screen | |
addi R1,R1,R2 ;increase address | |
jmpEQ RF=R0,Ready0 ;when string-terminator, then ready | |
jmp NextChar0 ;next character | |
Ready0: | |
load ra,48 | |
addi rf,r3,ra | |
jmp Ready | |
canNotPrintAble: ;printing an error message | |
load R1,txtcnnt ;the start of the string | |
load R2,1 ;increase step | |
load R0,0 ;string-terminator | |
NextChar1: | |
load RF,[R1] ;get character and print it on screen | |
addi R1,R1,R2 ;increase address | |
jmpEQ RF=R0,Ready1 ;when string-terminator, then ready | |
jmp NextChar1 ;next character | |
Ready1: | |
jmp Ready | |
paydaSifir: ;printing an error message | |
load R1,dvdbz ;the start of the string | |
load R2,1 ;increase step | |
load R0,0 ;string-terminator | |
NextChar2: | |
load RF,[R1] ;get character and print it on screen | |
addi R1,R1,R2 ;increase address | |
jmpEQ RF=R0,Ready2 ;when string-terminator, then ready | |
jmp NextChar2 ;next character | |
Ready2: | |
jmp Ready | |
Ready: | |
jmp hltt | |
hltt: | |
HALT | |
pay:db 12 | |
payda:db 5 | |
dvdbz: db "err:dvsn by zero",10,0 | |
txtcn: db "rslt=",0 | |
txtcnnt: db "warning",10,"cannot show rslt",10,0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment