![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Assm - Макрокоманда выборки из массива |
|
Assm - Макрокоманда выборки из массива
|
Новый участник Сообщения: 1 |
Доброго времени суток. Так как я, откровенно, не силен в Эссемблере, прошу проверить, то что я написал и по возможности указать на ошибки.
Вот само задание: Вот собственно технические требования, записанные с точностью, с его слов. Текст программы: Написать макрокоманду для выборки из некоторого массива слов со знаком всех элементов больших одного значения, но меньших другого. С помощью этой макрокоманды обработать два массива, выбирая из 1-го элементы большие 1000, но меньшие 2000, а из 2-го - большие (-5000), но меньшие 5000 Name Program min1 = 1000 ; промежуток от 1000 до 2000 max1 = 2000 min2 = -5000 ; промежуток от -5000 до 5000 max2 = 5000 ;Описание переменных Data segment X1 dw 4B0h dw 8520h dw 3EDh dw 7D1h dw 384h dw 601h Y1 dw 6 Dup(?) X2 dw 8300h dw 1F4h dw 0F448h dw 13ECh dw 0EC14h dw 0D05h Y2 dw 6 dup(?) Data ends Stack SEGMENT DW 16 dup(?) StkTOp LABEL word Stack ends Code SEGMENT ASSUME CS: Code, DS: Data, ES: Data, SS: Stack abc macro X, Y, N, min, max ; x - входной массив. у - выходной массив. n - кол-во чисел во входном массиве. min, max - промежуток для выборки local M1, M2 mov cx, N ; кол-во чисел lea si, X ; адрес массива чисел lea di, Y ; адрес выходного массива M1: mov ax, [si] ; загружаем первое число cmp ax, min ; сравниваем JL M2 ; если меньше то идем на М2 cmp ax, max ; сравниваем JG M2 ; если больше идем на M2 mov [di], ax ; выборка числа add di, type Y ; переходим на другое число M2: add si, type X ; переходим на следующее число dec cx ; цикл JNZ M1 endm ; Основная программа Start: mov AX, Data mov DS, AX mov ES, AX mov Ax, Stack mov SS, AX mov SP, offset StkTop abc X1, Y1, 6, min1, max1 abc X2, Y2, 6, min2, max2 code ends end start |
|
Отправлено: 13:06, 04-01-2014 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Выбор данных из массива. | subuday77 | Скриптовые языки администрирования Windows | 1 | 25-12-2013 06:13 | |
Разное - Pascal. Запись из массива в файлы. | lenaustkz84 | Программирование и базы данных | 11 | 26-01-2012 18:32 | |
CMD/BAT - [решено] Пакетный файл для выборки из спика файлов текстовый(название и описание) | Скуб | Скриптовые языки администрирования Windows | 7 | 18-05-2010 15:17 | |
[решено] Вставить текст из массива | Не флужу | AutoIt | 16 | 19-07-2009 21:49 | |
Создание сложной выборки из MySQL | Vlad Drakula | Вебмастеру | 13 | 19-06-2004 10:22 |
|