Сборный / Говнокод #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)

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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
vbi:
	mov %al [<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="596d1977342a3c2d">[email protected]</a>]
	inc %al
	mov [<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d8ec98f6b5abbdac">[email protected]</a>] %al
	.mset: memset [@T1] 3A98h 0h
	rei

kcalbCube kcalbCube, (Updated )

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

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

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
.org 80h
inc:
	push %bp
	mov %bp %sp
	sub %sp 0010h
	mov [%bp + FFFEh] %sp
	mov [%bp + FFFCh] %b
	lea %a [%bp + FFFCh]
	mov %a [%a]
	push %a
	inc %a
	pop %si
	mov [%si] %a
	jmp @.return.inc
.return.inc:
	mov %sp %bp
	pop %bp
	ret
main:
	push %bp
	mov %bp %sp
	sub %sp 0010h
	mov [%bp + FFFCh] %sp
	memset [%bp + FFFEh] 0002h 0h
	lea %a [%bp + FFFEh]
	push %a
	mov %a 0000h
	pop %si
	mov [%si] %a
.L.begin.1:
	mov %a 0001h
	cmp %a 0h
	jz @.0
	lea %a [%bp + FFFEh]
	push %a
	pop %b
	call @inc
	push %a
	mov %a 0050h
	pop %si
	cmp %si %a
	jgz @.compare3
	mov %al 1h
	.compare3:
	mov %ah 0h
	cmp %a 0h
	jz  @.else.2
	jmp @.0
	jmp @.end.2
.else.2:
.end.2:
.1:
	jmp @.L.begin.1
.0:
.return.main:
	mov %sp %bp
	pop %bp
	ret
start:
	mov %sp FFFFh
	call @main
.return.start:
	int 0h

<-------------------->

short inc(short* i)
{
	return ++(*i);
}

void main(void)
{
	short i = 0s;
	while(1) 
	{
		if(inc(&i) > 0x50)
			break;
	}
}

void start(void)
{
	asm("mov %sp FFFFh");
	main();
}

да что вы знаете о неоптимизированном коде

kcalbCube kcalbCube, (Updated )

Комментарии (0)

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

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
; %ch - x1, %cl - y1, %dh - x2, %dl - y2 ;
drawline:
	push %a
	push %b
	push %c
	push %d
	push %e
	
	mov %al %dh
	sub %al %ch
	call @abs
	mov %ah %al ; ah - dX ;
	
	mov %al %dl
	sub %al %cl
	call @abs
	neg %al ; al - -dY ;
	
	mov %bh FFh ; bh - signX;
	mov %bl FFh ; bl - signY ;
	
	cmp %ch %dh
	jgz @.S1
	neg %bh
	.S1:
	
	cmp %cl %dl
	jgz @.S2
	neg %bl
	.S2:
	
	mov %el %ah
	add %el %al ; el - error ;
	
	push %d
	call @drawpixel
	pop %d
	 
	.loop:
		cmp %ch %dh
		jnz @.L1
		cmp %cl %dl
		jnz @.L1
		jmp @.loop_end
		.L1:
		
		push %c
		call @drawpixel
		pop %c

		mov %eh %el
		
		cmp %eh %al
		jng @.L2
			add %el %al
			add %ch %bh
		.L2: 
		cmp %eh %ah
		jgz @.loop
			add %el %ah
			add %cl %bl
		jmp @.loop
		
	.loop_end:
	
	pop %e
	pop %d
	pop %c
	pop %b
	pop %a
	ret

https://pastebin.com/k8697fae

алгоритм брезенхема.

результат: https://imgur.com/a/c1twuNt

забавно что посреди тестов программа выдала красивые такие кривые на весь экран. с.м. имгур, приложил.

kcalbCube kcalbCube, (Updated )

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