Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2022, 17:53   #1
Generetic
Новичок
Джуниор
 
Регистрация: 19.10.2022
Сообщений: 5
По умолчанию Вычислить сумму элементов массива

Вычислить сумму элементов массива:
int a[]={-5,1,6,1,-21};

Код:
section .text
   global _start 
     
_start:
   mov  eax,5     
   mov  ebx,0      
   mov  ecx, x    
 
top:  
   add  ebx, [ecx]
   add  ecx,1     
   dec  eax
   jnz  top      
 
done: 
 
   add   ebx, '0'
   mov  [sum], ebx 
 
display:
 
   mov  edx,lenx    
   mov  ecx, sum  
   mov  ebx, 1    
   mov  eax, 4     
   int  0x80      
     
   mov  eax, 1   
   int  0x80      
 
section .data
global x
x:    
   db  -5
   db  1
   db  6
   db  1
   db  -21
 
sum: 
   db  0
    lenx equ $ - sum
Выводится точка, что делать? Компилер JDoodle
Generetic вне форума Ответить с цитированием
Старый 25.01.2023, 15:39   #2
Nif-naf
Форумчанин
 
Аватар для Nif-naf
 
Регистрация: 05.09.2016
Сообщений: 133
По умолчанию

Код:
 _start: 
push ebx
mov eax,5 
mov ebx,0 
lea ecx, x 
top: 
add ebx, [ecx] 
add ecx,1 
dec eax 
jnz top 
done: 
add ebx, '0' 
mov [sum], ebx display: 
mov edx,lenx 
mov ecx, sum 
mov ebx, 1 
mov eax, 4
int 0x80 
mov eax, 1 
int 0x80 
pop ebx
section .data global x x: dw -5 
dw 1 
dw 6 
dw 1 
dw -21 
sum: dw 0 
lenx equ $ - sum
Немного о GoAsm.
Nif-naf вне форума Ответить с цитированием
Старый 25.01.2023, 15:52   #3
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Только объявили вы массив слов
Код:
x: dw -5 
dw 1 
dw 6 
dw 1 
dw -21
А при сложении увиличиваете указатель на 1 байт
Код:
add ecx,1
И лучше скорее всего так
Код:
mov eax, 0
mov ecx, 5
lea edx, x
top: 
add eax, [edx] 
add edx,2 
loop top
macomics вне форума Ответить с цитированием
Старый 27.01.2023, 13:32   #4
Nif-naf
Форумчанин
 
Аватар для Nif-naf
 
Регистрация: 05.09.2016
Сообщений: 133
По умолчанию

Отрицание переводи в текст. Автор ты где?
Код:
 Section .text
global _start: 
push ebx
mov eax,5 
mov ebx,0 
mov ecx, x 
top: 
add ebx, [ecx] 
add ecx,2
dec eax 
jnz top 
mov edx,lenx 
mov ecx, ebx 
mov ebx, 1 
mov eax, 4
int 0x80 
mov eax, 1
mov ebx, 0 
int 0x80 
pop ebx
section .data global x x dw 5 
   dw 1 
   dw 6 
   dw 1 
   dw 21
Немного о GoAsm.

Последний раз редактировалось Nif-naf; 27.01.2023 в 13:35.
Nif-naf вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal: Дан массив, состоящий из n целых элементов, вычислить сумму модулей элементов массива, расположенных после Руслан Белый Паскаль, Turbo Pascal, PascalABC.NET 2 25.11.2018 08:55
Вычислить сумму всех элементов массива Максим4455 Паскаль, Turbo Pascal, PascalABC.NET 4 14.04.2014 11:33
вычислить сумму положительных элементов массива Rapira Помощь студентам 3 15.10.2010 13:25
вычислить: сумму элементов массива с нечетными номерами - паскаль vasil-diman Помощь студентам 1 18.05.2010 18:51
В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму элементов массива HazelHen Общие вопросы C/C++ 2 29.03.2009 15:16