Как сделать косвенную адресацию с индексированием? - Assembler
Формулировка задачи:
я полный чайник в ассемблере, ток начала изучать асемблер((
хотя бы пример какой-то программки косвенной адресацией с индексированием, а то совсем не понимаю
Объявить массив заданного размера и с заданным количеством элементов .
2. Проинициализировать массив 0, используя произвольный метод адресации.
3. В каждый элемент массива переслать число, используя метод косвенной адресации с индексированием
Размер массива 16, без знака
Число 1912h
Число элементов 12
вот что я написала
Используя команду программы DEBUG Fill, задам массив:
f0 с 0.
mov cx, 0d mov bx, 0 mov ax,0 mov bx, 01942h mov ax,[bx+si] inc bx loop 106
Решение задачи: «Как сделать косвенную адресацию с индексированием?»
textual
Листинг программы
mov ecx,12 mov edi,arrk mov eax,0 mAssign: mov word [edi+eax],1912h add eax,2 loop mAssign
Объяснение кода листинга программы
- Переменная
ecxполучает значение 12. - Переменная
ediполучает значениеarrk. - Переменная
eaxполучает значение 0. - Начинается цикл
mAssign. - В памяти по адресу
edi+eaxзаписывается значение 1912h. - К
eaxприбавляется 2. - Если
eaxбольше или равно 2, то выполняется переход на меткуmAssign. - Цикл продолжается до тех пор, пока
eaxменьше 2.