Ассемблерная вставка, Как правильно передать значения в переменные - Assembler

Узнай цену своей работы

Формулировка задачи:

Суть проблемы такова, нашёл минимальный и максимальный элементы матрицы, дальше пытаюсь поместить эти значения в соответствующие переменные, которые передаю в функцию по ссылке, в результате эти переменные получают мусор, т.к. значения передаю в них неверно. Вопрос, как правильно передать значения в эти переменные, ну и если есть какие то недочёты, прошу указать на них.
int Seach_max_min(int matrx[N][N],int &max,int &min){
    _asm{
        mov al,N
        imul al
        mov cx,ax
        mov esi,matrx   
        mov ebx,[esi]       //max
        mov edx,ebx     //min
    loop_begin:lodsd                   
        CMP ebx,eax
        JL jmp_to_min
        mov ebx,eax
        JMP end_loop
    jmp_to_min:CMP edx,eax
        JGE end_loop
        mov edx,eax
    end_loop:loop loop_begin        
            mov max,ebx
        mov min,edx
    }
    return 0;
}

Решение задачи: «Ассемблерная вставка, Как правильно передать значения в переменные»

textual
Листинг программы
mov esi, min
mov [esi], ebx

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

  1. esi - это регистр, который используется в качестве индекса для обращения к памяти.
  2. min - это константа, которая представляет минимальное значение.
  3. ebx - это регистр, который содержит значение, которое будет сохранено в памяти по адресу, указанному в esi.
  4. mov - это инструкция, которая выполняет перемещение значения из одного регистра в другой или из регистра в память и обратно.
  5. esi, min - это выражение, которое указывает на то, что значение min будет сохранено в регистре esi.
  6. mov [esi], ebx - это выражение, которое указывает на то, что значение из регистра ebx будет сохранено в памяти по адресу, указанному в esi.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.538 из 5
Похожие ответы