b'\n_START_ARTICLE_\nN\xc3\xbamero offset\n_START_PARAGRAPH_\nO n\xc3\xbamero offset est\xc3\xa1 ligado ao n\xc3\xbamero do segmento, em termos de mem\xc3\xb3ria s\xc3\xa3o relacionados ao modo de mem\xc3\xb3ria segmentada usada nos antigos processadores. A mem\xc3\xb3ria do processador Intel 80188 est\xc3\xa1 dividida em segmentos e offsets (os termos s\xc3\xa3o apenas uma conven\xc3\xa7\xc3\xa3o)._NEWLINE_A mem\xc3\xb3ria do 80188 \xc3\xa9 uma fila indiana de bytes (de tamanho 220 sendo 1MB o tamaho m\xc3\xa1ximo) e cada um com o seu n\xc3\xbamero de endere\xc3\xa7o f\xc3\xadsico ou efetivo, de 0 a FFFFFh = 1048576d._NEWLINE_Cada segmento possui tamanho de 64 Kbytes consecutivos e come\xc3\xa7a em um endere\xc3\xa7o m\xc3\xbaltiplo de 16 (= 10 hex). O segmento 0 inicia no endere\xc3\xa7o 00000h, o segmento 1 no 00010h, o segmento 2 em 00020h e sucessivamente. A posi\xc3\xa7\xc3\xa3o de um determinado byte dentro de um segmento \xc3\xa9 o seu o offset da posi\xc3\xa7\xc3\xa3o em rela\xc3\xa7\xc3\xa3o a esse segmento (a dist\xc3\xa2ncia entre o come\xc3\xa7o do segmento e a posi\xc3\xa7\xc3\xa3o de mem\xc3\xb3ria que o usu\xc3\xa1rio deseja). Cada endere\xc3\xa7o na mem\xc3\xb3ria \xc3\xa9 dado por um par SSSS:AAAA, onde SSSS \xc3\xa9 o segmento e AAAA o seu offset. Isso permite aumentar as mem\xc3\xb3rias com mais de 64 KBytes (1MB para o caso do 80188 que necessita de 20 bits de endere\xc3\xa7o) com processadores que t\xc3\xaam registos s\xc3\xb3 de 16bits._NEWLINE_Basicamente, os produtores de hardware queriam estender a quantidade de mem\xc3\xb3ria dispon\xc3\xadvel mas, como o processador era de 16 bits, o valor m\xc3\xa1ximo de endere\xc3\xa7o de mem\xc3\xb3ria era de 0xFFFF (= 64kb). Sendo assim, para ultrapassar esse limite, foi criado a mem\xc3\xb3ria segmentada.\n_START_SECTION_\nFuncionamento da mem\xc3\xb3ria segmentada\n_START_PARAGRAPH_\nFunciona da seguinte forma: existem dois valores para cada endere\xc3\xa7o de mem\xc3\xb3ria - o endere\xc3\xa7o de segmento, e o seu offset. Assim, se tem endere\xc3\xa7os de mem\xc3\xb3ria de 20 bits divididos entre 2 registradores, liberando um acesso de at\xc3\xa9 1 MB de mem\xc3\xb3ria pois o endere\xc3\xa7o m\xc3\xa1ximo \xc3\xa9 0xFFFF:0xFFFF._NEWLINE_Imagine um segmento como uma janela de 64k dentro de um campo de 1MB de mem\xc3\xb3ria, movendo essa janela se tem acesso a novas posi\xc3\xa7\xc3\xb5es de mem\xc3\xb3ria._NEWLINE_Um endere\xc3\xa7o de mem\xc3\xb3ria t\xc3\xadpico de 16bits (em modo real) seria 0x2000:0x1000, onde 0x2000 \xc3\xa9 o segmento e 0x1000 o offset. O seu equivalente em 32 bits (em modo protegido) seria 0x21000, de acordo com a convers\xc3\xa3o 0x11000 = 0x2000*16+0x1000 = 0x2000<<4+0x1000._NEWLINE_Segmentos eram muito complexos, um segmento n\xc3\xa3o come\xc3\xa7a quando o outro termina. Devido ao fato de o offset variar entre 0 e 0xFFFF, se tem os endere\xc3\xa7os 0x0000:0x0010 e 0x0001:0x0000 representando a mesma posi\xc3\xa7\xc3\xa3o na mem\xc3\xb3ria.'