Двумерный массив, TASM - Assembler

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

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

помогите пожалуйста заполнить двумерный массив с помощью цикла или другим способом , примерная конструкция:
MASS DW 16 DUP ('$')
..........
MOV CX,4 
start1:
PUSH CX
MOV CX,4
start2: 
.........
LOOP start2
POP CX
.........
LOOP start1

Решение задачи: «Двумерный массив, TASM»

textual
Листинг программы
        mov     edi,MASS
        mov     eax,1
        MOV     CX,4
start1:
        PUSH    CX
        MOV     CX,4
start2: 
        mov     [edi],ax
        add     edi,2
        inc     eax
        LOOP start2
        POP CX
        LOOP start1

Объяснение кода листинга программы

  1. mov edi,MASS — в качестве MASS выступает адрес двумерного массива, который хранится в регистре edi
  2. mov eax,1 — в качестве 1 выступает значение, которое будет записано в первый элемент массива, затем оно будет увеличиваться на единицу при каждой итерации цикла
  3. MOV CX,4 — в качестве 4 выступает количество элементов массива, которое определяется в регистре CX
  4. PUSH CX — сохранённое значение CX будет использовано в блоке обработки ошибок
  5. MOV CX,4 — восстановленное значение CX используется для повторного выполнения итерации цикла
  6. mov [edi],ax — записывается значение eax в элемент массива, который находится по адресу edi
  7. add edi,2 — указатель на массив увеличивается на 2, чтобы перейти к следующему элементу
  8. inc eax — значение eax увеличивается на единицу, чтобы перейти к следующему элементу
  9. LOOP start2 — выполняется до тех пор, пока не будет выполнено условие, указанное в блоке start2
  10. POP CX — восстанавливается значение CX, сохранённое в стеке
  11. LOOP start1 — выполняется до тех пор, пока не будет выполнено условие, указанное в блоке start1

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


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

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

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