С Новым годом! Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 20.05.2012
Сообщений: 18

Работа с массивом

27.05.2012, 16:33. Показов 1206. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание: 1) Дан массив целых знаковых чисел. Вывести на экран символы '*' в количестве, равном сумме всех чисел.
2. Дана строка. Определить верно ли, что в ней есть три подряд идущих одинаковых символов.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.05.2012, 16:33
Ответы с готовыми решениями:

Работа с массивом
Ребят, помогите пожалуйста : 1) С помощью двух циклов записываю в текстовый файл массив с числами, разделенные пробелом, нужно сделать...

Работа с массивом
Есть массив допустим состоящий из элементов 1 2 3 4 5 6 7 8 9 10 надо начиная с 6 элемента по 10 поделить эти значения на два, как это...

Работа с массивом
Здравствуйте читающие! Как присвоить в массив все значения одного столбца? Есть ли такая функция? В гугле искал присваивание...

6
650 / 337 / 37
Регистрация: 04.04.2012
Сообщений: 886
28.05.2012, 16:21
Второе задание понятно. Можно строку вводить и с клавиатуры.
А вот в первом: Дан массив целых знаковых чисел. Где он дан? Если в исходнике, то проще, а ввод с клавиатуры немного сложнее будет.
0
116 / 136 / 0
Регистрация: 15.04.2012
Сообщений: 1,031
28.05.2012, 17:46
Для первой задачи:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mov si,offset massiv
mov bx,0
mov cx,длина
looperunda:
lodsb
add bl,al
adc bh,0
loop looperunda
mov cx,bx
looperw:
mov ah,2
mov dl,'*'
int 21h
loop looperw


Цитата Сообщение от Ermol499 Посмотреть сообщение
верно ли, что в ней есть три подряд идущих одинаковых символов.
Нет!
1
156 / 53 / 4
Регистрация: 28.05.2012
Сообщений: 120
28.05.2012, 18:00
Ermol499, по первому заданию глянь в сторону инструкции LODS. Настраиваешь регистры для работы с ней и началом массива. Например в ecx заносишь число элементов массива, а, например, в ebx 0. Далее, организуешь цикл, используя ecx декрементируемый (реверсивный) счётчик пока не нуль. На каждом цикле загружаешь при помощи LODS в eax, прибавляешь к значению в ebx eax. Инкрементируешь (е)si. После окончания этого цикла получаешь в ebx сумму элементов массива. А далее (см. прим.), организуешь новый цикл, в качестве значения счётчика полученную сумму в котором на каждом цикле выводишь один символ *.
прим. Но, так как числа у нас знаковые, то мы можем получить отрицательное число. Поэтому тут надо уточнить задачу, требуется ли нам использовать абсолютное значение суммы, или как мы там будем эту ситуацию обрабатывать.
По второй задаче. Так же организуешь цикл наподобие как и в первой. Смотри, чему у тебя равен символ (байт, два байта и тд). В цикле заносишь значения в аккумулятор. Сохраняешь полученное значение в любой другой регистр, но после того, как сравнишь сохранённое и новое. Если занёсённое значение равно сохранённому, увеличиваешь, например, dx, который изначально 0. Если не равно, обнуляешь dx. Если значение dx станет равно трём, выходишь из цикла, значит три в подряд идущие элемента есть. Если за цикл dx так и не станет равен 3, значит нет.
Ну вроде, я и ответил, и если человек ничего в асме не понимает, то ему это не поможет.
1
0 / 0 / 0
Регистрация: 20.05.2012
Сообщений: 18
28.05.2012, 18:06  [ТС]
Спасибо, буду разбираться.
0
0 / 0 / 0
Регистрация: 20.05.2012
Сообщений: 18
31.05.2012, 20:10  [ТС]
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
segment .data
str1 db 13,10,"ksfjxhccchsb",'$'
A db "Yes",'$'
B db "No",'$'
segment .text
org 100h
xor ebx,ebx
mov esi,str1
mov ecx,12
 
loop1:
lodsb
cmp ax,bx
mov bx,ax
je sl
jne obn
loop loop1
jmp rez
 
sl:
inc dx,1
ret
obn:
xor dx,dx
ret
 
rez:
cmp dx,2
je A
jne B
 
A:
mov ah,09h
mov dx,[A]
int 21h
jmp exit
 
B:
mov ah,09h
mov dx,[B]
int 21h
jmp exit
 
exit:
mov ah,10h
int 16h
mov ax,4c00h
int 21h
Вот получилась такая прога, много переходов, не уверен, что они правильны и вообще ничего не компилируется в nasm'e. Можете указать ошибки ? :>
0
0 / 0 / 0
Регистрация: 20.05.2012
Сообщений: 18
01.06.2012, 20:18  [ТС]
Полностью переделал программу, все работает.
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
segment .data         
str1 db "jnbvvsdddxwwq"
strlen equ $-str1
A db "YES$"
B db "NO$"
segment .text
org 100h
mov dx,B
mov si,str1
mov cx,strlen
 
lodsb
mov bl,al
 
cyc:
lodsb
cmp al,bl
jne con
 
lodsb
cmp al,bl
jne con
mov dx,A
jmp end
 
con: 
mov bl,al
loop cyc
 
end: mov ah, 09
int 21h
mov ah,10h
int 16h
mov ax, 4C00h 
int 21h
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.06.2012, 20:18
Помогаю со студенческими работами здесь

Работа с массивом
Доброго времени суток всем дорогие друзья! Помоги разобраться создал массив 5 на 5 нарисовал его он состоит из 1 и 0, задача нужно...

Работа с массивом.
найти количество элементов мвссива, которые больше 50. sos!!!! удалить из массива заданный элемент. сортировать массив по убыванию. ...

Работа с массивом
Всем привет! Помогите понять как надо, а то рецептов куча, но они отличаются сильно друг от друга и вызывают сомнения. Суть проста:...

Работа с массивом
Товарищи, помогите воспрепятствовать отчислению Сдавал уже несколько раз Все не принимали Возможно сможете вы МАССИВЫ В...

Работа с массивом
Помогите поменять кусок программы что бы считывались не байты , а был двумерный масси x и y где на пересечении пиксель, состоящий из 3...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru