Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Assembler Массив структур http://www.cyberforum.ru/assembler/thread222223.html
Доброго времени суток! Подскажите пожалуйста как из нескольких структур создать массив структур. Чета я самостоятельно не найду как на ассемблере реализовать это!
Написать программу, которая вычисляет 5 произвольных чисел Assembler
Помогите сделать задание: Написать программу, которая вычисляет 5 произвольных чисел, и если результат кратен 3, выводит "Yahoo!" вот что у меня есть: .model SMALL .Stack 100h .data ...
Assembler Обработка строковых данных
Помогите, очень нужно. Дано две строки u1='Pianino', u2='Bravissimo'. Сделать строку u3 типа 'Pianissimo'.
Assembler Помогите переделать рабочую программу подсчета полинома под 32разрядные регистры Добрый день. У меня программа считает значение полинома Y=Ax^4+Bx^3+Cx^2+Dx+E при X от -10 до 10 (с шагом 1). Одна процедура считает значения, вторая преобразует их в ASCII-код. Программа нормально... http://www.cyberforum.ru/assembler/thread221826.html
Assembler сумма+кратность http://www.cyberforum.ru/assembler/thread221689.html
Написать программу, которая вычисляет сумму пяти произвольных чисел, и если их результат кратен трем выводит "Yahoo!"
Запустить файл, имя которого указано в командной строке Assembler
Кто-нибудь знает как написать программу для запуска файла, имя которого указано в коммандной строке? или С клавиатуры вводится строка символов. Удалить из строки последнее слово. Слово –...
Novmassiv_T Assembler
Здравствуйте всем. Задача такая: В матрице определить сумму положительных чисел каждого столбца, записав их в новый массив. Program Matrix2; Uses Crt; const n=3; m=5; var a:array of...
Assembler arm assembly столькунлся со струкой .pad #32 никак непойму чье она делает (( http://www.cyberforum.ru/assembler/thread221239.html
Assembler Не бум бум http://www.cyberforum.ru/assembler/thread221216.html
Помогите пожалуйста. А то в ассемблере я не бум бум. В массиве двухбайтовых чисел со знаком найти сумму всех положительных и кратных 8 элементов. Параметры: адрес массива, его длина в байтах и...
Assembler Преобразовать 16-ти разрядный двоичный код в код 8-4-2-1 Помогите пожалуйста составить программу для Intel 8051, которая преобразует 16-ти разрядный двоичный код в код 8-4-2-1 и исправит ошибки, если они случатся. Двоичный слова поступают в порты Р0 и Р1,... http://www.cyberforum.ru/assembler/thread221183.html
Mr. FourKing
1 / 1 / 1
Регистрация: 11.11.2010
Сообщений: 29
29.12.2010, 12:46  [ТС] 0

как избавиться от переменных в разделе данных

29.12.2010, 12:46. Просмотров 491. Ответов 7
Метки (Все метки)

Ответ

вот код:
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
.386
                title   sort
     .model flat 
         
     .data
     n      db  5
     first  dd  0
     last   dd  5
     i      dd  0
     tmp    dd  0
 
             page    52,72
             public _cocktail_sort
 
    .code 
        
    _cocktail_sort proc 
    
          push ebp
          mov ebp,esp
          push ebx
          push esi
          push edi
          
          mov esi,dword ptr[ebp+8]
 
      ;for( --last; first < last; --last, ++first )
          mov         eax,dword ptr[last] 
          sub         eax,1 
          mov         dword ptr [last],eax 
          jmp         L 
LA:       mov         eax,dword ptr [last] 
          sub         eax,1 
          mov         dword ptr [last],eax 
          mov         ecx,dword ptr [first] 
          add         ecx,1 
          mov         dword ptr [first],ecx 
L:        mov         eax,dword ptr first 
          cmp         eax,dword ptr [last] 
          jge         L1 
      ;{
        ;  for(i = first; i < last; ++i )
          mov         eax,dword ptr [first] 
          mov         dword ptr [i],eax 
          jmp         L2 
L5:       mov         eax,dword ptr [i] 
          add         eax,1 
          mov         dword ptr [i],eax 
L2:       mov         eax,dword ptr [i] 
          cmp         eax,dword ptr [last] 
          jge         L3 
         ;     if ( arr[i + 1] < arr[i] )
          mov         eax,dword ptr [i] 
          mov         ecx,dword ptr [esi] 
          mov         edx,dword ptr [i] 
          mov         eax,dword ptr [esi+eax*4+4] 
          cmp         eax,dword ptr [esi+edx*4] 
          jge         L4 
            ;  {
            ;     tmp=arr[i+1];
          mov         eax,dword ptr [i] 
          mov         ecx,dword ptr [esi] 
          mov         edx,dword ptr [esi+eax*4+4] 
          mov         dword ptr [tmp],edx 
            ;     arr[i+1]=arr[i];
          mov         eax,dword ptr [i] 
          mov         ecx,dword ptr [esi] 
          mov         edx,dword ptr [i] 
          mov         edx,dword ptr [esi+edx*4] 
          mov         dword ptr [esi+eax*4+4],edx 
            ;     arr[i]=tmp;
          mov         eax,dword ptr [i] 
          mov         ecx,dword ptr [esi] 
          mov         edx,dword ptr [tmp] 
          mov         dword ptr [esi+eax*4],edx 
            ;  }
L4:       jmp         L5 
 
        ;  for(i = last - 1; i > first; --i )
L3:       mov         eax,dword ptr [last] 
          sub         eax,1 
          mov         dword ptr [i],eax 
          jmp         L6 
L9:       mov         eax,dword ptr [i] 
          sub         eax,1 
          mov         dword ptr [i],eax 
L6:       mov         eax,dword ptr [i] 
          cmp         eax,dword ptr [first] 
          jle         L7 
           ;   if ( arr[i] < arr[i - 1])
          mov         eax,dword ptr [i] 
          mov         ecx,dword ptr [esi] 
          mov         edx,dword ptr [i] 
          mov         eax,dword ptr [esi+eax*4] 
          cmp         eax,dword ptr [esi+edx*4-4] 
          jge         L8 
             ; {
            ;     tmp=arr[i-1];
          mov         eax,dword ptr [i] 
          mov         ecx,dword ptr [esi] 
          mov         edx,dword ptr [esi+eax*4-4] 
          mov         dword ptr [tmp],edx 
            ;     arr[i-1]=arr[i];
          mov         eax,dword ptr [i] 
          mov         ecx,dword ptr [esi] 
          mov         edx,dword ptr [i] 
          mov         edx,dword ptr [esi+edx*4] 
          mov         dword ptr [esi+eax*4-4],edx 
            ;     arr[i]=tmp;
          mov         eax,dword ptr [i] 
          mov         ecx,dword ptr [esi] 
          mov         edx,dword ptr [tmp] 
          mov         dword ptr [esi+eax*4],edx 
             ; }
L8:       jmp         L9 
     ; }
L7:       jmp         LA 
 
 ;return 0;
L1:       xor         eax,eax 
;}
          pop         edi  
          pop         esi  
          pop         ebx  
          mov         esp,ebp 
          pop         ebp  
          ret       
    
_cocktail_sort   endp
end
можно более подробно узнать как описывать локальные переменные?

Вернуться к обсуждению:
как избавиться от переменных в разделе данных
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2010, 12:46

Избавиться от переменных bool
Код, чтобы если вводили буквы вместо символов заного запрашивался ввод, как сделать чтобы если 1...

Избавиться от статических переменных
помогите в реализации этого приложения,но так чтобы не было статических переменных static int...

Как избавиться от разделителей данных?
Получаю содержимое стрници, как известно, донные отправвляются частями и перед каждой частью...

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