Почему некоторые sfr в ​​8051 являются адресно-битными? - PullRequest
0 голосов
/ 19 июня 2010

В соответствии с этим: http://www.8052.com/tutsfr.php, sfrs, чей адрес делится на 8, являются адресуемыми битами.Вы можете делать такие вещи, как SETB или CLR на них.Но не перекрывают ли они другие адреса памяти?Я имею в виду, например, P0 в 80 часов.Таким образом, P0.0 будет 80h, P0.1 будет 81h.Но 81h это адрес ИП.Разве они не пересекаются?

Ответы [ 2 ]

2 голосов
/ 10 июля 2010

Вы путаете битовый адрес с байтовым адресом. Они не перекрываются и не относятся к одному и тому же физическому местоположению. Инструкции, которые принимают битовые адреса (например, SETB), знают, как декодировать битовый адрес в байтовый адрес и номер бита. Адрес байта получается путем маскировки 3 младших битов в битовом адресе. Номер бита получается путем маскировки старших 5 бит.

например. битовый адрес 87h -> байтовый адрес 80h, бит № 7

0 голосов
/ 19 июня 2010

P0.0 и P0.1 относятся только к отдельным битам 8-битного регистра P0 (насколько я понимаю).

...