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

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

  Все выпуски  

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


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


       

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

 

Выпуск

#41.2

 

От автора:

 Добрый вечер! Эта вторая часть выпуска #41. Посвящена она решению Tyler Durden'а. Его решение не было опубликовано в первой части, поскольку, для формирования рассылки был использован старый архив решений, где его решения не было. Так что я исправляюсь.

В выпуске:

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

Решение задачи:

Условие задачи #40.

Ваша программа должна установить графическое разрешение экрана 320х200
(режим  13h),  нарисовать  картинку, дождаться нажатия любой клавиши и
завершить  свое  выполнение, вернув экрану текстовое разрешение (режим
03h).

Рисунок должен занять весь экран - 64000 точек.

Алгоритм   рисования.   Программа  обрабатывает  все  точки  экрана  c
координатами  X (от 0 до 319) и Y (от 0 до 199) и меняет их цвет. Цвет
точки  с  координатами (X;Y) вычисляется по формуле (X^2 - Y^2) div 2.
На Basic этот алгоритм мог быть реализован так: 

For X = 0 To 319
    For Y = 0 To 199
     PSet (X, Y), ((X * X - Y * Y) \ 2)
    Next
Next

!  Так  как режим 13h поддерживает только 256 цветов, то реальный цвет
точки  будет  равен младшему байту регистра или переменной, которую Вы
использовали для вычислений. 
!  Нельзя  модифицировать  предложенный  алгоритм  (нельзя   например,
размножать часть картинки по экрану и пр.)
!  Программа  не  работает  с командной строкой, поэтому можно считать
AX=BX=0.
 

В решении задачи приняло участие 7 человек, но засчитать я смог только 6.

Итак, Таблица участников сегодня такова:

 

1

G3, Shur, Tyler Durden

37 байт

2

Black_Mirror

40 байт

3

FatMoon

42 байта

4

Sanek

46 байт

 

Решения.

 Решение by Tyler Durden [37 байт]

;compo 40
;by tyler durden
;compo40@tylerdurden.net.ru
;http://www.tylerdurden.net.ru/
org 100h
push 0a000h
pop es
mov al,13h
int 10h
 .draw:
cwd
mov ax,di
mov bx,320
div bx
mul al
xchg ax,dx
mul al
sub ax,dx
shr ax,1
stosb
in ax,60h
das
jc .draw
mov ax,03h
int 10h
retn

Послесловие:

На главной странице "Задач" [http://codeclimber.com/cgi-bin/asmtasks.cgi] будут даны размеры программ лидеров, как только таковые появятся, а также все официальные дополнения к условию задачи. И так будет с каждой задачей. Узнав, эту информацию каждый может прислать более оптимизированное решение.

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

URL: http://codeclimber.com  E-Mail: compo@codeclimber.com

[c] CodeClimber Все права защищены, 2003-2004


http://subscribe.ru/
http://subscribe.ru/feedback/
Адрес подписки
Отписаться

В избранное