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

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

  Все выпуски  

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


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


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


Выпуск #10.

Добрый день, уважаемые подписчики! Эх, скоро праздники... Читайте! Еще несколько просьб:

Сегодня в выпуске:

1. Обязательно прочтите!

2. Решение задачи #9.

3. Задача #10.

4. Предложение.

5. Дискуссия.

6. Кое-что еще!

Обязательно прочтите!

1. Ко мне приходит много писем. На все я отвечать не успеваю, потому могу не отправить письмо автору неправильного решения. Поэтому прошу не обижаться - у Вас все равно всегда есть возможность изменить свое решение.

2. Не запаковывайте zip'ом или rar'ом (и другими архиваторами) свои решения. Если Ваше решение занимает 755 байт (например), архиватор сделает из него 4-5 Кб.

3. Я не принимаю программы с ошибками, но бывает упускаю и правильные. Причины две: могу просмотреть, а может быть Ваше письмо не дошло. Поэтому пишите письма если что...

4. Я составляю программы с минимальным уровнем оптимизации по размеру, в связи с этим ко мне приходят жалобы: "У меня программа раза в три меньше Вашей, что у меня не правильно?" Ладно. Я тоже буду оптимизировать свои программы. Держитесь!!! :D.

Решение задачи #9.

Опять было прислано много решений -  порядка пятидесяти. Поэтому пришлось немного повременить с выходом рассылки.

Таблица рекордов к данной задаче.

1. Xal - 6-7 байт.

2. Serj - 6-7 байт.

3. Ayl - 6-7 байт.

4. Ungydrid - 8 байт.

5. Konstantin Zenchenko - 8 байт.

6. Eugene - 8-9 байт.

7. [stl] - 8-9 байт.

 

Решение by Xal:

.model tiny
.386
.code
org 100h
start:
dec di
dec sp
stosb ; ES:DI = AL
ret
end start

 

Решение by Serj:

;task#9
;Автор:Serj
;Способ компиляции: nasmw task9.asm -o task9.com
;7 byte
org 0100h
dec sp         ;sp=sp-1
mov bp,sp      ;bp=sp
mov [bp],al    ;[bp]<-al
ret

 

Решение by Ayl:

; Assembler Tasks COMPO #9
; tasm 9-4.asm
; tlink /x /t 9-4.obj
; 9-4.com
; by Ayl
; size: 7 bytes
 .Model TINY
.286
 .Code
.StartUp
  dec  di         ; пpи стаpте DI = SP = 0fffeh
  mov  sp, di     ; коppектиpуем SP
  mov  [di], al   ; сохpаняем AL
  int 20h         ; выходим
end

 

Решение by Ungydrid:

; Task#9 вариант с инициализацией
; Описание: типа push al
; Размер: 8 байт
; Рецепт: tasm, tlink /t /x
; Автор: UNGYDRID

.model tiny
.code 
org 100h

start:
mov al, 25 

dec sp ; заранее уменьшаем значение вершины стека
mov di, sp 
stosb ; и записываем туда al
inc sp ; восстановить-то стек перед выходом все-таки желательно
ret
end start

 

Решение by Konstantin Zenchenko:

;task#9
;tasm 9
;tlink /t 9
;9
cseg segment
org 100h
assume cs:cseg,ds:cseg,ss:cseg
main:
dec sp ; sp=sp-1 изменяем указатель стека
mov bx,sp ; }push al
mov [bx],al ; [sp]=al записываем в стек
inc sp ; sp=sp+1 востанавливаем указатель
ret
cseg ends
end main

 

Решение by Eugene:

;написал Eugene
;способ компиляции: fasm 9.asm 9.com
;размер 9 байт
        org     100h
        mov     al, 12h
        dec     sp
        mov     di, sp
        mov     [di], al
        int     20h

 

Решение by [stl]:

; task9.asm
; tasm task9.asm
; tlink /x /3 /t task9.obj
; 9 bytes
.386
IDEAL
MODEL tiny
CODESEG
ORG 100h
start:
mov al,12h ;8-bit value to push
dec sp
mov bx,sp
mov [bx],al
int 20h ;terminate program
END start

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

Задача #10.

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

Задание:

Написать программу, которая бы выводила на экран значения флагов (1 или 0) в порядке, в котором они располагаются в регистре FLAGS (от младшего (0) бита к старшему (15)).

Т.е. на экране должно отобразиться после запуска Вашей программы нечто вроде:

00100000101001100.

Отправить решение до 29.12.2002

Предложение.

Может быть вы слышали, что на сайте hugi.de/compo даются задачи (естественно труднее, чем в данной рассылке). Решить одному человеку данную задачу будет непросто, а иногда даже невозможно. Maverick предлагает создать команду (небольшую - человек 5-10) и решать задачи все вместе. Что Вы можете сказать по этому поводу?

Кто хочет участвовать высылайте запрос сюда (я просто не обратил внимание на особенности закрытой конференции, поэтому лучше запросы посылать мне): mailto:igoryk@yandex.ru?Subject=Команда для COMPO 

Дискуссия.

Новая тема: "Каких программ по-вашему мнению не хватает на компьютерном рынке, но если бы таковые существовали, то пользовались большим успехом?"

Ответы сюда: mailto:igoryk@yandex.ru?Subject=Дискуссия 

Кое-что еще.

31 декабря возможно выйдет специальный выпуск этой рассылки, посвященный Новому году. Присылайте мне все что хотели бы увидеть в этой рассылке, но не отклоняйтесь от тематики!

В заключение...

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

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

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


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

В избранное