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

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

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

Студворк — интернет-сервис помощи студентам
вобщем используя 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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.11.2010, 21:27
Ответы с готовыми решениями:

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

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

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

1
20 / 19 / 1
Регистрация: 16.10.2010
Сообщений: 74
09.11.2010, 00:34
всё работает как надо:
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.11.2010, 00:34
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru