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

Узнай цену своей работы

Формулировка задачи:

Всем привет. Есть такое задание: "Дан массив А типа byte. Прибавить к элементам массива A единицу и записать результат в массив B." Есть решение почти рабочие но только на первом цикле программа зацикливается, а почему ни как не пойму в чем проблема?
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

Решение задачи: «Прибавить к элементам массива A единицу и записать результат в массив B»

textual
Листинг программы
 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5
Похожие ответы