Задача на массивы - Assembler

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

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

Здравствуйте. Есть такая задача:Даны массивы А и В с N = 4 элементов. Привести программу формирования массива С по следующему правилу: если Аi + Вi ≤ 0, то Сj = Вi. Вот я пытался что-то сделать , но зашёл в тупик:
.386
.model flat
.data
A db 1,2,3,4   ;первый массив
B db -1,2,-3,4 ;второй массив
C db 4 dup(0)  ;третий массив
.code
_Start:
lea esi,A             ;адресс 1-го массива
mov edi,offset B  ;адресс 2-го массива
 
m3:mov eax,[esi]   ;число с массива A
   mov edx,[edi]   ;число с массива B
   add eax,edx     ;додаём число с массива А к числу с массива В
   cmp eax,0       ;сравниваем с нулём  
   
   jle m1          ;перейти на m1 , если A+B <=0
 
......
ret
end _Start
я не могу понять , как сравнить результат додавания элементов с нулём .прочитал про команду jle-это вроде как меньше или равно и не пойму , как потом записать результат в массив С( Помогите , пожалуйста , с этой задачей .И объясните , если сможете , как сравнивать с нулём , а потом по метке записать в третий массив Заранее огромное спасибо за любую помощь !!!

Решение задачи: «Задача на массивы»

textual
Листинг программы
jg a1       //если результат А+В больше нуля переходим на метку a1
   mov eax,[edi]//если Аi + Вi <= 0, то Сj = Вi 
   mov [ebx],eax
a1: ...

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

  1. Проверяем условие: результат операции А + В больше нуля.
  2. Переходим на метку a1.
  3. Выполняем операцию загрузки: mov eax,[edi].
  4. Выполняем операцию сравнения: if Аi + Вi <= 0.
  5. Выполняем операцию присвоения: Сj = Вi.
  6. Выполняем операцию сохранения: mov [ebx],eax.
  7. ... (код для условия, когда результат А + В меньше или равен нулю).

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

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