Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
Навигация

Рис. 6.9. Вложенные подпрограммы на языке ассемблера IA-32

Рис. 6.10. Стековые фреймы для программы, представленной на рис 6.9. (Вершина стека ESP)
Примеры программ
Программа для вычисления скалярного произведения двух векторов
На рис. 6.11 приведена программа вычисления скалярного произведения двух векторов для процессоров архитектуры IA-32. Начальные адреса этих векторов равны AVEC и BVEC. В программе для доступа к последовательным элементам векторов используется базовая индексная адресация. В качестве индексного регистра применяется регистр EDI. Коэффициент масштабирования равен 4, поскольку элементы векторов являются двойными словами (4 байта). В качестве счетчика цикла используется регистр ЕСХ, инициализированный значением n. Это позволяет задействовать команду LOOP (см. раздел 5.2), которая сначала уменьшает значение регистра ЕСХ, а затем выполняет условный переход по адресу LOOPSTART, если содержимое регистра ЕСХ не равно нулю. Предполагается, что произведение двух элементов векторов поместится в двойное слово, поэтому в команде умножения IMUL явно задан регистр назначения EDX (см. раздел 5.14).
<< назад вперед >>