Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
Napka
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 27
1

Прибавить к элементам массива A единицу и записать результат в массив B

26.04.2013, 18:44. Просмотров 1361. Ответов 6
Метки нет (Все метки)

Всем привет. Есть такое задание:
"Дан массив А типа byte. Прибавить к элементам массива A единицу и записать результат в массив B."

Есть решение почти рабочие но только на первом цикле программа зацикливается, а почему ни как не пойму в чем проблема?

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
a db 1,2,3,4,5,6,7,8,9,10
    b db 1,2,3,4,5,6,7,8,9,10
    
    mov ax,0    
    mov cx,0
    mov dx,0
    mov si,0
    mov di,0
    
    mov cx,0
    mov cx,10
    // вот здесь начинает зацикливаться
    l: add a[si],1
    inc si
    dec cx
    cmp cx,0
    jmp l
    
 
    mov dx,0
    mov dx,10   
 
    n: mov al,a[si]
    mov b[di],al
    inc si
    inc di
    dec dx
    cmp dx,0
    jmp n
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2013, 18:44
Ответы с готовыми решениями:

К последнему элементу второго массива прибавить последний элемент первого, к предпоследнему - прибавить предпоследний
Объявите в программе два массива 16-битных целых со знаком. Количество элементов массивов должно...

Записать результат в массив
Задача такова есть массив, нужно все элементы поделить на 7, а остатки деления записать в новый...

Как поразрядно прибавить единицу к элементам матрицы?
Подскажите дорогие Форумчане! Это должно примерно так выглядеть 0 0 0 0 0 0 1 0 0 ...

Прибавить единицу к введенному числу и вывести результат
Начал изучать Ruby по этому сайту http://www.shokhirev.com/mikhail/ruby/ltp/Chapter04.html Так...

К значению каждого элемента из массива in прибавить значения двух соседних элементов, результат записать в out
void addNeighbours (double *in, double *out, int n); К значению каждого элемента из массива in...

6
Argogo
956 / 265 / 46
Регистрация: 29.03.2013
Сообщений: 573
26.04.2013, 19:15 2
Napka, ты делаешь сравнение
Цитата Сообщение от Napka Посмотреть сообщение
cmp cx,0
а затем безусловный переход
Цитата Сообщение от Napka Посмотреть сообщение
jmp l
исправь на
jne l
и перестанет бесконечно циклить. И второй цикл тоже также поправь.

а вообще
Цитата Сообщение от Napka Посмотреть сообщение
dec cx
cmp cx,0
jmp l
лучше заменить на
loop l
1
Полный 30h
Эксперт быдлокодинга
3193 / 491 / 65
Регистрация: 04.11.2010
Сообщений: 1,272
26.04.2013, 19:48 3
Я бы сделал так
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
 a db 1,2,3,4,5,6,7,8,9,10   ; исходное
 b db 10 dup ?                          ; итог 
 
 mov cx,10                               ; циклы
 cld                                         ; направление   
 lea si,a                                   ; адрес исходного
 lea di,b                                   ; адрес итога
 
Metka:
    lodsb                   ; загрузить в AL байт из массива а
    inc AL                  ; увеличить на еденицу
    stosb                   ; загрузить  AL байт в массив b
loop Metka
З.Ы. в живую не проверял
2
Qazan
215 / 63 / 25
Регистрация: 30.04.2013
Сообщений: 865
Записей в блоге: 10
01.05.2013, 16:29 4
В какой среде пишешь ?
0
Troll_Face
01.05.2013, 16:59
  #5

Не по теме:

Цитата Сообщение от Qazan Посмотреть сообщение
В какой среде пишешь ?
в блокноте:D

0
Qazan
215 / 63 / 25
Регистрация: 30.04.2013
Сообщений: 865
Записей в блоге: 10
01.05.2013, 21:47 6
Notepud ++ )) имею ввиду отлаживается ли где либо код (кроме как тобой) ?
или ты просто фаил подцепляешь к проекту ))
0
Napka
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 27
02.05.2013, 16:13  [ТС] 7
Цитата Сообщение от Argogo Посмотреть сообщение
лучше заменить на
loop l
Пробовал такое но он не начинает цикл почему то, а вои jne все нормально, спасибо за помощь
0
02.05.2013, 16:13
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2013, 16:13

Двумерный массив: ко всем четным элементам массива прибавить первый элемент соответствующей строки
Дан двумерный массив целых чисел: а) ко всем четным элементам массива прибавить первый элемент...

Массив: Ко всем нулевым элементам прибавить N, из всех положительных - вычесть А, ко всем отрицательным - прибавить B...
Дан массив x(10). Ко всем нулевым элементам прибавить N, из всех положительных элементов вычесть А,...

Ко всем нулевым элементам массива прибавить n
Ко всем нулевым элементам прибавить n, из все положительных элементов вычесть a, ко всем...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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