Neue Antwort erstellen

Neu erstellte Beiträge unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.

Die letzte Antwort auf dieses Thema liegt mehr als 365 Tage zurück. Das Thema ist womöglich bereits veraltet. Bitte erstellen Sie ggf. ein neues Thema.

Informationen
Sicherheitsabfrage („reCAPTCHA“)
Nachricht
Maximale Anzahl an Dateianhängen: 10
Maximale Dateigröße: 1 MB
Erlaubte Dateiendungen: bmp, gif, jpeg, jpg, pdf, png, txt, zip
Internet-Adressen werden automatisch erkannt und umgewandelt.
Smiley-Code wird in Ihrer Nachricht automatisch als Smiley-Grafik dargestellt.
Sie können BBCodes zur Formatierung Ihrer Nachricht nutzen.

Vorherige Beiträge 11

  • Original von Three of Five
    [...]
    vllt sollten wir hier auch mal die fire.exe posten, ca 200zeilen asm code aber was da rauskommt is schon ziemlich nett
    [...]


    Ok, gesagt getan. Damit keine Missverständnisse aufkommen: ich habe sie nicht geschrieben und komm auch bei dem Quelltext nich hinterher (da muss ich wohl noch lange üben *seufz*)

    die Kommentare ( ; ) sind übrigens auch ganz lustig ;)



    Brainfuck-Quellcode

    1. .MODEL SMALL
    2. .STACK 100h
    3. .DATA
    4. Seed DW 3749h
    5. Meldung DB 'E-Mail: BlueCobold@gmx.de',10,13,'HomePage: http://BlueCobold.18yo.de$'
    6. Screen DB 65000 DUP (?)
    7. .386
    8. .CODE
    9. ;--------------- GRAFIK-MODUS -------------------
    10. InitGraph PROC
    11. mov ax, 13h ; kürzer!
    12. int 10h
    13. push 0a000h ; das ist auch cool...
    14. pop es
    15. ret
    16. InitGraph ENDP
    17. ;--------------- RANDOM -------------------------
    18. Random PROC
    19. MOV AX, Seed ; Move the seed value into AX
    20. MOV DX, 8407H ; Move 8405H into DX
    21. MUL DX ; Put 8405H x Seed into DX:AX
    22. INC AX ; Increment AX
    23. MOV Seed, AX ; We have a new seed
    24. RET
    25. Random ENDP
    26. ;--------------- VIRTUELLEN SCREEN LÖSCHEN ----------------
    27. ClearPage PROC
    28. mov di, Offset Screen
    29. push es
    30. push ds
    31. pop es
    32. mov cx, 16250
    33. xor eax, eax
    34. rep stosd
    35. pop es
    36. ret
    37. ClearPage ENDP
    38. ;--------------- PALETTE ------------------------
    39. SetUpPalette PROC ;geht das nicht kürzer?
    40. mov si, Offset Screen ;geht bestimmt!
    41. mov cx, 64
    42. @pal:
    43. xor ax, ax
    44. mov al, 64
    45. sub al, cl
    46. mov [si], al
    47. mov [si+1], ah
    48. mov [si+2], ah
    49. mov [si+193], al
    50. mov [si+194], ah
    51. mov [si+386], al
    52. mov ah, 63
    53. mov al, ah
    54. mov [si+192], ah
    55. mov [si+384], ax
    56. mov [si+576], ax
    57. mov [si+578], ah
    58. add si, 3
    59. dec cx
    60. jnz @pal
    61. mov si, Offset Screen
    62. xor ax, ax
    63. mov dx, 3c8h
    64. out dx, al
    65. inc dx
    66. mov cx, 768
    67. rep outsb
    68. ret
    69. SetUpPalette ENDP
    70. ;------------- WAITRETRACE --------------------
    71. WaitRetrace PROC
    72. mov dx, 3dah
    73. @Bildaufbau:
    74. in al, dx
    75. test al, 8
    76. jnz @Bildaufbau
    77. @Retrace:
    78. in al, dx
    79. test al, 8
    80. jz @Retrace
    81. ret
    82. WaitRetrace ENDP
    83. ;------------ FUELLEN -------------------------
    84. Fuellen PROC
    85. mov si, 64003
    86. mov cx, 80
    87. @FuellenLoop:
    88. call Random
    89. and dx, 7
    90. jz @PixelSetzen
    91. dec dx
    92. jz @PixelSetzen
    93. dec dx
    94. jnz @NichtNull
    95. @PixelSetzen:
    96. mov al, 255
    97. mov ah, al
    98. mov dx, ax
    99. shl eax,16
    100. mov ax, dx
    101. mov [si+1], ax ; mit 32 Bit arbeiten!
    102. mov [si-3], eax
    103. mov [si-323], eax
    104. mov [si-319], ax
    105. mov [si+317], eax
    106. mov [si+321], ax
    107. @NichtNull:
    108. add si, 4
    109. dec cx
    110. jnz @FuellenLoop
    111. ret
    112. Fuellen ENDP
    113. ;--------------- VIRTUELLE PAGE KOPIEREN -----------------
    114. ShowPage PROC
    115. mov cx, 16000
    116. mov si, OFFSET Screen
    117. xor di, di
    118. rep movsd
    119. ret
    120. ShowPage ENDP
    121. ;--------------- Feuer - EFFEKT -----------------------
    122. DoFire PROC
    123. mov si, Offset Screen+640
    124. mov cx, 64640
    125. @Blur:
    126. xor bx, bx
    127. xor ax, ax
    128. mov bl, [si-1]
    129. add ax, bx
    130. mov bl, [si+1]
    131. add ax, bx
    132. mov bl, [si-320]
    133. add ax, bx
    134. mov bl, [si+320]
    135. add ax, bx
    136. mov bl, [si-319]
    137. add ax, bx
    138. mov bl, [si+319]
    139. add ax, bx
    140. mov bl, [si-321]
    141. add ax, bx
    142. mov bl, [si+321]
    143. add ax, bx
    144. shr ax, 3
    145. jz @skip
    146. dec ax
    147. jz @skip
    148. dec ax
    149. @skip:
    150. mov ds:[si-640], al
    151. inc si
    152. dec cx
    153. jnz @Blur
    154. ret
    155. DoFire ENDP
    156. ;--------------- HAUPTPROGRAMM -----------------------
    157. Start:
    158. push @data
    159. pop ds
    160. call InitGraph
    161. call ClearPage
    162. call SetUpPalette
    163. ;------------ BLUR ------------------------
    164. cli
    165. BlurLoop:
    166. call Fuellen
    167. call DoFire
    168. call WaitRetrace
    169. call ShowPage
    170. in al, 60h ;das mach ich kürzer
    171. cmp al, 1
    172. jnz BlurLoop
    173. sti
    174. ;------------------------------------------
    175. mov ax, 3h
    176. int 10h
    177. mov dx, Offset Meldung
    178. mov ah, 9
    179. int 21h
    180. mov ah, 4Ch
    181. int 21h
    182. END Start
    Alles anzeigen
    Dateien
    • fire.exe

      (67,51 kB, 1.226 mal heruntergeladen, zuletzt: )
  • also ich fühl mich mit c ganz gut bedient, was low level programmierung angeht (sofern man es nötig hat) ^^
    ansonsten gibts ja auch noch c++, perl, ....
    und andere sprachen lernen sich ja auch relativ flott. assembler muss ich glaub ich nächstes jahr in der schule lernen um irgendwelche platinen zu programmieren... naja, is bestimmt ganz nützlich wenn man das kann *an deassemblieren denk* (schreibt man das so :think: )
  • jawas, naja, asm is eh in jeder architektur anders ^^
    das hier is ja x86 asm, genauer lernen wir asm des 8086
    ich find es eigendlich recht gut, sehr gut für das verständniss der grundlagen
    und man freut sich immer ziemlich wenn dann ein prog funktioniert
    vllt sollten wir hier auch mal die fire.exe posten, ca 200zeilen asm code aber was da rauskommt is schon ziemlich nett
    vllt sollte robin hier auch mal seinen in delphi geschriebenen asmide posten *g*
  • Wuahah die Sprache gefällt mir ned, ich mags eher entweder like Java, C++ bzw C (auch wenn ich nur Java richtig beherrsche) oder halt PHP bzw MySQL obwohl die anweißungen in PHP eh ähnlich aufgebaut sind.
  • Du wirst dich wundern, aber jedes gute Programm wird "nachoptimiert". Ob immer per Hand ist ne andere Frage.
    Und die tausend verschiedenen DSPs dieser Welt sind ein verschwindendes Problem?
  • naja ... meiner meinung nach hat assembler in der 'alltags programmierung' so ziemlich ausgesorgt ...
    natürlich könnte man diverse programme die in einer highlevel language geschrieben sind nocheinmal überarbeiten ... aber bei der komplexität heutiger programme, und der leistung der compiler ist das eigentlich nichtmehr möglich und nötig ...
    assembler hat wohl noch seinen sinn ... so werden viele industriemaschinen noch direkt mit assembler abarten programmiert ... aber im 'wahren leben' braucht man assembler wohl nimmer ...