Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler: математика, вычисления
Войти
Регистрация
Восстановить пароль
 
Saraharas
0 / 0 / 3
Регистрация: 14.10.2014
Сообщений: 53
#1

Сложить два массива по 8 натуральных чисел, с насыщением MMX ассемблер NASM - Assembler

10.08.2015, 01:05. Просмотров 569. Ответов 2
Метки нет (Все метки)

Здравствуйте! Пишу программу, складывающую поэлементно 2 массива по 8 натуральных чисел, не превышающих 127, с насыщением. (например: ввод: 120 1 0 0 0 0 0 0
120 2 0 0 0 0 0 0, вывод: 127 3 0 0 0 0 0 0). Подскажите, пожалуйста, как правильно считать массив и в конце вывести массив суммы на экран.
Вот то, что я написала:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[bits 32]
global main
extern exit
extern scanf
extern printf
section .text
main:
    push    a
    push    _fmt1
    call    scanf
    add esp, 8
    push    b
    push    _fmt1
    call    scanf
    add esp, 8
    movq     mm0,qword [a]
    paddsb   mm0, qword [b]
    movq     qword[b], mm0
    push b
    push    _fmt1
    call    printf
    add esp, 12
    push    0
    call    exit
section .data
_fmt1:  db "%d %d %d %d %d %d %d %d", 0
a:  db  0, 0, 0, 0, 0, 0, 0, 0
b:  db  0, 0, 0, 0, 0, 0, 0, 0
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.08.2015, 01:05
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сложить два массива по 8 натуральных чисел, с насыщением MMX ассемблер NASM (Assembler):

Сложить два числа с помощью MMX команд в программе на C
всем привет! Помогите решить задачу: нужно сложить два числа с помощью MMX...

Сложить 13 целых чисел только MMX действиями
Уважаемые форумчане, помогите исправить ошибки в коде. Код был написан только...

Сложить две матрицы с использованием MMX и без. И посчитать время
Задача такая: Умножить матрицу А на число которое введет пользователь. Затем...

Ассемблер в паскале: как загрузить массив во встроенный ассемблер и произвести над любым из его чисел сложение(вычитание).
хочу написать программу в паскале с использованием встроенного ассемблера, но...

MMX-сложение чисел со знаком
вобщем используя MMX нужно сложить два массива в третий .686 .model...

Два одномерных массива поэлементно сложить между собой - третий - сложить каждый элементы - вывести на экран
2 одномерных массива - сложить между собой - третий - сложить каждый элементы -...

2
Vort_
190 / 190 / 78
Регистрация: 10.07.2012
Сообщений: 400
12.08.2015, 08:37 #2
Лучший ответ Сообщение было отмечено Saraharas как решение

Решение

массив можно считывать и выводить поэлементно
scanf и printf с форматом %d - неплохой вариант, только надо не забывать делать преобразования (dword - byte - dword)

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
[bits 32]
 
global _main
extern _exit
extern _scanf
extern _printf
section .text
 
_main:
    mov     ebx, a
    L1:
    push    v
    push    _fmt1
    call    _scanf
    add     esp, 8
    mov     eax, [v]
    mov     [ebx], al
    inc     ebx
    cmp     ebx, a + 16
    jnz     L1
 
    movq     mm0, qword [a]
    paddsb   mm0, qword [b]
    movq     qword [b], mm0
 
    mov     ebx, b
    L2:
    movzx   eax, byte [ebx]
    push    eax
    push    _fmt2
    call    _printf
    add     esp, 8
    inc     ebx
    cmp     ebx, b + 8
    jnz     L2
 
    push    0
    call    _exit
 
section .data
_fmt1: dd '%d', 0
_fmt2: dd ' %d', 0
v: dd 0
a: times 8 db 0
b: times 8 db 0
1
Saraharas
0 / 0 / 3
Регистрация: 14.10.2014
Сообщений: 53
12.08.2015, 12:26  [ТС] #3
Vort_, разобралась с массивами. Спасибо за помощь!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.08.2015, 12:26
Привет! Вот еще темы с решениями:

Можно ли сложить несколько подряд идущих натуральных чисел
Определите, можно ли сложить несколько подряд идущих натуральных чисел (не...

Определите, можно ли сложить несколько подряд идущих натуральных чисел, чтобы получить число A
Условие задачи: Определите, можно ли сложить несколько подряд идущих...

Сложить два массива
Всем доброго времени суток, срочно нужна помощь. Надо сделать программу в...

Сложить два массива
люди, объясните как сложить два массива


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru