- 1
cycle_0001: loop cycle_0001
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
cycle_0001: loop cycle_0001
обнуление ECX
0
0871 jmp 0x0871
Прислали после дизассемблирования:))
0
mov ecx, 200h - 1
not ecx
and eax, ecx
Лень считать в уме
0
...
cmp eax, 0
ja l1
jna l2
l2:
...
сферический говнокод в ваккуме
0
<Ponchik> Передавайте преведы
<Hormold> Привет античату!
<%luz3r> h1
Превееееед
0
mov ebx, eax
mov eax, ebx
Такое борландовский кодогенератор иногда выдаёт
0
<...>
jmp 0x0437
jmp 0x0437
<...>
На всякий случай, наверное если первый не сработает :)
0
;------------------------------------------------------------------------------------
; Задача. Подсчитать максимальную длину слова входного
; текста. Слово - это последовательность символов, отличных от
; пробела. Длина текста и слова не более 80 символов.
;------------------------------------------------------------------------------------
;------------------------------------------------------------------------------------
; Макроопределения
; Вызов функции DOS, вызывается функция с номером f.
; Внимание! Изменяется содержимое регистра ah.
_f macro f
mov ah,f
int 21h
endm
;--------------------------------------------------------------------------
; Вывод текста на экран
; Текст находится в памяти по адресу adr и завершается символом "$".
_puts macro adr_str
push ax
push dx
lea dx, adr_str
_f 9
pop dx
pop ax
endm
;------------------------------------------------------------------------
assume cs:code, ds:data ; назначение регистров
; сегмента команд и сегмента данных
;------------------------------------------------------------------------
; Сегмент данных
data segment para public 'data'
soob1 db 13,10,'Error open input file',13,10,'$'
soob2 db 13,10,'Error create output file',13,10,'$'
soob3 db 13,10,'Error read file',13,10,'$'
soob4 db 13,10,'Error write file',13,10,'$'
soob5 db 13,10,'Error close input file',13,10,'$'
soob6 db 13,10,'Error close output file',13,10,'$'
name_in db 'input.txt',0
name_out db 'output.txt',0
nom_in dw ?
nom_out dw ?
in_buf db 80 dup(?)
out_buf db 'Max dlina slova = '
maxdl db 62 dup( ' ')
data ends
;-------------------------------------------------------------
; Сегмент кода
code segment para public 'code'
main proc
mov ax,data ; инициализация pегистpа
mov ds,ax ; сегмента данных
b1: lea dx,name_in ; Открытие входного файла
mov al,0
_f 3Dh
jnc b2 ; Файл открылся
_puts soob1 ; Файл не открылся
jmp v
b2: mov nom_in,ax ; N вх.файла
lea dx, name_out ; Открытие выходного файла
mov al,1
_f 3Dh
jnc b3 ; Файл открылся
lea dx,name_out ; Создание выходного файла
mov cx,0
_f 3Ch
jnc b3 ; Создание успешное
_puts soob2 ; Файл не создался
jmp v2
b3: mov nom_out,ax ; N вых.файла
xor ax,ax
push ax ; выходной параметр - к-во введ-х байтов в стек
call vvod ; Ввод записи
jnc b4 ; Ввод успешный
_puts soob3 ; Файл не читается
jmp v1
b4: ;pop ax ; результат - к-во введ-х байтов в ах
;push ax ; входной параметр - к-во введ-х байтов
lea dx,maxdl ; входной параметр – адрес результата
push dx
call obrab ; Обработка данных
call vivod ; Вывод записи
jnc v1 ; Вывод успешный
_puts soob4 ; Файл не записывается
v1: mov bx,nom_out ; Закрытие выходного файла
_f 3Eh
jnc v2 ; Закрытие успешное
_puts soob6 ; Файл не закрылся
v2: mov bx,nom_in ; Закрытие входного файла
_f 3Eh
jnc v
_puts soob5 ; Файл не закрылся
v:
_f 4Ch ; Выход в DOS
main endp
vvod proc ; Ввод записи
push bp
mov bp,sp
push ax
Задача:
Подсчитать в тексте количество слов, содержащих от 3 до 5 символов. Слово - это последовательность символов, отличных от пробела.
А ниже пример который нужно переделать под задачу...
0
db "Ассемблер язык настолько суровый, что для него нет понятия говнокода!"
0
BuildRotateMatrix_:
mov edi,offset _RotateM
fld [esi]._x
fsincos
fld [esi]._y
fsincos
fld [esi]._z
fsincos
fld st(0)
fmul st(0),st(3)
fstp [edi]._E00
fld st(2)
fmul st(0),st(2)
fstp [edi]._E01
fld st(3)
fchs
fstp [edi]._E02
fld st(5)
fmul st(0),st(4)
fmul st(0),st(1)
fld st(5)
fmul st(0),st(3)
fsubp st(1),st(0)
fstp [edi]._E10
fld st(5)
fmul st(0),st(3)
fmul st(0),st(1)
fld st(5)
fmul st(0),st(4)
faddp st(1),st(0)
fstp [edi]._E11
fld st(5)
fmul st(0),st(3)
fstp [edi]._E12
fld st(4)
fmul st(0),st(4)
fmul st(0),st(1)
fld st(6)
fmul st(0),st(3)
faddp st(1),st(0)
fstp [edi]._E20
fld st(4)
fmul st(0),st(4)
fmul st(0),st(2)
fld st(6)
fmul st(0),st(2)
fsubp st(1),st(0)
fstp [edi]._E21
fld st(4)
fmul st(0),st(3)
fstp [edi]._E22
finit
fld1
fstp [edi]._E33
xor eax,eax
mov [edi]._E03,eax
mov [edi]._E13,eax
mov [edi]._E23,eax
mov [edi]._E30,eax
mov [edi]._E31,eax
mov [edi]._E32,eax
ret
На самом деле это не говнокод, но на осомблере всё выглядит как кусок говна :3