Машинные языки программирования
9

определения начала положительного массива будет работать следующим образом. Поскольку новые массивы находятся в области памяти исходного массива будем перемещать указатель адреса от младшего значения к старшему и проверять знак при каждом перемещении. При нахождении положительного числа запишем значение указателя адреса в отведенную для этого ячейку памяти, это и будет начальным адресом положительного массива. Конечный адрес отрицательного массива записывать не будем, потому что он легко вычисляется.

Определение памяти и регистров микропроцессора под выполнение программы

Разделение массивов выбранным методом происходит с помощью последовательной проверки знаков операндов. Для того что бы осуществлять последовательную проверку необходим указатель текущего адреса, который указывал бы на адрес в памяти, содержащий число для проверки, и инкрементировался после проверки. Такая задача подразумевает использование косвенной регистровой адресации. По этой причине для хранения указателя выбрана регистровая пара HL. Другой причиной выбора регистровой пары HL  является возможность непосредственного перемещения содержимого этой пары в ячейки памяти командой SHLD и непосредственной загрузки  командой LHLD.

Программа начинается с поиска первого положительного числа, по адресу которого будет перемещено ближайшее отрицательное число в сторону увеличения адреса. После перемещения следующий адрес теперь будет содержать первое положительное число в сторону увеличения адреса, на место которого так же будет производиться перемещение. Для этой задачи решено использовать косвенную регистровую адресацию. Адрес будет храниться в регистрах DE и инкрементироваться после перемещения.