Отправляет email-рассылки с помощью сервиса Sendsay

Задачи по ассемблеру

  Все выпуски  

Задачи по ассемблеру


Информационный Канал Subscribe.Ru


Задачи по ассемблеру.


Выпуск #2.

Добрый день, уважаемые подписчики! Ко мне уже поступило два решения задачи #1. Комментарии к ним я опубликовал ниже.

А сейчас по просьбе подписчиков опубликовываю полные правила (постараюсь до тонкостей).

1. На решение задачи дается 4 дня. Если решение за это время ни от кого не прислано, я публикую свое решение. Но то не значит, что эту задачу уже нельзя решать. В любой момент Вы можете прислать решение любой задачи, но соблюдая ссылку, которая расположена вместе с задачей в том или ином выпуске. И еще если Вы собираетесь присылать мне решение спустя некоторого времени, больше 4 дней, то проверьте: может быть размер Вашей программы совпадает с размером моей, или даже больше? Тогда эту программу лучше не посылать.

2. Условие будет оформляться так: Если во входных данных дано число, то для решения используется только это число. Если во входных данных будет написано, например, EAX=любое число, то Вы решаете задачу, используя любые число.

3. В размер программы входит:

а). Вся пересылка входных данных в регистры, или в переменные.

б). Команды, решающие поставленную задачу.

в). Код корректного выхода.

4. Разрешено пользоваться инструкциями любого процессора Intel.

5. Запрещается пользоваться упаковщиками кода типа UPC.

6. Программа должна нормально работать в Сеансе MS-DOS.

7. Я не рассматриваю программы, которые занимают больше дискового пространства, чем моя.

8. Решения должны быть с комментариями. В заголовке указывайте номер задачи, способ компиляции, размер откомпилированного файла, свой ник (или имя) и электронную почту. Пример:

;Task #1

;Способ компиляции: 

;tasm task.asm

;tlink /t task.obj

;Автор: SomeBody

;E-Mail: somebody@somedomen.ru

Далее должен идти исходный текст вашей программы. Присылать можно как вложенный файл, так и просто письмо с программой. Если Вы присылаете вложенный файл, то не используйте символов кириллицы, или сохраняйте файл в кодировке Windows-1251; так же можно русские буквы печатать русскими.

9. Я оставляю за собой право изменить, внести изменения в Правила.

Решение задачи #1

Напомню: это задача про перемену ax и старшего слова ebx. Самый короткий код, код размером 16 байт прислал Broken Sword. Вот его решение, правда с моими комментариями:

; Input:
; EAX=00001234h
; EBX=43210000h
; Output:
; EAX=00004321h
; EBX=12340000h
.model      tiny
.386
.code                 
org         100h
@@start:
     mov         AX,1234h      ;Заполняем регистры
     mov         EBX,43210000h ;данными из условия

     xchg        AX,BX         ;Помещаем в BX значение AX 

                               ;- это короче команды mov AX,BX на 2 байта
     ror         EBX,16        ;Циклический сдвиг на 16 бит - EBX = 12344321h
     xchg        AX,BX        
;AX=4321h EBX=12340000h
                 
     ret                       ;Завершаем программу
end         @@start

У кого есть более короткое решение присылайте указав в теме номер задачи.

Задача #2.

У меня получилась программа на 22 байта. Кто меньше?

Условие:

Представьте себе экран DOS'а - консоль. Запустите несколько программ, либо просто что-нибудь напечатайте на экране. Главное, чтобы на экране был какой-то текст.

Задание:

Цвет текста изображенного на экране нужно изменить на зеленый,  оставив фон черным.

Отправить решение

На главной странице сайта www.igoryksoft.narod.ru будут даны размеры программ лидеров, как только таковые появятся. И так будет с каждой задачей. Узнав, эту информацию каждый может прислать более оптимизированное решение.

Любые предложения по улучшению рассылки, Ваши задачи, вопросы прошу присылать мне на почту, указанную внизу рассылки. И у меня к Вам вопрос: стоит ли ставить форму для отправки Ваших ответов ко мне на электронную почту или лучше без нее?

(с) IgorykSoft Все права защищены! 
URL: www.IgorykSoft.Narod.Ru  E-Mail: Igoryk@Yandex.Ru


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное