Заменить каждый нечетный элемент массива на следующий - Assembler

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

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

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

Решение задачи: «Заменить каждый нечетный элемент массива на следующий»

textual
Листинг программы
  1. model   tiny
  2. .code
  3. org 100h
  4. szMas   equ 15
  5. start:  xor ax,ax
  6.     mov es,ax
  7.     mov dx,es:[46Ch]
  8.     add dx,es:[46Eh]
  9.     push    ds
  10.     pop es
  11.     lea di,dwMas
  12.     mov cx,15
  13. @@01:   mov ax,7
  14.     ror dx,3
  15.     and ax,dx
  16.     stosw
  17.     loop    @@01
  18.     lea si,dwMas
  19.     mov cx,szMas
  20.     mov bx,10
  21.     call    OutMas
  22.     call    Change
  23.     call    OutMas
  24.     xor ax,ax
  25.     int 16h
  26.     ret
  27. OutMas: push    si
  28.     push    cx
  29.     call    NewLine
  30. @@02:   lodsw
  31.     call    OutNum
  32.     loop    @@02
  33.     pop cx
  34.     pop si
  35.     ret
  36. OutNum: push    cx
  37.     xor cx,cx
  38. @@03:   xor dx,dx
  39.     div bx
  40.     push    dx
  41.     inc cx
  42.     or  ax,ax
  43.     jnz @@03
  44.     mov ax,' '-'0'
  45. @@04:   push    ax
  46.     inc cx
  47.     cmp cx,5
  48.     jb  @@04
  49. @@05:   pop ax
  50.     add al,'0'
  51.     int 29h
  52.     loop    @@05
  53.     pop cx
  54.     ret
  55. Change: push    cx
  56.     push    si
  57.     dec cx
  58. @@06:   mov ax,[si]
  59.     test    ax,1
  60.     jz  @@07
  61.     mov ax,[si+2]
  62.     mov [si],ax
  63. @@07:   add si,2
  64.     loop    @@06
  65.     pop si
  66.     pop cx
  67.     ret
  68. NewLine:mov al,10
  69.     int 29h
  70.     mov al,13
  71.     int 29h
  72.     ret
  73. dwMas   dw  szMas dup(?)
  74.     end start

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


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

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

7   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы