Задан массив из 12 элементов.Определить сумму всех чисел меньших 6-ти (СИ) - Assembler

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

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

Задан массив из 12 элементов.Определить сумму всех чисел меньших 6-ти если можно с пояснением

Решение задачи: «Задан массив из 12 элементов.Определить сумму всех чисел меньших 6-ти (СИ)»

textual
Листинг программы
format PE console
entry start

include 'D:\fasmw16726\INCLUDE\win32a.inc'

section '.data' data readable writeable
a dd 1,2,3,4,5,6,7,8,9,0,1,2
message db 'Результат = %d',0
r db 'Russian',0
sum dd ?

section '.code' code readable executable

start:
 xor eax,eax
 mov ecx,10
 mov esi,a
loo:
 cmp dword [esi+ecx*4],6
 jg next
 add eax,   [esi+ecx*4]
next:
loop loo
push eax
 cinvoke setlocale,1,r
pop eax
; CINVOKE макрос в составе FASM.
; Позволяет вызывать CDECL-функции.
  cinvoke printf,message,eax
  cinvoke getch
; INVOKE аналогичный макрос для STDCALL-функций.
  invoke ExitProcess,0
section '.idata' import data readable
library kernel,'kernel32.dll',\
	msvcrt,'msvcrt.dll'

import kernel,\
       ExitProcess,'ExitProcess'

import msvcrt,\
       setlocale,'setlocale',\
       printf,'printf',\
       getch,'_getch'

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

  1. Объявлены переменные:
    • a - массив из 12 элементов (1,2,3,4,5,6,7,8,9,0,1,2),
    • message - строка, содержащая сообщение, которое будет выведено на экран,
    • r - строка, содержащая указание на язык (русский),
    • sum - переменная, в которой будет храниться сумма чисел.
  2. В начале кода инициализируется регистр eax (он используется для хранения суммы чисел).
  3. Далее устанавливается счётчик ecx (10), который определяет количество итераций цикла.
  4. В качестве начального значения для цикла используется переменная a.
  5. В цикле происходит сравнение каждого элемента массива a с числом 6. Если элемент больше или равен 6, то выполняется переход к следующему элементу.
  6. Если элемент меньше 6, то к сумме eax прибавляется значение этого элемента.
  7. После выполнения всех итераций цикла значение переменной eax содержит сумму чисел.
  8. Выполняется набор действий, связанных с выводом сообщения на экран:
    • Устанавливается локальная настройка для России.
    • Выводится сообщение, содержащее значение переменной eax.
    • Ожидается нажатие клавиши.
  9. Завершается программа.

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


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

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

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