In fact, the total population is not stored anywhere in memory as a variable but recomputed every time necessary: citypop*(citypop+1)/2 summed over all cities.
As weevil states, the displayed Civ pop is just a trick, padding the string "0,000" after the 16-bit integer.
Also, since CivDOS is purely a 16-bit game, I don't think it can support unsigned arithmetic...