Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2011, 22:19   #1
Стас_с
Пользователь
 
Регистрация: 05.07.2011
Сообщений: 22
По умолчанию Вывод на экран массив (ассемблер)

весь вечер мучаюсь с этим заданием, да может и лёгкое для многих
но уже две недели подряд практика в универе с 8 утра и до 5вечера каждый день опрос и лабы сдавать , устал уже
* выговорился теперь за дело

вот в чём суть:
нужно сделать вывод на экран массива y

вот код:
Код:
   Лабораторна робота №3
; Преобразовать массив X, расположив вначале его  отрицатель-
;ные, а затем неотрицательные элементы, сохранив в каждой из  двух
;групп исходный относительный порядок элементов. Оценить, как  при
;этом изменилось положение максимального по модулю элемента масси-
;ва X.
sseg segment stack 'stack'
     db        64 dup (?)
sseg ends
  data segment
     max dw       ? 
     x   dw 1, -2, 6,9, -3, 2, 7 	;исходный массив
	 n   dw 7
	 y   dw 7 Dup (?)
	 buf dw ?
	 
  data ends 
;
code segment
start   proc    far
assume  ss:sseg,ds:data,cs:code
        push    ds
        xor     ax,ax
        push    ax
        mov     ax,data
        mov     ds,ax
;--------------------------------
       lea  di,x
	   mov  cx,n 	   
       mov  bx,[di]
	   mov dx,di
;========================
c4: 
     mov ax,[di]
     cmp ax, bx
     jle m4
     mov bx,ax
     mov dx,di
  m4:	 
	 add di,2
     loop c4
     push dx	 
;------посмотрим что получится----
     lea di,x
	 lea si,y
	 mov cx,n
   c1:
      mov ax,[di]
      cmp ax,0
      jge m1
      mov [si],ax
      add si,2
   m1:
      add di,2
	  loop c1
	  lea di,x
	  mov cx,n
   c2:  
	  mov ax,[di]
	  cmp ax,0
	   jl m2
	  mov [si],ax
      add si,2
	m2:  
      add di,2
	  loop с2
;---------------------------
       lea si,y
	   mov cx,n
	   mov bx, [si]
	   mov dx,si
	   c5: 
     mov ax,[si]
     cmp ax, bx
     jle m5
     mov bx,ax
     mov dx,si
  m5:	 
	 add di,2
     loop c5    
;---------------------------
     lea ax,y 
	 sub ax,dx
	 mov bx, 2
	 cwd 
	 idiv bx
	 mov cx,ax
	 pop dx
	 lea ax,x
	 sub ax,dx
	 mov bx, 2
	 cwd 
	 idiv bx
	 sub ax,cx
	 mov max,ax
;============================
;--------------------------------------------------------

		  
ret
start	endp
code    ends
        end     start
помогите а?))

Последний раз редактировалось Стас_с; 07.07.2011 в 00:49. Причина: нашёл ошибку
Стас_с вне форума Ответить с цитированием
Старый 07.07.2011, 00:11   #2
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Таки в цикле и надо вывести.
Процедура IntegerOut - не помню откуда, может и не моя даже.
Вложения
Тип файла: rar proga63.rar (1.0 Кб, 73 просмотров)
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись фразы в массив и вывод на экран Morfius01 Visual C++ 1 27.05.2011 00:29
Ассемблер, вывод на экран Gromov Помощь студентам 0 19.05.2011 17:24
ассемблер. вывод строки на экран. Rikki-Tikki Помощь студентам 4 18.04.2011 23:51
написать ассемблер-программу,выводящую на экран скан-код sashok2009 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 08.06.2009 22:11