Пример применения регистра ebx как базы для адресации. Пусть у нас имеется массив massiv: array [0..999999] of longint; и при этом мы заранее не знаем его адрес (адрес массива это адрес его нулевого элемента), то есть он не является глобальным. После того, как мы определили адрес массива, запишем его в ebx. Тогда dword ptr [ebx] – это нулевой элемент массива. Вы можете что угодно делять с массивом – сортировать, перемножать и складывать определённым образом его элементы, и делать что-либо другое, но адрес начала массива всегда будет храниться в регистре ebx. Поэтому можно без проблем получить доступ к любому элементу массива: например, dword ptr [ebx+4*edi] – элемент массива с номером, хранящимся в edi. Если массив глобальный, то адресация по базе не нужна – всё можно сделать проще: [massiv+4*edi] в этом случае будет означать то же самое, но если мы не знаем заранее адрес начального элемента массива (например, если массив динамический, или передаётся в качестве параметра процедуре), то можно использовать адресацию по базе