Сборный / Говнокод #28852 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
format pe console
include 'win32a.inc'
         sub esp,256
         mov edi,esp
         xor ebx,ebx
     cinvoke puts,.title
.nxt:cinvoke gets,edi
     cinvoke strlen,eax
        test eax,eax
          jz .ext
         mov ecx,eax
         mov eax,edi
        call hash
        test ebx,ebx
          jz .add
         mov ecx,ebx
         mov edi,esp
       repne scasd
         jnz .add
     cinvoke puts,.yes
     cinvoke sleep,1000
         jmp .nxt
.add:   push eax
         inc ebx
         mov ecx,eax
         mov eax,edi
        call get_hex
         mov eax,edi
     cinvoke puts,edi
         jmp .nxt
.ext:cinvoke exit,0
.title db 'get hash of string',0
.yes db '!!!hash found!!!',0
hash:   push ebx esi
         mov esi,eax
         mov eax,ecx
         xor edx,edx
         mov ecx,4
         div ecx
         mov ecx,eax
         xor eax,eax
         mov ebx,$03020100
.start: test ecx,ecx
          jz .finish
         add eax,[esi]
         add esi,4
         xor eax,ebx
         add ebx,$04040404
        loop .start
.finish:test edx,edx
          jz .exit
         cmp edx,1
          je .exit1
         add ax,[esi]
         xor ax,bx
         cmp edx,2
          je .exit
         add esi,2
         shr ebx,16
       bswap eax
         add ah,[esi]
         xor ah,bl
       bswap eax
         jmp .exit
.exit1:  add al,[esi]
         xor al,bl
.exit:   pop esi ebx
         ret
get_hex:push ebx edi
         mov edi,eax
         mov ebx,.hex
         mov edx,ecx
         mov ecx,4
       bswap edx
         cld
.next:   mov al,dl
         shr al,4
       xlatb
       stosb
         mov al,dl
         and al,$0F
       xlatb
       stosb
         shr edx,8
        loop .next
         xor al,al
       stosb
         mov eax,8
         pop edi ebx
         ret
.hex db '0123456789ABCDEF'
data import
  library msvcrt,'msvcrt.dll'
  import msvcrt,exit,'exit',puts,'puts',sleep,'_sleep',gets,'gets',strlen,'strlen'
end data

Приветствуем любителей накласть.
Понадобился алгоритм для нахождения хэша строки, наклали.
Пихает хэши в стэк и проверяет новые на совпадение со старыми.
У кого есть предложения по его улучшению милости просим!

chiacorp chiacorp, (Updated )

Комментарии (11, +11)

Сборный / Говнокод #28811 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
PROCEDURE DIVISION.
  COMPUTE NUMC = (NUM1 * NUM2).
  DIVIDE NUMA BY NUMB GIVING RES-DIV.
  MULTIPLY NUMA BY NUMB GIVING RES-MULT.
  SUBTRACT NUMA FROM NUMB GIVING RES-SUB.
  ADD NUMA TO NUMB GIVING RES-ADD.
  MOVE NUMA TO RES-MOV.
  ...
  STOP RUN.

Как вам такой код?

JloJle4Ka JloJle4Ka, (Updated )

Комментарии (10, +10)

Сборный / Говнокод #28430 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
includelib  C:\Irvine\User32.Lib
includelib  C:\Irvine\Kernel32.Lib
includelib  D:\masm32\lib\Irvine32.lib
include     \masm32\include\Irvine32.inc
; D:/masm32/bin/ml.exe /c  /coff  "D:\asm\simple.asm"
; D:/masm32\bin\link.exe /subsystem:console  "D:\asm\simple.obj"
.data
X Dword  ? 
A dword  ? 
B dword  ?
M dword  ? 
.code
main PROC
mov eax, 1
xor ecx , ecx
xor ebx, ebx
strt:
add eax , 1
mov X, eax
push eax
call simple
cmp ebx, 1
pop eax
je ext
call WriteInt
call CrLF
ext:

