The Portugal captain is a free agent after leaving Manchester United following a controversial interview in which he criticised the club.
Ronaldo will reportedly receive the biggest football salary in history at more than £177m per year.
The 37-year-old says he is “eager to experience a new football league in a different country”.
Ronaldo added: “I am fortunate that I have won everything I set out to win in European football and feel now that this is the right moment to share my experience in Asia.”
Al Nassr – nine-time Saudi Pro League champions – described the signing as “history in the making”.
The club said it would “inspire our league, nation and future generations, boys and girls to be the best version of themselves”.
In the summer, Ronaldo turned down a £305m deal to join another Saudi team – Al Hilal – because he was happy at United.
Earlier in November, the striker spoke out in an interview with Piers Morgan for TalkTV in which he said he felt “betrayed” by United, did not respect manager Erik ten Hag and was being forced out of the club.
Ronaldo, who scored 145 goals in 346 appearances for United, left Juventus to rejoin the Old Trafford club in August 2021 – 11 years after he departed to join Real Madrid.
He had just over seven months remaining on his £500,000-a-week contract with United but his immediate exit was “mutually agreed”.
A day after he left the club, he was banned for two domestic matches for knocking a phone out of an Everton fan’s hand after United’s defeat at Goodison Park in April.
He will serve the ban at domestic level with any new club – in England or abroad – although it does not apply at continental club level, such as the Champions League.
Ronaldo recently returned from playing for Portugal at the World Cup in Qatar, where he made history by becoming the first man to score at five different Fifa World Cups with his strike in his side’s opening win against Ghana.