Хостинг портала RFpro.ru: Московский хостер Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64 РАССЫЛКИ ПОРТАЛА RFPRO.RU Лучшие эксперты данной рассылки Номер выпуска: | 1392 | Дата выхода: | 05.12.2010, 06:00 | Администратор рассылки: | Лысков Игорь Витальевич (Старший модератор) | Подписчиков / экспертов: | 223 / 66 | Вопросов / ответов: | 2 / 2 | Вопрос № 181030: Здравствуйте, уважаемые эксперты! Прошу Вас, помогите с такой задачей: ОБЩАЯ ФОРМУЛИРОВКА ЗАДАЧИ для вариантов 1-20. В заданой 16-битной двоичной последовательности выделены 4 группы бит - 3 группы по 5 бит и одна из 1-го бита. П... Вопрос № 181035: Здравствуйте, уважаемые эксперты! Не могли бы Вы мне помочь составить программу сортировки элементов массива из 20 целых чисел, которая располагает четные числа больше 100 в одной, а меньше 100 в другой области памяти. Я только начала осваивать ... Вопрос № 181030: Здравствуйте, уважаемые эксперты! Прошу Вас, помогите с такой задачей:
ОБЩАЯ ФОРМУЛИРОВКА ЗАДАЧИ для вариантов 1-20. В заданой 16-битной двоичной последовательности выделены 4 группы бит - 3 группы по 5 бит и одна из 1-го бита. ПЕРЕСТАВИТЬ 5-битные группы в соответствии с заданным вариантом. Положение группы из 1-го бита задается вариантом и при перестановках 5-битных групп остается неизменным. В каждом варианте указан номер рисунка с распределением групп и требуемый порядок групп после их перестаноки.
16 разрядная последовательность хххххххххххххххх ----- ***** ? ..... 1гр. 2гр. 4 3 гр. после перестановки: 3 2 1
Основная программа в паскале, обработка - в файле .obj. Процессор 286й. Переставлять группы надо в числе введенном с клавиатуры в десятичной форме. Заранее большое спасибо. Отправлен: 29.11.2010, 22:25 Вопрос задал: Посетитель - 348444 (Посетитель) Всего ответов: 1 Страница вопроса » Отвечает Лысков Игорь Витальевич (Старший модератор) : Здравствуйте, Посетитель - 348444! Легко! Вот Вам программка на ассемблере. С программой на Паскале, полагаю, справитесь сами Программка несложная, думаю, разберетесь сами
Код: ; Подключение {$L chbits} { подключение файла chbits.obj } ; Описание function ChBits(:integer):integer;external; ; Вызов i:=ChBits(i); ; Функция меняет местами пять крайних бит :) .model large,pascal .code .286 public ChBits ChBits proc near n:word ;параметр - слово mov ax, n ;читаем слово mov cx, ax ;сохраняем в cx and cx, 000001111110 0000b ;оставляем неизменные биты and ax, 1111100000011111b ;биты, которые меняются xchg al, ah ;обмениваем al с ah shl ah, 3 ;подвигаем биты на край shr al, 3 ;и в этом байте тоже or ax, cx ;объединяем с неизменными битами ret ;результат в ax endp end ----- Люби своего ближнего, как самого себя Ответ отправил: Лысков Игорь Витальевич (Старший модератор) Ответ отправлен: 30.11.2010, 16:59 Номер ответа: 264445 Украина, Кировоград Тел.: +380957525051 ICQ # 234137952 Mail.ru-агент: igorlyskov@mail.ru
Оценка ответа: 5 Комментарий к оценке: Всё очень понятно и наглядно, большое спасибо! Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"? | Отправить SMS #thank 264445 на номер 1151 (Россия) | Еще номера » | Вопрос № 181035: Здравствуйте, уважаемые эксперты! Не могли бы Вы мне помочь составить программу сортировки элементов массива из 20 целых чисел, которая располагает четные числа больше 100 в одной, а меньше 100 в другой области памяти. Я только начала осваивать ассемблер, и пока не очень получается...((( Заранее спасибо) Отправлен: 30.11.2010, 03:04 Вопрос задал: Regina (Посетитель) Всего ответов: 1 Страница вопроса » Отвечает Лысков Игорь Витальевич (Старший модератор) : Здравствуйте, Regina! Я подправил Вашу программу. Сравните со своей. Полагаю, сами поймете суть изменений... Удачи в освоении Ассемблера!
Код: ;сортировка массива
DATA SEGMENT ; Открыть сегмент данных MAS DW 6, 102, 12, 150, 46, -78, 150, 200, -4, 76, 89, 287, -190, 27, 85, -3, 9, 15, 156, -96 ; Определить массив из 20 чисел MasMax DW 20 dup(?) MasMin DW 20 dup(?) DATA ENDS ; Закрыть сегмент данных
STK SEGMENT ; Открыть сегмент стека DW 100 DUP (?) ; Определить стек длиной 100 слов (а не байт!!!) STK ENDS ; Закрыть сегмент стека
ASSUME DS:DATA, CS:CODE, SS:STK ; Задать соответствия сегментов
CODE SEGMENT ; открыть сегмент кода START: MOV AX, DATA ; инициализировать MOV DS, AX ; сегментный регистр DS MOV CX, 20 ; Задать счетчик для цикла lea si, MAS ; Задать адрес массива MAS lea di, MasMax ; адрес массива MasMax lea bx, MasMin ; адрес массива MasMin MET1: ; цикл по всем словам lodsw ; читаем слово ax = ds:[si], si=si+2 test ax, 1 ; признаком четности является младший бит! jnz next ; = 1 - нечет - обходим cmp ax, 100 ; четные числа сравниваем с 100 jg SetMax ; если > 100, то пишем в массив MasMax mov [bx], ax ; если <= 100, то пишем в массив MasMin inc bx ; на следующий адрес inc bx jmp next ; на следующее слово SetMax: mov [di], ax ; пишем в MasMax inc di ; на следующий адрес inc di next: loop MET1 ; dec cx, переход на MET1, если cx не 0 mov ax,4c00h ;стандартный выход int 21h CODE ENDS ; закрыть сегмент кода END START ----- Люби своего ближнего, как самого себя Ответ отправил: Лысков Игорь Витальевич (Старший модератор) Ответ отправлен: 30.11.2010, 14:34 Номер ответа: 264442 Украина, Кировоград Тел.: +380957525051 ICQ # 234137952 Mail.ru-агент: igorlyskov@mail.ru
Оценка ответа: 5 Комментарий к оценке: Спасибо Вам огромное, Вы мне очень помогли!))) Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"? | Отправить SMS #thank 264442 на номер 1151 (Россия) | Еще номера » | Оценить выпуск » Нам очень важно Ваше мнение об этом выпуске рассылки! Скажите "спасибо" эксперту, который помог Вам! Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА на короткий номер 1151 (Россия) Номер ответа и конкретный текст СМС указан внизу каждого ответа. Полный список номеров » * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов) ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются. *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании. |
Комментариев нет:
Отправить комментарий