Помощь - Поиск - Пользователи - Календарь
Полная версия: Что-то вроде конкурса по программе на Ассемблере
Логин: Пароль:

Alf-Studio > Hard & Soft Zone > Программирование
ALEXRUS
В общем призов не будет, но мож к тому кто выиграет, то... кто знает, придумаю что можно дать в качестве награды.

В общем дана программа на Ассемблере, угадайте, что она делает, желательно всё сформулировать наиболее точно.

Все предположения писать в эту тему.

QUOTE
data segment

about DB '<SECRET>))','$'
kolvo DB 13,10,'how many symbol in word?> ','$'
slovo DB 13,10,'input word> ','$'
otvetok DB 13,10,'<SECRET>','$'
otvetne DB 13,10,'<SECRET>','$'

sl DW 64 dup(?)
ob DW 4 dup('j','e','n','a')
data ends
S segment STACK
DB 256 DUP(?)
s ends
text segment 'code'
assume CS:text, DS:data

begin: mov AX, data
mov DS, AX

mov DI, SP
mov DX, OFFSET about
mov AH, 09h
int 21h
restart:
mov DX, OFFSET kolvo
mov AH, 09h
int 21h
mov AL, 00
mov AH, 1
int 21h

mov AH, 30h
jmp down
plus1:
inc AH
down:
cmp AL, AH
ja plus1
mov BH,38h
cmp AH, BH
JA restart
mov AL, 30h
sub AH,AL
XCHG AH,AL
cbw
mov CX,AX
xor AX, AX
xor BX,BX


mov DX, OFFSET slovo
mov AH, 09h
int 21h
xor SI,SI
push CX
new_latter:
mov AL, 00
mov AH, 1
int 21h
mov AH,00
mov sl[SI], AX
add SI,0002h

loop new_latter
mov SI, 0000h
mov BX, sl[SI]
xor DX, DX
xor BX, BX
xor AX, AX
xor SI, SI

pop CX
push CX
mov SI, 0000h
mov DX, ob[SI]
b1:
mov BX, sl[SI]
add SI, 0002
cmp DX, BX
JE b2
;JNE b1
loop b1
cmp CX,0000h
JE exit


b2: or AX, 1000b
pop CX
push CX
mov SI,0002h
mov DX,ob[SI]
XOR SI,SI
povtorP:

mov BX, sl[SI]
add SI, 0002h
cmp DX, BX
JE b3
loop povtorP
cmp CX, 0000h
JE exit


b3: or AX, 0100b
pop CX
push CX
mov SI,0004h
mov DX,ob[SI]
XOR SI,SI
povtorP2:

mov BX, sl[SI]
add SI, 0002h
cmp DX, BX
JE b4
loop povtorP2
cmp CX, 0000h
JE exit


b4: or AX, 0010b
pop CX
push CX
mov SI,0006h
mov DX,ob[SI]
XOR SI,SI
povtorP3:

mov BX, sl[SI]
add SI, 0002h
cmp DX, BX
JE b5
loop povtorP3
cmp CX, 0000h
JE exit

b5: or AX, 0001b
cmp AX, 000Fh
JNE EXIT
mov DX, OFFSET otvetok
mov AH, 09h
int 21h
jmp ok


exit:
mov DX, OFFSET otvetne
mov AH, 09h
int 21h
ok:
mov AX, 4c00h
int 21h
text ends
end begin
PINguin
Угадалка подсчитывания кол-ва букв в слове?
Хм...Слабоват я все-таки в асме...Эх... sad.gif
ALEXRUS
нет

на К2 кстати можно также угадать, что эта прога делает smile.gif)
-=@L!=-
Она дурит нам голову. И автора надо найти и к стенке...
ALEXRUS
Али, а вот это уже точно не в тему.

Кароч прога производит выборку из определённого слова занесённых букв.
-=@L!=-
Ты понимаешь в чём дело.... Я попытался по-умному сделать - скомпилить и запустить. biggrin.gif Так не вышло нифуя. smile.gif На 14 строчку ругается. laugh.gif А мне разбираться влом. tongue.gif
Вот я и написал правильный ответ. biggrin.gif tongue.gif
ALEXRUS
у тебя какой компилятор
нужен от фирмы Borland aka TASM
-=@L!=-
Я masm'ом зафигачил... Через radasm...
Ну да ладно...
Pelton
А таблица умножения на асме не нужна? ))
ALEXRUS
QUOTE(-=@L!=- @ Nov 14 2005, 16:22) *

Я masm'ом зафигачил... Через radasm...
Ну да ладно...



masm это ваще сарай

tasm имхо лучше, т.к. тасмовский компилятор поддерживает masm, а масмовский tasm не поддерживает.
-=@L!=-
У меня радасм. Это среда для *асмов всяких. Но тасм мне влом искать.. У меня где-то валялся на дисках... И версия кастрированная. Нунах..
vadim
я терпеть немогу этот язык..... наверно самый дебильный
ALEXRUS
Зато напрямую с железом работает.

Наилучшее быстродействие.
PINguin
\\\masm это ваще сарай

Это масм-то сарай?
Да недавно 9-я версия вышла.
А перцы с васм.ру мутили версию с поддержкой .NET
Вот тасм- это самый настоящий сарай.
Когда последний раз обновлялся?

\\\я терпеть немогу этот язык..... наверно самый дебильный

Да, это вам, батенька, не кнопочки по форме возить, тут еще и мозг напрягать надо =)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.