Двумерные массивы в ассемблере

Рейтинг: 0Ответов: 0Опубликовано: 23.06.2023

Не понимаю как использовать двумерные массивы на ассемблере. Вот пример кода, как сделать такое же с двумерным массивом?

void main() {
setlocale(LC_ALL, ".1251");
int A[5], i = 0, max = A[0];
for (i = 0; i < 5; i++) {
    printf("A[%d] = ", i);
    scanf("%d", &A[i]);
}
for (i = 0; i < 5; i++) {
    if (A[i] > max) {
        max = A[i];
    }
}
printf("max on c = %d\n", max);
max = 0;
__asm {
    cld
    mov ecx, 5 // ЕСХ = всего элементов
    lea esi, A // ESI = адрес массива
    mov ebx, [esi] // EBX = первый элемент
lp: lodsd // ЕАХ = очередной элемент массива
    cmp eax, ebx
    jbe bol // переход, если меньше
    mov ebx, eax //присваиваем макс значение
bol: Loop  lp // промотать ЕСХ - раз..
    mov max, ebx
}
printf("max on asm = %d\n", max);
getch();

}

Ответы

Ответов пока нет.