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

Работа с MMX

07.11.2013, 19:09. Показов 626. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, такая проблема, есть программа для нормализации изображения в формате bmp 24 бита написанная обычным сопсобом, теперь нужно сделать то же, но с помощью 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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
include 'win32a.inc'
 
format PE console
entry start
 
section '.c' code readable executable
start:
cinvoke fopen, sFileName, sFmt
cmp eax, 0
jz fError1
mov [fout], eax
 
cinvoke fread, buf, 1, 4*1024*1024, [fout]
mov [len], eax
cinvoke fclose, [fout]
 
; cinvoke printf, s2, eax
mov eax,dword[buf+12h]
mov [x], eax
mov eax,dword[buf+16h]
mov [y], eax
cinvoke fopen, sFileName, sFmt
mov eax, [len]
sub eax, 36h
cdq
mov ebx, 3
div ebx
mov ecx, eax
mov esi, buf+36h
mov edi, esi
mov [min1], 255
mov [min2], 255
mov [min3], 255
mov [max1], 0
mov [max2], 0
mov [max3], 0
rdtsc
mov [a1], eax
mov [a2], edx
loop1: lodsb
cmp al, [min1]
jae @f
mov [min1],al
@@:
 
cmp al, [max1]
jbe @f
mov [max1],al
@@:
 
lodsb
cmp al, [min2]
jae @f
mov [min2],al
@@:
 
cmp al, [max2]
jbe @f
mov [max2],al
@@:
 
lodsb
cmp al, [min3]
jae @f
mov [min3],al
@@:
 
cmp al, [max3]
jbe @f
mov [max3],al
@@:
 
loop loop1
 
mov eax, [len]
sub eax, 36h
cdq
mov ebx, 3
div ebx
mov ecx, eax
mov esi, buf+36h
mov edi, esi
 
loop2:
mov bl, [min1]
mov bh, [max1]
call norm
 
mov bl, [min2]
mov bh, [max2]
call norm
 
mov bl, [min3]
mov bh, [max3]
call norm
 
loop loop2
 
rdtsc
sub eax, [a1]
sbb edx, [a2]
cinvoke printf, s2, eax, edx
 
cinvoke fwrite, buf, [len], 1, [fout]
 
cinvoke fclose, [fout]
 
exit: cinvoke system,cmd
 
invoke ExitProcess,0
 
fError1:cinvoke printf, sEr1
jmp exit
 
norm:
lodsb
sub al, bl
mov ah, 255
mul ah
sub bh, bl
div bh
stosb
ret
 
section '.d' data readable writeable
sFileName db 'lab5.bmp',0
sFmt db 'r+b',0
s2 db 'time=%I64d',13,10,0
sEr1 db 'File open error.',13,10,0
cmd db 'pause',0
fout dd ?
buf rb 4*1024*1024
len dd ?
x dd ?
y dd ?
min1 db ?
min2 db ?
min3 db ?
max1 db ?
max2 db ?
max3 db ?
a1 dd ?
a2 dd ?
 
section '.i' import data readable
 
library kernel,'kernel32.dll',\
msvcrt,'msvcrt.dll'
 
import kernel,\
ExitProcess,'ExitProcess'
 
import msvcrt,\
printf,'printf',\
fread,'fread',\
fopen,'fopen',\
fclose,'fclose',\
fwrite,'fwrite',\
system,'system'
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2013, 19:09
Ответы с готовыми решениями:

Работа с mmx (функция обработки массива в DLL)
Всем доброго времени суток. Есть пример создания DLL на ассемблере, содержащей функцию dMMX....

MMX интринсики
Доброго времени суток) подскажите, пожалуйста, как использовать mmx интринсики в c++? подкиньте...

MMX-Команды
Помогите, пожалуйста!!! Очень надо написать сегодня программу: Ввести с клавиатуры два...

Компилятор и SSE, MMX
Умеет ли компилятор при необходимости использовать технологии MMX, SSE, AVX или же эта задача...

0
07.11.2013, 19:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2013, 19:09
Помогаю со студенческими работами здесь

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

Как использовать mmx
здраствуйте! как использовать регистры ммх. Пишу в программе movd mm0, ax пишет undefined symbol....

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

XMM и MMX-команды
Всем добрый вечер или уже ночь) Хочу попросить у вас помощи по переделке программы из pascal в...


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

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