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

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

10.08.2015, 01:05. Просмотров 1079. Ответов 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
Ответы с готовыми решениями:

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

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

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

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

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

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 / 0
Регистрация: 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

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

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

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


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

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

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