iLabel :: Dict -> Parser Word32
-- TODO: save msb (=sign) correctly...
-iLabel d@(aktadr,_) = do {i <- (iLit d); return $ (i - aktadr) .&. 0xffff}
+iLabel d@(aktadr,_) = do {i <- (iLit d); return $ ((i - aktadr)`div`4) .&. 0xffff}
iLit :: Dict -> Parser Word32
iLit (_,d) = do
iLit5 d = do i <- iLit d; return $ i .&. 0x001f
iLit12 d = do i <- iLit d; return $ i .&. 0x0fff
-iLit15 d = do i <- iLit d; return $ i .&. 0xefff
+iLit15 d = do i <- iLit d; return $ i .&. 0x7fff
iLit16 d = do i <- iLit d; return $ i .&. 0xffff
imm4 :: Parser String