Настройка портов у меня в программе производится в функции Port_Init(). Код там совершенно аналогичем АСМовскому, вместо оператора "mov" используется "=" и это вся разница. У Гладштейна все разжевано и в ДШ тоже. Помимо них, скачайте с сайта Силлабов программу конфигуратора системы Config2. С помощью ее графического интерфейса порты настроить просто. Упомяну лишь, что в отличии от других МК, в C8051 имеется коммутатор ресурсов (XBar) и специальный регистр PхSKIP, где нужно поставить единицы в пинах отведенных по I/O, т.к. иначе они будут подключены к перферийным модулям. Вообще я очень советую начать с программы мигания светодиодом и управления ими от кнопок для хорошего понимания конфигурации портов. Посмотрите здесь мои демонстрашки.
http://mcs.uwsuper.edu/sb/327/Projects/2011/Demo/


