Автор Тема: Кто может помочь переделать программку?  (Прочитано 977 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Nastya55555

  • Коллежский регистратор
  • *
  • Сообщений: 3
  • Репутация: -1
Нужно переделать ввод и вывод. Надо сделать ввод с эхом.

        include io.asm  ; Включаем файл для возможности удобного ввода-вывода (inint, outint)
        .model small
        .stack 100h
        .data
S       equ     10      ; Количество элементов в массиве
ish   db   'Ishodnij massiv: $'
res   db   'Novij    massiv: $'
a   dw   1,2,8,5,7,0,1,2,9,2
        .code

Begin:
   mov   AX, @Data
   mov   DS, AX

; ----------------- Вывод исходного массива   
   mov   ah, 09h
   mov   dx, offset ish
   int   21h        ; Вывод строки ish
   mov   CX, S      ; В регистр-счётчик заносим кол-во элементов массива
   mov   BX, 0
c1:   outint   A[BX]   ; Выводи на экран элемента массива со смещением BX
   outch   ' '     ; Вывод символа пробела
   add   BX, 2   ; Переходим к следующему элементу
   loop   c1
   newline      ; Переход на новую строку

; ------------------ Преобразование массива
   mov   DX, a      ; В DX пусть будем текущий максимальный элемент.
            ; вначале это первый элемент
   mov   CX, S-1   ; Операции нужно провести со всеми элементами, кроме первого
   mov   BX, 2   ; BX настраиваем на второй элемент
c2:   cmp   DX, a[BX]  ; Сравниваем максимальный элемент с текущим
   jge   m1
   mov   DX, a[BX]  ;Если текущий элемент больше максимального, обновляем максимальный (DX)
m1:   mov   a[BX], DX   ; Заменяем текущий элемент массива на максимальный из предшедствующих и его самого
   add   BX, 2   ; Переходим к следующему элементу
   loop   c2

; ----------------- Вывод преобразованного массива
   mov   ah, 09h
   mov   dx, offset res
   int   21h        ; Вывод строки res
   mov   CX, S      ; В регистр-счётчик заносим кол-во элементов массива
   mov   BX, 0
c3:   outint   A[BX]   ; Выводи на экран элемента массива со смещением BX
   outch   ' '     ; Вывод символа пробела
   add   BX, 2   ; Переходим к следующему элементу
   loop   c3
   newline      ; Переход на новую строку
; ---------- Финиш
        mov ax, 4C00h
        int 21h
        end Begin

Оффлайн dEEp

  • Глобальный модератор
  • Тайный советник
  • *****
  • Сообщений: 2021
  • Репутация: 29
  • Пол: Мужской
Re: Кто может помочь переделать программку?
« Ответ #1 : јРЩ 26, 2009, 06:03:38 pm »
нарушение трёх правил!
0. не сказано где именно ошибка и что именно не работает.
1. код в теги
2. название темы не отражает её суть
Подпись - есть нечто иное, как изъяснение общей сути человека, выраженное кем-то более великим, чем тот, кто написал его в каком-либо месте в любой форме изложения....