dlr R1 : rg(16)
dlr R2 : rg(16)
dlr R3 : rg(16) //wynik
dlr S1 : sm(16)
dlr S2 : sm(16)
dlr L1 : l(8)
dlr l2 : l(8)
dlr l3 : l(8)
dlr l4 : l(8)
dlr l5 : l(8)
dlr T1 : t
DLR ZN: t
DLR ZN2: t
link S2(in1):R1(out)
link R1(in):S2(out)
link R2(in):S2(out)
link S1(in1) : R3(out)
link S1(in2) : R2(out)
link R3(in) : S1(out)
link T1(in) : R1(cl)
link R1(cr) : R3(cl)
accept R1:00000010b //UD
accept R2:11110111b //UD
accept L2:8
accept L3:8
accept L4:8
accept L5:8
start
{ and R1,10000000b; jz S2,end }
{ and R1,11111111b; move R1 }
{ nxor R1,0; move R1 }
{ add R1,1,0; move R1 }
{ MOVE ZN,1}
zera{ sll R1 ; move t1; dec l2 }
{ jnz l2,zera }
zera2{ sr R1 ; move t1; dec l3 }
{ jnz l3,zera2 }
end { jmp start2}
start2
{ and R2,10000000b; jz S2,end2 }
{ and R2,11111111b; move R2 }
{ nxor R2,0; move R2 }
{ MOVE ZN2,1}
zera3{ sll R2 ; move t1; dec l4 }
{ jnz l4,zera3 }
zera4{ sr R2 ; move t1; dec l5 }
{ jnz l5,zera4 }
end2 { jmp start3}
{ add R2,00000001b; move R2 }
//mnozenie
accept L1 : 16
start3 { sll R3 ; sl R1 ; move t1; dec l1 }
{ jz T1,label3 }
{ add R3,R2 ; move R3 }
label3 { jnz l1,start3 }
end3 { jmp end3 }