2 bytes or 16 bits
The address of the last byte in a 512 mega byte memory, expressed as a decimal number, is 536,870,911.
127
In a 1GB memory space, the total number of bytes is (1 \times 2^{30} = 1,073,741,824) bytes. Since memory addresses typically start at 0, the memory address of the last byte would be (1,073,741,824 - 1 = 1,073,741,823). Therefore, the memory address of the last byte of a 1GB memory is 1,073,741,823.
If a 4k segment is stored at address 2000H, the last address will be 2FFFH.
The starting address of an 8K byte memory chip that ends at FFFFH is E000H. 8K is 8192 (8 * 1024) which is 2000H. Subtract 2000H from FFFFH, and add 1, and you get E000H.
The true answer is yes and no Yes: in binary coded decimal and hexadecimal each byte is 4 bits long; in octal each byte is three bits long. No: in true binary theoretically there is no "last bit".
"Little Endian" means that the lower-order byte of the number is stored in memory at the lowest address, and the high-order byte at the highest address. For example, a 4 byte Integer Byte3 Byte2 Byte1 Byte0 will be arranged in memory as follows: Base Address+0 Byte0 Base Address+1 Byte1 Base Address+2 Byte2 Base Address+3 Byte3 Intel processors (those used in PC's) use "Little Endian" byte order. "Big Endian" means that the high-order byte of the number is stored in memory at the lowest address, and the low-order byte at the highest address. The same 4 byte integer would be stored as: Base Address+0 Byte3 Base Address+1 Byte2 Base Address+2 Byte1 Base Address+3 Byte0 Motorola processors (those used in Mac's) use "Big Endian" byte order.
The address before the next valid network address will be the broadcast address For Example:192.168.1.64 the broadcast address is 192.168.1.127
A MAC address is a six-byte unique identifier for any piece of network equipment. The first three bytes are the manufacturer's code and the last three are a serial number within that manufacturer.
; push bytes on to stackLXI H,start addressMVI C,number of bytesLOOP1:MOV A,MPUSH PSWDCR CJNZ LOOP1; pop bytes in reverse order off of stackLXI H,start addressMVI C,number of bytesLOOP2:POP PSWMOV M,ADCR CJNZ LOOP2Alternate Answer: (Not using the stack)LXI B, start addressLXI D, end addressLOOP1:LDAX B get first byteMOV H,A save itLDAX D get last byteSTAX B store in first byte positionMOV A,H retrieve last byteSTAX D store in last byte positionINX B increment first byte addressDCX D decrement last byte addressMOV A,B loop until addresses crossCMP DJNC LOOP1MOV A,CCMP EJNC LOOP1
You've answered your own question, I'm afraid. A 16-bit memory address requires 2 bytes of storage (8 bits * 2 bytes = 16 bits). Note that, without using XMS or EMS, you can only address 2^20 bytes of memory, with the last 384k or so being restricted (BIOS, video, etc) unless you enable the A20 line (it actually wraps from FFFF:0010 back to 0000:0000). Also, you should note that 16-bit pointers work because of a "segment:offset" feature; your current "data segment" determines where in memory your pointer actually points to. If you need a 4-byte pointer, use a far pointerinstead; these pointers can reference any point in memory (up to the aforementioned 1MB limit).
actually, a bird memory can last up to 2 years...a bird has a very good memory and it can last even longer if it has been trained :)