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

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

10.08.2015, 01:05. Просмотров 1102. Ответов 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 flat,stdcall .MMX option...

2
Vort_
191 / 191 / 78
Регистрация: 10.07.2012
Сообщений: 405
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