We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Dear all, I have one question about below de-assembly result...
C:0x0CE7 C2FC CLR 0xF8.4
I guess machine code "C2" means instruction "CLR",then what does 0xF8.4 mean ?
What I know is: if we see
C:0x0CE7 C23B CLR bVarA(0x27.3)
then we can get: 1. C2 means instruction CLR 2. 3B => 0x3B = 59d. 59d/8 = 7...3 Thus according to 8051 spec this means we try to clear bit variable located at 0x27h bit3 [REF] "In fact, the 128 bit variables occupy the 16 bytes of Internal RAM from 20h through 2Fh"(see www.8052.com/tutmemor.phtml Memory)
if we use 0xFC then we got: 0xFC = 252d. 252/8 = 0x1F...4 Thus I guess we try to clear bit variable loated at 0x3F bit4 !
But bit-addressable memory occupy 0x20~0x2F and thus I am confused that what does 0xF8.4 mean ?
Thanks in advance...
your clearing bit 4 in SFR register 0xF8
Always yo're freind.
Zeusti.
bit area 0x00 - 0x7F is mapped to address bytes 0x20 - 0x2F (16bytes x 8bits/byte = 128bits) bit area 0x80 - 0xFF is mapped to address byte SFRs at direct addresses 0x80, 0x88, 0x90, 0x98, 0xA0, 0xA8, 0xB0, 0xB8, 0xC0, 0xC8, 0xD0, 0xD8, 0xE0, 0xE8, 0xF0, 0xF8 for the so-called bit addressable SFRs. In this region the high order 5 bits point to the specific SFR and the lower 3 bits selects the specific bit in that register. eg: bit 0x20 is located at address byte 0x20 bit no 0 or 0x20.0 bit 0x21 is located at address byte 0x20 bit no 1 or 0x20.1 SFR region bit addressable registers bit 0x80 is located at address byte 0x80 bit no 0 or 0x80.0 or P0.0 bit 0x81 is located at address byte 0x80 bit no 1 or 0x80.1 or P0.1 this is just bit math on the 8051 acrhitecture.
So the assembly code CLR 0xF8.4 means to clear the bit in SFR region at 0xF8 byte address bit no 4 or 0xF8.4 (=0xFC)