Ввод с клавиатуры и поиск

Тема в разделе "WASM.BEGINNERS", создана пользователем Rifler, 12 апр 2009.

  1. Rifler

    Rifler New Member

    Публикаций:
    0
    Регистрация:
    12 апр 2009
    Сообщения:
    2
    Здраствуйте! Тут вот такая задачка, никак не могу дать ладу с ней. Под Dos
    Написать программу на языке Ассемблера, которая позволяет ввести с клавиатуры целочисленный массив из 7 элементов, найти и вывести на экран сумму всех элементов исходного массива из диапазона от -5 до 15,умноженную на минимальный элемент исходного массива.
     
  2. Morte

    Morte New Member

    Публикаций:
    0
    Регистрация:
    13 мар 2009
    Сообщения:
    14
    А в чем проблема возникла?
     
  3. c4m310t

    c4m310t New Member

    Публикаций:
    0
    Регистрация:
    19 дек 2008
    Сообщения:
    237
    прочти Юрова В.И. "Assembler для ВУЗов" там как раз о подобном много написанно, реализация на TASM'e.
     
  4. Rifler

    Rifler New Member

    Публикаций:
    0
    Регистрация:
    12 апр 2009
    Сообщения:
    2
    Morte
    вот смотри, я вроде написал середину прожки(не знаю, прально или нет). Глянь плиз, может я напутал со знаками и тд
    Код (Text):
    1. SST SEGMENT STACK '' STACK ''
    2.   dw 20 dup (?)
    3. SST ENDS
    4.  
    5. DATS SEGMENT
    6. mas dw 7 dup (0) ; наш массив
    7. min dw 0
    8. SUM dw 0
    9. DATS ENDS
    10.  
    11. CODS SEGMENT
    12.      ASSUME SS:SST, DS:DATS, CS:CODS
    13.      NN: mov Ax, DATS
    14.          mov DS, Ax
    15.  
    16. ; здесь ищем минимальный элемент
    17.          mov ax, mas[0]
    18.          mov cx, 6
    19.          mov si, 2
    20.     m1:  cmp ax, mas[si]
    21.          jnb m2
    22.          mov ax, mas[si]
    23.     m2:  inc si
    24.          inc si
    25.          loop m1
    26.          mov min, ax
    27.  
    28.  
    29. ; здесь находим числа от -5 до 15 и суммируем их
    30.          mov cx, 7
    31.          mov si, 0
    32.     m3:  cmp mas[si], -5
    33.          jb m4
    34.          cmp mas[si], 15
    35.          ja m4
    36.          add sum, mas[si]
    37.     m4:  inc si
    38.          inc si
    39.          loop m3
    40. ; и перемножаем на мин элемент массива
    41.          imul sum
    42.  
    43.          mov AH, 4CH
    44.          INT 21H
    45. CODS ENDS
    46.      END NN
    Теперь вопрос - как ввести массив mas с клавы и как вывести на экран Sum?