Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Образовательный студенческий форум _ Информатика / Программирование _ Assembler

Автор: onlyY?!... 22.4.2009, 13:44

Здравствуйте Форумчане.

Задача поставлена такая - Дан массив из 10 байт.Необходимо вычислить сумму абсолютных величин, меньших 6

Сделал блок-схему и вот словестное описание к ней:

Начало
Загружаем адрес смешения сегмента ( например lea bx,mas)
Обнуляем ax (xor ax,ax)
Делаем цикл for (i = 1 до 10 с шагом 1)
Делаем условие (a(i))<0 . Если нет - neg (элемент). Если да - оставляем элемент с тем же знаком
Делаем условие (a(i)<6) . Если нет - возвращаемся к условию и проверяем все элементы. Если да - Суммируем и записываем сумму в ax (ax=ax+a(i))

Помогите пожалуйста перевести этот алгоритм в код. Заранее благодарю.

Автор: Inspektor 23.4.2009, 21:20

Примерно так:

Код
    xor dx, dx
    mov ecx, 5
    cikl:
    mov bl, mas[ecx-1]
    mov al, bl
    shr al, 7
    cmp al, 1
    jne m0
    neg bl
    m0:
    cmp bl,6
    jae m1
    add dx,bx
    m1:
    loop cikl

Только у меня такое ощущение, что определить знак числа можно быстрее, но как х/з sad.gif

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)