Самые последние компьютеры используют адреса, которые указывают на «байтовое» расположение в памяти.
Каждая машинная инструкция, которая включает в себя функцию «загрузить (или сохранить) из памяти»), включает в себя неявную или явную спецификацию числа байтов для загрузки / сохранения, начиная с целевого байтового адреса. Общие размеры составляют 1, 2, 4, 8 байтов (соответствуют отдельным элементам данных наиболее часто поддерживаемых размеров).
Прикладная программа должна решить, как интерпретировать байты и какие операции выполнять. на них. Конечно, обычно символы строки хранятся в последовательных ячейках памяти байтов и обрабатывают 4 или 8 символов за раз, используя 32-битные (4-байтовые) или 64-битные (8-байтовые) инструкции загрузки и сохранения. Работа с отдельными байтами (символами) может включать маскирование, смещение и копирование в регистрах общего назначения процессора, но с конца 1990-х годов многие / большинство микропроцессоров включают инструкции, специально предназначенные для обработки содержимого регистра как множественных независимых ( меньшие значения).
"Упаковка" нескольких элементов данных в последовательные байты памяти не должна быть ограничена размерами регистров для поддерживаемых арифметических типов c (1, 2, 4, 8 байтов). Приблизительно с 2000 года многие процессоры также включали инструкции «Одна команда с несколькими данными» (SIMD) для загрузки больших полезных нагрузок в набор «регистров SIMD». (Общие размеры составляют 16 и 32 байта, но некоторые процессоры поддерживают 64-байтовые регистры.) Системы, которые включают эти инструкции загрузки и хранения SIMD, обычно также включают инструкции для работы с регистрами SIMD «параллельно» - обработка содержимого регистра как нескольких независимых ценности. Обычно предоставляются инструкции для обработки содержимого 256-битного (32-байтового) регистра в виде 32 1-байтовых значений, 16 2-байтовых значений, 8 4-байтовых значений или 4 8-байтовых значений. Детали зависят от архитектуры процессора и поколения.