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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2010, 19:58   #1
Godod
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 16
По умолчанию Нахождение положительных элементов в массиве [Assembler]

Добрый день\вечер. В общем ситуация такая. Есть задача сколько положительных, нулевых и отрицательных элементов в массиве и дана для примера задача нахождение последних L положительных элементов в массиве. Но часть кода так и осталась для меня загадкой, для чего это делалось. Прошу прояснить меня в этом деле, а если можно тогда подсказать как сделать код на ассемблере. Вот мой набросок:
Код:
title Lab5
.MODEL Large,Pascal
LOCALS @@
.DATA
EXTRN array:WORD,array_size:WORD,exit:BYTE
EXTRN L:WORD,res:WORD
.code
public lab5
arr EQU array[BX]
Lab5 proc far
mov res,1 ; res = 1;
XOR SI,SI ; j=0;
XOR BX,BX ; регистр-индекс
;=== Решение задачи ===
mov cx,array_size
@@Begin:
mov DI,arr ; array[i]
cmp DI,0   ; if(array[i]>0)
JLE @@Cont ; Нет
;==== array[i]>0 ====
inc SI     ; j++
@@Cont
cmp SI,0   ; нашли положительные ответы?
JG @@Exit  ; ДА
mov exist,-1 ; нет положительных ответов
@@Exit
ret
Примеры которые доступны внизу в картинках. У меня несколько вопросов по теоритическому вопросу. Зачем мы сохраняем значение регистров, а потом передаем в С++? Чтобы там просто вывести сам массив и все? Мы очищаем регистр SI,а потом увеличиваем на единицу и у нас там будет 1. Зачем мы его сохраняем? Потом передается в С++ это 1 и он выводит buf(DI),т.е. опять массив зачем?
Изображения
Тип файла: jpg asm1.JPG (64.5 Кб, 88 просмотров)
Тип файла: jpg asm2.JPG (44.1 Кб, 82 просмотров)
Тип файла: jpg 123.JPG (26.5 Кб, 80 просмотров)
Тип файла: jpg 1234.JPG (31.3 Кб, 88 просмотров)

Последний раз редактировалось Godod; 07.11.2010 в 20:01.
Godod вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В массиве A, состоящем из 10 элементов, подсчитать количество положительных элементов Alex61 Помощь студентам 5 16.05.2009 23:06
Найти сумму последних L положительных элементов в массиве A={a[i]}. Assembler Kasim Помощь студентам 2 16.12.2007 16:12
Нахождение двух одинаковых элементов в массиве Stas))) Помощь студентам 4 01.06.2007 12:23