cmp eax, 50000000
jb strt

	exit
main ENDP
Simple PROC uses ecx
Mov A, 1
call Sqrt
Mov A , eax
MOV edx , 2
rn:
;push edx
mov ecx, edx

mov eax , X
mov ebx, edx
xor edx ,edx
div ebx 
cmp edx, 0
jne stp
mov ebx ,1
jmp var
stp:
;pop edx
mov edx,ecx
cmp edx, A
inc edx
jb rn
var:
ret
Simple  ENDP
Sqrt PROC USES ebx
  mov A, 1 ;A = 1
  mov  eax ,X
  push eax
  shr  EAX, 5
  add   EAX , 8
  Mov B , EAX
  pop eax
  cmp B,0FFFFh
  jbe crt
  mov B, 0FFFFh
crt:;do {
    mov ebx, B 
	push A
	add A,ebx
	shr A, 1
	mov ebx, A
	pop A
	mov M ,ebx
	mov eax, ebx
	mul ebx
	cmp eax , X
    jbe  opt	
	Mov eax, M
	dec  eax
	mov B , eax
	jmp dz
	opt:
	mov eax, M
	inc  eax
	mov A , eax
	dz:
	mov eax, B
	cmp eax,A
	Jae crt
	mov  eax , A 
	dec eax
	ret
Sqrt  ENDP
 END main

Лялька для простых чисел )))))))))

gne4do gne4do, (Updated )

Комментарии (1, +1)

Сборный / Говнокод #28317 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
ORG $4000
A1=#3C
A2=#3E
A4=$42
AUXMOVE=$C3111
SETUP LDA #<VTOC
STA A1
LDA #>VTOC
STA A1+1
LDA #<END
STA A2
LDA #>END
STA A2+1
LDA #$B0
STA A4
LDA #$B0
STA A4
SEC
JMP AUXMOVE
DS 4

Тому, кто скажет, что это и откуда - ничего.

bormanb bormanb, (Updated )

Комментарии (7, +7)

Сборный / Говнокод #28114 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
  100. 100
.set XSIZE 96h
.set YSIZE 68h
.org {11h * 2h}
dw @vbi
.org 80h
.include "stdvideo.inc"
process:
	mov %cl YSIZE
	.loopy:
		mov %ch XSIZE
		.loopx:
			call @processCell
			loop %ch @.loopx 
		loop %cl @.loopy
	ret
processCell:
	mov %d 0h
	mov %bl 3h
	.loopy:
		mov %bh 3h
		.loopx:
			mov %e %c
			add %e %b 
			sub %e 0202h
			cmp %e %c
			ce jmp @.xskip
			push %e
			mov %bp %sp
			call @index2rel
			pop %e
			cmpb [%e + @data] 0h
			cg inc %d
			.xskip:
			loop %bh @.loopx
		loop %bl @.loopy
	push %c
	mov %bp %sp
	call @index2rel
	pop %e
	mov %al [%e + @data]
	movb [%e + @ndata] 0h
	cmp %al 0h
	cz jmp @.dead
		cmp %d 2h
		cl ret
		cmp %d 3h
		cg ret
		movb [%e + @ndata] 1h
	ret
	.dead:
		cmp %d 3h
		ce movb [%e + @ndata] 1h
	ret
fill:
	mov %c {XSIZE * YSIZE}
	.loop:
		mov %b %c
		mod %b 100h
		div %b 8h
		add %b 80h
		mov %al [%b]
		mov %b %c
		mod %b 8h
		mov %e 1h
		shl %e %b
		and %al %el
		cnz movb [%c + @data] 1h
		loop %c @.loop
	ret
render:
 	call @clsm1
	mov %cl YSIZE 
	.loopy:
		mov %ch XSIZE
		.loopx:
			push %c
			mov %bp %sp
			call @index2rel
			pop %e
			cmpb [%e + @data] 1h
			cge push %c
			cge call @setpixelm1
			cge pop
			loop %ch @.loopx
		loop %cl @.loopy
	ret
