Правила - Рейтинг участников - Библиотека решений

Решения задачи #13.

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

2. Alexey Volkov - 7 байт.

3. Beeblebrx - 7 байт.

4. G3 - 7 байт.

5. Ayl - 8 байт.

6. Odin - 8 байт.

7. Eugene - 8 байт.

8. Torax - 8 байт.

9. Elf - 8 байт.

10. Alexey_1 - 8 байт.

11. Galkin Oleg - 8 байт.

 

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

Изменить значения всех регистров кроме IP и одного другого (на выбор) на 0FFFFh.

Решение by Alexey Volkov, Beeblebrx, G3:

.model tiny
.386
.code
org 100h
Start:
dec            ax
MainLoop:
push          ax
loop           MainLoop
popa
int             20h
end           Start

 

Комментарий: Не подумайте, что это командное решение, просто он было одинаково у всех приславших. Идея проста: командой dec ax, помещаем в AX 0FFFFh, а затем заносим в стек это значение 0FFh раз (при старте CX=0FFh). И в конце концом считывается в регистры.

 

Решение by Ayl, Odin, Eugene, Torax, Elf, Alexey_1, Galkin Oleg:

;размер 8 байт
;примечание:
;popa выбирает регистры из стека в порядке ax cx dx bx sp bp si di
org   100h
mov cl,8              ;делаем цикл на 8 регистров
p:      push 0ffffh ;заносим в стек
loop  p
popa                     ;выбираем из стека в регистры
ret
Hosted by uCoz