Skip to content

Instantly share code, notes, and snippets.

@sinannar
Created December 25, 2011 17:35
Show Gist options
  • Save sinannar/1519531 to your computer and use it in GitHub Desktop.
Save sinannar/1519531 to your computer and use it in GitHub Desktop.
billab-hw-part3-30point
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