vbi:
	cli
	call @render
	call @process
	mov %c {XSIZE * YSIZE}
	.loop:
		movb [%c + @data] [%c + @ndata]
		loop %c @.loop
	rei
T1:
.org {3AAAh + @T1}
data:
.org {XSIZE * YSIZE + @data}
ndata:

https://pastebin.com/6gm30JWR
https://imgur.com/a/uSzbrgZ

игра конвея теперь и на pvc-16!

kcalbCube kcalbCube, (Updated )

Комментарии (27, +27)

Сборный / Говнокод #28099 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
  100. 100
.org 80h
src: db "++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+."
table:
	db 0h db 3Eh dw @i1
	db 0h db 3Ch dw @i2
	db 0h db 2Bh dw @i3
	db 0h db 2Dh dw @i4
	db 0h db 5Dh dw @i5
	db 0h db 2Eh dw @i6
	db 0h db 5Bh dw @i7
start: ; %a iptr %b dptr ;
	.loop:
		mov %cl [%a + @src]
		cmp %cl 0h
		je @.loop.break
		mov %si 0h
		.tloop:
			mov %ch [4h * %si + {@table + 1h}]
			cmp %cl %ch
			jne @.tloop.continue
				push @.tloop.break
				mov %ip [4h * %si + {@table + 2h}]
			.tloop.continue:
			inc %si
			cmp %si 8h
			jl @.tloop
			.tloop.break:
		inc %a
		jmp @.loop
		.loop.break: 
	int 0h
i1: ; > ; 
	inc %b ret
i2: ; < ; 
	dec %b ret
i3: ; + ;
	push %el
	mov %el [%b + @data]
	inc %el
	mov [%b + @data] %el
	pop %el
	ret
i4: ; - ;
	push %el
	mov %el [%b + @data]
	dec %el
	mov [%b + @data] %el
	pop %el
	ret
i5: ; ] ;
	push %c
	mov %cl [%b + @data]
	cmp %cl 0h
	je @.loop.break
	mov %c 0h
	dec %a
	.loop:
		cmpb [%a + @src] 5Dh ; ']' ;
		jne @.loop.1
			inc %c
		.loop.1:
		cmpb [%a + @src] 5Bh ; '[' ;
		jne @.loop.2
			cmp %c 0h
			jz @.loop.break
			dec %c
		.loop.2:
		loop %a @.loop
	.loop.break:
	pop %c
	ret
i6: ; . ;
	push %cl
	outb E9h [%b + @data]
	.wait:
		inb %cl E9h
		cmp %cl 0h
		jne @.wait
	pop %cl
	ret
i7: ; [ ;
	push %c
	mov %c [%b + @data]
	cmp %c 0h
	jne @.loop.break
	mov %c 0h
	.loop:
		cmpb [%a + @src] 5Bh ; '[' ;
		jne @.loop.1
			inc %c
		.loop.1:
		cmpb [%a + @src] 5Dh ; ']' ;
		jne @.loop.2
			cmp %c 0h
			jz @.loop.break
				dec %c
		.loop.2:
		inc %a
		jmp @.loop
	.loop.break: pop %c ret

Hello World!

kcalbCube kcalbCube, (Updated )

Комментарии (15, +15)

Сборный / Говнокод #28098 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
.org {5h * 2h}
dw @int5

.org 30h
data:
	db "10"

.org 80h
start:
	mov %sp FFFFh
	mov %al {3h * 2h}
	int 5h
	int 0h

int5:
	push %a
	mov %ah [{@data + 1h}]
	add %al %ah
	outb E9h %al
	.wait:
		inb %al E9h
		cmp %al 0h
		jne @.wait
	pop %a
	rei

встречайте новую фичу

kcalbCube kcalbCube, (Updated )

Комментарии (25, +25)