A key challenge in cognitive radio networks (CRNs) is how to adaptively and efficiently select a route and assign resources along that route according to the surrounding environment. In this work, we propose a distributed routing protocol for mobile CRNs, in which path selection and resource allocation (e.g., spectrum, transmission power, and transmission rate) are determined by receivers. Because this process is done on perpacket and per- hop basis, the proposed protocol can efficiently adapt to spectrum dynamics and node mobility. In addition, spectrum efficiency is increased through dynamic spectrum allocation and transmission power control. Simulation results show that delivery ratio and throughput are dramatically improved with our routing protocol.