Шить -
1) Скреплять, соединять нитью (края ткани, кожи) для изготовления чего-нибудь; заниматься изготовлением одежды, обуви как ремеслом.
2) Вышивать, делать нитками узор на чем-нибудь.
Зашивать -
1) Соединять, скреплять швом, устраняя отверстие, дыру.
Вышивать -
1) Посредством особого шитья делать на чем-л. узор, изображение и т.п.
2) Украшать узорным шитьем (ткань, кожу и т.п.).