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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2010, 10:51   #1
natt23
Пользователь
 
Регистрация: 20.11.2010
Сообщений: 11
По умолчанию Сортировка массива

Всем доброго времени суток Я ввожу число,проверяю положительное оно или отрицательное и записываю его в соответствующий массив.
Код:
.model small
.586
LOCALS
include and1.inc
.data
     nepol      db  'Нет положительных чисел!',13,10,'$'	
     neot       db  'Нет отрицательных чисел!',13,10,'$'	
     mprog      db '*****Программа сортировки массива*****',13,10,13,10
     mvvod      db 'Введите количество элементов массива _ : ','$'
     mrezp       db 'Результат: $'
     mrezo      db 'Результат: $'
     merr       db 'Ошибка!',13,10,13,10,'$'
     xpol	db 'x>0',13,10,'$'
     xotr	db 'x<0',13,10,'$'
     vih	db 'Нажмите любую клавишу ...',13,10,'$'
     line       db 13,10,'$'
     n	        dw  ?
     pl         dw 0	
     buf        db 80 dup (?)
     m          dw 0
     masp       dw 10 dup (0)
     maso	dw 10 dup (0)	
     rez        dw  0
     pr         dt  0.000000000000001
     temp       dt  0.0
     tochn=3

.code
start proc
        pusk
        write mprog
        write mvvod
	Input n
	mov cx,0
	mov si,0
	mov di,0
;ввод массива
massi:  Input m
	cmp m,0
	jge pol
;сортировка
	mov maso[si], m
	inc si
	jmp cikl
;положительные
pol:    mov masp[di],m
	inc di
cikl:	inc cx
	cmp cx,n	
	je gotovo
	loop massi
;vivod
gotovo:	cmp di,0
	je netp
;vivod polojitelnix	
	write mrezp
	mov pl,di
	mov di,0
vivpol:	mov rez, masp[di]
	rezult
	inc di
	cmp di, pl
	jne vivpol
	jmp vivot	
netp:   write nepol
vivot:	cmp si,0
	jne otric	
	write neot
	jmp konec
;вывод отрицательных
otric:  mov pl, si
	mov si,0
	mov rez, maso[si]
	rezult
	inc si
	cmp si,pl
	jne otric
konec:	write vih
	mov ah,1
	int 21h
	mov ah,4ch
	int 21h
	endp
end start

Ругается на строки где я пытаюсь записать число в массив,и затем из массива число в результат для вывода. Помогите пожалуйста,в чем ошибка и как исправить. Заранее спасибо.
Файл and1.txt содержит макросы для ввода-вывода чисел(для использования в программе меняется расширение на inc).
Вложения
Тип файла: txt and1.txt (6.2 Кб, 132 просмотров)

Последний раз редактировалось Stilet; 20.11.2010 в 16:28.
natt23 вне форума Ответить с цитированием
Старый 21.11.2010, 12:21   #2
nZil
 
Регистрация: 21.11.2010
Сообщений: 5
По умолчанию

Привет!
Попробуй вместо
Цитата:
Код:
mov masp[di],m
написать
Код:
mov masp+di,m

Последний раз редактировалось nZil; 21.11.2010 в 12:24.
nZil вне форума Ответить с цитированием
Старый 21.11.2010, 13:31   #3
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

У процессоров x86 отсутствуют команды копирования данных память-память. Есть команды копирования память-регистр, регистр-память, регистр-регистр. Об этом вам компилятор пишет.

Цитата:
Turbo Assembler Version 3.1 Copyright (c) 1988, 1992 Borland International
Assembling file: proga52.asm
**Error** proga52.asm(49) Need register in expression
Исправить двумя способами:
1. копировать через стек:
Код:
	push m
	pop maso[si]
2. копировать через регистр:
Код:
	mov ax, maso[si]
	mov rez, ax
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 22.11.2010, 10:49   #4
natt23
Пользователь
 
Регистрация: 20.11.2010
Сообщений: 11
По умолчанию

Спасибо,заработало)))
natt23 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива методами предсортировки и слияния, и пирамидальная сортировка. lenny_24 Помощь студентам 2 17.04.2011 18:57
Сортировка массива Konstantin007 Общие вопросы .NET 6 16.10.2010 14:54
Сортировка массива gellalo Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 22.05.2010 18:27
Сортировка массива.С++ bpystep Помощь студентам 2 13.10.2009 07:35