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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2013, 19:37   #1
Пиф
Пользователь
 
Регистрация: 05.03.2013
Сообщений: 10
По умолчанию Проблема с блок-схемой? не понимаю как их строить (TASM)

Можете построить хотя бы схематично в паинте пожалуйста

Добавить новый элемент массива, если его значение не равно значениям элементов заданного массива А(I). I = 1,2,..,5. Максимальная размерность массива А(I)=10. Добавляемые числа находятся в массиве B(J). J = 1,2,...,5.


Код:
model small 
.stack 100h ;стэк 256 Кб
.data
    len2 dw 5 ;длина массива-результата
    len equ 5 ;длина исходных массивов
    mas2 db 2, 3, 6, 7, 8 ;массив откуда брать
    void dw ? ;раздел между массивами для удобного просмотра
    mas1 db 1, 2, 3, 4, 5 ;массив - результат
.code
    start: ;метка начала программы
        mov ax,(собака)data ;инициализируем ds сегмнтом данных
        mov ds,ax       ; через регистр ах
        mov cx,len ;цикл по всему массиву
        xor si,si ;исключающее или - обнуление счетчика цикла
    cicl1: ;цикл по массиву для добавления
        mov al,mas2[si] ;берем поочередно каждый элемент
        push cx ;запоминаем сх в стэк для вложенных циклов
        mov cx, len2 ;вложенный цикл по всему результирующему массиву
        xor di,di ;обнуляем счетчик второго цикла
    cicl2: ;пробегаем по массиву результату.
        cmp al,mas1[di] ;если в массиве таких элементов нет
        je metka
        inc di
    loop cicl2 ;то добавим
        mov di,len2       ;добавление
        mov mas1[di],al ;элемента в массив
        inc len2            ;увеличение длины массива
    metka:
        pop cx              ;если есть, то следующая итерация
        inc si                ;переход к следующему элементу
    loop cicl1 ;все элементы добавлены
    exit: ;выход
        mov ax,4c00h ;4с - номер функции выхода, 0 - код ошибки
        int 21h ;вызов библиотеки прерываний DOS
end start ;вход в программу с метки start
Пиф вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с блок-схемой? C++ Пиф Помощь студентам 4 10.03.2013 13:52
Приветы, не могу составить блок-схему к этой программе, не понимаю как работает? Пиф Общие вопросы C/C++ 1 10.03.2013 07:57
Блок-схема (не понимаю как ее создать) ScoPld Помощь студентам 5 24.05.2011 16:42
Помогите с блок-схемой 11twin11 Помощь студентам 2 24.02.2009 12:10