Хостинг портала RFpro.ru: Московский хостер Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64 РАССЫЛКИ ПОРТАЛА RFPRO.RU Лучшие эксперты данной рассылки Номер выпуска: | 1461 | Дата выхода: | 07.06.2011, 19:30 | Администратор рассылки: | Лысков Игорь Витальевич (Старший модератор) | Подписчиков / экспертов: | 214 / 63 | Вопросов / ответов: | 1 / 1 | Вопрос № 183488: Здравствуйте! Прошу помощи в следующем вопросе:требуется написать 3 варианта заданной подпрограммы ( на встроенном ассемблере, с использованием модели памяти PASCAL (листинг) и без использования директивы MODEL (листинг)). Программу, вызывающую эти п... Вопрос № 183488: Здравствуйте! Прошу помощи в следующем вопросе:требуется написать 3 варианта заданной подпрограммы ( на встроенном ассемблере, с использованием модели памяти PASCAL (листинг) и без использования директивы MODEL (листинг)). Программу, вызывающую эти подпрограммы с указанием автора и варианта задания (26-ый). Задание- подсчитать количество элементов >x в массиве Byte[n]. АСС- TASM. Очень рассчитываю на Вашу помощь ... Отправлен: 02.06.2011, 15:05 Вопрос задал: Дмитрий (Посетитель) Всего ответов: 1 Страница вопроса » Отвечает Зенченко Константин Николаевич (Модератор) : Здравствуйте, Дмитрий!
Код pascal TP7.0:
Код : const n=10; type tmass=array[1..n]of byte; var a:tmass; b,x:byte; function FA(var q:tmass;w,e:byte):byte; begin asm lds si,dword ptr q mov cl,w xor ch,ch mov ah,e xor bx,bx @01: lodsb cmp al,ah jae @@02 inc bx @02: loop @@01 mov ax,bx end end; begin for b:=1 to n do begin write('a[',b,']:='); readln(a[b]) end; x:=random(255); writeln('F(',x,'):=',FA(a,n,x)); writeln('F(',x,'):='); writeln('F(',x,'):='); readln; end.
Код на ассемблере с упрощенным описанием сегмента:
Код : model small;,pascal public FB code FB proc push bp mov bp,sp lds si,dword ptr[bp+8] mov cx,[bp+6] mov ax,[bp+4] xor bx,bx @01: lodsb cmp al,ah jbe @@02 inc bx @02: loop @@01 mov al,bl pOp bp ret 8 endp end
и полным описанием:
Код : _TEXT segment word public 'CODE' public FC assume cs:_TEXT FC proc push bp mov bp,sp lds si,dword ptr[bp+8] mov cx,[bp+6] mov ax,[bp+4] xor bx,bx @01: lodsb cmp al,ah jbe @@02 inc bx @02: loop @@01 mov al,bl pOp bp ret 8 endp ends end Удачи! ----- Итерация от человека. Рекурсия — от Бога. — Л. Питер Дойч Ответ отправил: Зенченко Константин Николаевич (Модератор) Ответ отправлен: 03.06.2011, 10:56 Номер ответа: 267558 Украина, Киев Тел.: +38-097-238-60-03 Адрес: Украина, Киев Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"? | Отправить SMS #thank 267558 на номер 1151 (Россия) | Еще номера » | Оценить выпуск » Нам очень важно Ваше мнение об этом выпуске рассылки! Скажите "спасибо" эксперту, который помог Вам! Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА на короткий номер 1151 (Россия) Номер ответа и конкретный текст СМС указан внизу каждого ответа. Полный список номеров » * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов) ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются. *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании. |
Комментариев нет:
Отправить комментарий