Ассемблерная вставка, Как правильно передать значения в переменные - 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
Объяснение кода листинга программы
esi
- это регистр, который используется в качестве индекса для обращения к памяти.min
- это константа, которая представляет минимальное значение.ebx
- это регистр, который содержит значение, которое будет сохранено в памяти по адресу, указанному вesi
.mov
- это инструкция, которая выполняет перемещение значения из одного регистра в другой или из регистра в память и обратно.esi, min
- это выражение, которое указывает на то, что значениеmin
будет сохранено в регистреesi
.mov [esi], ebx
- это выражение, которое указывает на то, что значение из регистраebx
будет сохранено в памяти по адресу, указанному вesi
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д