Байт и Бит адресуемые 8051

8051 SFR

'P0,SP, DPL & DPH' имеют свои байтовые адреса 80h,81h,82h,83h, поскольку P0 адресно-битный, P0.0 - P0.7 имеет битовые адреса 80h - 87h, Но как это будет отличать адреса P0.1(81h) & SP(81h), P0.2(82h) & DPL(82h), P0.3(83h) & DPH(83h)...?

1 ответ

Байтовые адреса и битовые адреса никогда не используются в одной и той же инструкции. Так что пока

mov SP, #5    ; mov 81h, #5
mov P0.1, C     ; setb 81h

оба имеют адрес 81h и оба записываются как movпервый собран как 0x75 0x81 0x5 а второй 0x91 0x81, Для процессора 0x75 и 0x91 означают совершенно разные вещи, а именно: move the the value in the 3rd byte of this instruction to the address in the second byte of this instruction, а также move the carry flag to the bit address in the second byte of this instruction, Ассемблер знает что mov addr, #imm а также mov bit, C нужно кодировать по-другому, и процессору действительно все равно, как они написаны, потому что он вообще не видит исходный код.

Другие вопросы по тегам