Форум программистов, компьютерный форум, киберфорум
Assembler: математика, вычисления
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
1 / 1 / 0
Регистрация: 13.10.2010
Сообщений: 23
1

MMX-сложение чисел со знаком

08.11.2010, 21:27. Показов 2098. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
вобщем используя MMX нужно сложить два массива в третий
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
.686
.model flat,stdcall
.MMX
option casemap: none
include \masm32\include\kernel32.inc
include \masm32\include\windows.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
ExitProcess proto: dword
.data
mas1 db 12,-5,33,11,7,9,-11,10,-31,17,54,32,7,-3,-44,6,81,1
mas2 db 12,-5,33,11,7,9,-11,10,-31,17,54,32,7,-3,-44,6,81,1
masout db 18 dup (0)
buf db 18 dup(0)
ifmt db "%d",0
stdout dword ?
cWritten dword ?
crlf db 0dh, 0ah
.code
_st:
    _paddsb proc
    invoke GetStdHandle,STD_OUTPUT_HANDLE
    mov stdout,eax
    mov eax,18
    mov ebx,8
    xor edx,edx
    div ebx
    mov ecx,eax
    lea esi,mas1
    lea edi,masout
    lea ebx,mas2
m1:
    movq MM0,qword ptr [esi]
    paddsb MM0, qword ptr [ebx]
    movq qword ptr[edi] ,MM0
    add esi,8
    add edi,8
    add ebx,8
    loop m1
    cmp edx,0
    jz exit
    mov ecx,edx
m2:
    mov al,byte ptr[esi]
    add al,byte ptr[ebx]
    mov byte ptr [edi],al
    inc esi
    inc edi
    dec ecx
    jnz m2
exit:
    lea esi,masout
    mov ecx,18
show:
    push ecx
    mov bl,byte ptr[esi]
    movsx eax,bl
    invoke wsprintf,addr buf,addr ifmt,eax
    invoke WriteConsoleA,stdout,addr buf,2,addr cWritten,0
    invoke WriteConsoleA,stdout,addr crlf,2,addr cWritten,0
    pop ecx
    inc esi
    loop show
    invoke Sleep,20000
    invoke ExitProcess, 0
    _paddsb endp
end _st
только вот отрицательные числа складываються некоректно, в чом проблема то?
paddsb вродеж для знаковых байтов
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.11.2010, 21:27
Ответы с готовыми решениями:

[MMX] Сложение чисел матрицы по главной диагонали
Если было то пожалуйста ссылку =) #include "stdafx.h" #include <iostream> using namespace std;...

Сложение двух чисел со знаком
Нужно написать программу,которая складывает 2 переменные 32-разрядные со знаком. Используем...

MMX Сложение матриц
Помогите пожалуйста написать программу на ассемблер сложения двух матриц с применением инструкций...

Сложение векторов MMX
Помогите пожалуйста написать программу сложения двух векторов, в инструкциях MMX. Спасибо!

1
16 / 16 / 0
Регистрация: 16.10.2010
Сообщений: 70
09.11.2010, 00:34 2
всё работает как надо:
invoke WriteConsoleA,stdout,addr buf,3,addr cWritten,0

Добавлено через 24 минуты
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
m2:
        mov al,byte ptr[esi]
        add al,byte ptr[ebx]
        mov byte ptr [edi],al
        inc esi
        inc edi
        [B]inc ebx[/B]     ;добавил
        dec ecx
        jnz m2
exit:
        lea esi,masout
        mov ecx,18
show:
        push ecx
        mov bl,byte ptr[esi]
        movsx eax,bl
        invoke wsprintf,addr buf,addr ifmt,eax
        invoke WriteConsoleA,stdout,addr buf,4,addr cWritten,0
        [B]invoke RtlZeroMemory,addr buf,3[/B]    ;добавил
        invoke WriteConsoleA,stdout,addr crlf,2,addr cWritten,0
число 81+81 - считается неправильно..
1
09.11.2010, 00:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.11.2010, 00:34
Помогаю со студенческими работами здесь

Написать программу на Ассемблере,которая реализует символьное сложение целых десятичных чисел со знаком , соде
Написать программу на Ассемблере,которая реализует символьное сложение целых десятичных чисел со...

Поэлементное сложение массивов MMX
Добрый вечер. Необходимо сложить поэлементно два массива, результат записать в третий. Проблема в...

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

Найти сумму чисел матрицы двумя способами с mmx и без
задание в том что нужно найти сумму чисел матрицы двумя способами с mmx и без...я вроде написала но...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru