Форум программистов, компьютерный форум, киберфорум
Assembler: Windows/protected mode
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 21.12.2016
Сообщений: 4

Передвижение по массиву в MASM32

21.12.2016, 19:48. Показов 2093. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как менять числа в массиве на следующий в masm32?
.486
к примеру в .data мы задали массив
array dd 5,4,3,2,1

затем в .code
поместил массив в регистр eax т.е
mov eax,array
в итоге в регистре eax при выводе остается только число 5. Как теперь получить следующее число и получить его Индекс (4или3или2или1)?
Нужно для решения задачи
Кликните здесь для просмотра всего текста
В заданной конечной последовательности целых чисел найти сумму четных отрицательных элементов, имеющих нечетные индексы.

Как найти сумму четных отрицательных элементов - есть уже набросок в голове, а как ещё проверить их ИНДЕКС - покуда не знаю.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.12.2016, 19:48
Ответы с готовыми решениями:

Пакман на Си. Не могу реализовать корректное передвижение по массиву
Пишу пакмана на экзамен по Си. Столкнулся с проблемой отображения приведения которое бегает за игроком. Проблема заключается в следующем: ...

Несмотря на подключение masm32.inc и masm32.lib не подтягиваются функции stdin и stdout
Собственно скрин.

Ошибки MASM32 - cannot open file : .\masm32\include\windows.inc
установил MASM32, прописал в патче путь, выдаёт ошибки при компиляции такого рода : Microsoft (R) Macro Assembler Version 6.14.8444 ...

6
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
21.12.2016, 20:02
Не могу вывести значение в консоль
Только недавно делал, как раз с индексами. Вычисляется среднее арифметическое (сумма членов массива поделенная на количество членов). Здесь принцип такой же. Главное разберись с индексацией и загрузкой.
1
0 / 0 / 0
Регистрация: 21.12.2016
Сообщений: 4
21.12.2016, 20:14  [ТС]
в некоторых кодах видел переход к след. элементу через inc т.е "inc ebx ;переходим к следующему элементу"
но работает это как-то не правильно :/
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
21.12.2016, 20:23
Почему я увеличиваю в 21 строке на 2, а не на 1 или 4? Когда разберешься и поймешь, считай задание сделал. Прогони в отладчике, посмотри как изменяются значения регистров.
0
0 / 0 / 0
Регистрация: 21.12.2016
Сообщений: 4
21.12.2016, 20:55  [ТС]
Был бы рад покопаться отладчиком по твоему коду и понять в чем проблема, но т.к начал изучение asm недавно - не могу даже адекватно скомпилировать код.
Кликните здесь для просмотра всего текста
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
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
 
      .486                                      ; create 32 bit code
      .model flat, stdcall                      ; 32 bit memory model
  ;
      option casemap :none                      ; case sensitive 
 
;     include files
;     ~~~~~~~~~~~~~
      include \masm32\include\windows.inc       ; main windows include file
      include \masm32\include\masm32.inc        ; masm32 library include
 
    ; -------------------------
    ; Windows API include files
    ; -------------------------
      include \masm32\include\gdi32.inc
      include \masm32\include\user32.inc
      include \masm32\include\kernel32.inc
      include \masm32\include\Comctl32.inc
      include \masm32\include\comdlg32.inc
      include \masm32\include\shell32.inc
      include \masm32\include\oleaut32.inc
      include \masm32\include\ole32.inc
      include \masm32\include\msvcrt.inc
 
      include \masm32\include\dialogs.inc       ; macro file for dialogs
      include \masm32\macros\macros.asm         ; masm32 macro file
 
;     libraries
;     ~~~~~~~~~
      includelib \masm32\lib\masm32.lib         ; masm32 static library
 
    ; ------------------------------------------
    ; import libraries for Windows API functions
    ; ------------------------------------------
      includelib \masm32\lib\gdi32.lib
      includelib \masm32\lib\user32.lib
      includelib \masm32\lib\kernel32.lib
      includelib \masm32\lib\Comctl32.lib
      includelib \masm32\lib\comdlg32.lib
      includelib \masm32\lib\shell32.lib
      includelib \masm32\lib\oleaut32.lib
      includelib \masm32\lib\ole32.lib
      includelib \masm32\lib\msvcrt.lib
 
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
 
; ************************************************************************
;    include \masm32\include\masm32rt.inc
; ************************************************************************
 
.data?
;Result dd  ?
;lpBuf1 db  1024 dup(?) ; temp Buffers  
 
.data
  mass dw  1,4,5,3,6       
  len dw  $ - mass  
buffer_for_string db 10 dup(0)
title_string db "Результат:  ",0
;   szformat db "%u",0Dh,0Ah,0      ; изменяем формат вывода на dec
    szformat db "%d",0Dh,0Ah,0      ; изменяем формат вывода на hex
 
Result dd (0)
 
.code
start:
; ************************************************************************
main proc
;   LOCAL Result        :DWORD
;   LOCAL var_00        :DWORD
;   LOCAL var_01        :BYTE
    
 
; Затем здесь(ниже) запишите решение. 
; Записи возможны только до начала следующей линии решетки ...
; ###########################################################################    
  mov ax,@data           
    mov ds, ax     
 
    mov cx,len
    shr cx,1
    xor     ax,ax
 
    lea bx,mass
    go:         
    add ax,[bx]
    add bx,2
    loop go 
    
    mov bl,5
    div bl
    mov dh,ah
 
    call chislo
    mov al,'.'
    int 29h
    xor ax,ax
    mov al,dh
    mov dx,10
    mul dx
    div bl
    call chislo
    
    mov ax, 4C00h
    int 21h 
 
chislo proc
    add al,'0'
    int 29h
    ret
chislo endp
 
; Меняем имя регистра на имя в котором находится ваш результат
    
    ;mov Result,eax
 
; ###########################################################################
    push ax
    push offset szformat
    push offset buffer_for_string
    call wsprintf
 
    push MB_OK
    push offset title_string
    push offset buffer_for_string
    push 0
    call MessageBox
 
    push 0
    call ExitProcess
    
main endp
; ************************************************************************
end start
 
 
Comment ^
Каркас программы
 
.386
.MODEL Flat, STDCALL
.DATA
<Ваша инициализиpуемые данные>
......
.DATA?
<Ваши не инициализиpуемые данные>
......
.CONST
<Ваши константы>
......
.CODE
<метка>
<Ваш код>
 
.....
 
end <метка>
^


Добавлено через 12 минут
И ещё один небольшой вопрос, как в компиляторе исправить ошибку "invalid instruction operands"
Ругается на 2-е строки
MOV SI,array
и
MOV DX,massivII
в котором
massivII DB 'RESULT: -$'
Миниатюры
Передвижение по массиву в MASM32  
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
21.12.2016, 21:03
Лучший ответ Сообщение было отмечено yoba714 как решение

Решение

В том задании программа под Dos.
1
0 / 0 / 0
Регистрация: 21.12.2016
Сообщений: 4
21.12.2016, 22:37  [ТС]
Как бы я не старался, и как бы близко перед носом не лежал ответ, но даже покопавшись в отладчике - не могу определить в чем проблема...

Добавлено через 58 минут
Спасибо Мановар, покопавшись немного в отладчике я всё-таки понял почему вы увеличивали именно на 2)
Миниатюры
Передвижение по массиву в MASM32  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.12.2016, 22:37
Помогаю со студенческими работами здесь

Unity3D Не могу найти пример как сделать передвижение по щелчку мыши передвижение персона
Пытаюсь понять как сделать передвижение по щелчку, примерно как в игре &quot;mekorama&quot; правда там сенсор, но это суть не меняет ...

Нахождение элементов, которые принадлежат и массиву a и массиву b (segmentation fault)
добрый день, стоит задача нахождения элементов, которые принадлежат и массиву а и массиву б. вот код: #include &lt;iostream&gt; ...

По двумерному массиву массиву А получить одномерный массив В, присвоив его k-му элементу значение TRUE
По двумерному массиву массиву А получить одномерный массив В, присвоив его k-му элементу значение TRUE, если выполнено указанное ниже...

Красивая итерация по "двумерному массиву" (или "массиву структур")
Добрый день. Есть довольно большой батник, обновляющий проект, составленный из частей, лежащих в разных репозиториях. Т.е. 10-20...

MASM32
Ктото работает на етом чуде ? если ДА ! то што имено делаете ?:) а что это за хрень? вот перевод Гугла: Скачать MASM32...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru