Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-4041-8081-

Is Assembly Language worth learning?

Name: Anonymous 2005-04-21 13:58

I've heard that learning assembly language is a good way to become a better computer programmer. Is this true? Is it worth the effort? Does anybody have any suggestions on this subject?

Name: Anonymous 2005-04-21 14:59

It will at the very least help you understand what computers really do. It will make an already good programmer ever so slightly better. If you use compiled languages then knowledge of assembly will also help you debug and examine the output of your compiler.

Name: Anonymous 2005-04-21 16:04

Further to what 2 said, any decent computer science degree will teach you some assembly language.  So yes, understanding at least some basic assembly language can only add to your overall knowledge particularly memory handling and such.  I have to say though, in my experience its not fun and its not pretty but it is certainly worth delving into.

Name: Anonymous 2005-04-21 17:22

depending on what you want to do, learning assembly could either be pretty worthless or a complete utter waste of time that damages your brain forever.

there's a reason it's called machine code (which is what asm maps more or less directly to), and that's because it's only meant to be used by machines.

Name: Anonymous 2005-04-21 18:52

i think it's fun to control the machine without anything between you and the MACHINE. teh sex

Name: Christy McJesus !DcbLlAZi7U 2005-04-21 20:16

Technically yes, it would make you a slightly better programmer. In reality the payoff compared to the effort involved is too small to make it worth your time; you'd reap far greater rewards from learning a wide range of high level languages.

Name: Anonymous 2005-04-23 0:18

While I'm somewhat inclined to agree with >>6, I must point out that in order to be any sort of programmer worth anything, you'll need to know at least one assembly language.

You'll probably rarely use it, and compilers continue to do increasingly good jobs (on increasingly complex hardware), but not having some familiarity with the machine itself is plain stupid.

Name: Anonymous 2005-04-24 23:28

It's both incredibly helpful and incredibly worthless. The best you can get out of it is an appreciation for what's actually going on in the computer. I never understood pointers until I picked up a teensy bit of assembly. As far as my intended reason for learning it, being able to debug without symbols, it's much easier to get the friggin' symbols than it is to sit there and try to figure out the bug means.

Name: Anonymous 2005-04-28 12:11

ok thanks, everyone.

Name: Anonymous 2005-04-28 14:12

additionally i'd like to add ..assembly isn't a hard language to learn.

Name: Anonymous 2005-04-29 1:16

And as well, can't you include little bits of assembly inside of code you write in certain other languages just to stop people debugging your code in their tracks, in order to make any company you happen to work for <i>suffer</i> if you're fired?

Name: Anonymous 2005-04-29 7:06

Actually that sounds like a good way to get fired in the first place. And it's assuming that the code is for a single architecture/OS anyway, inline assembly has no place in platform-independent code.

Name: Anonymous 2005-04-29 8:36

Any programmer worth the name would be able to quickly comprehend what an inline asm block is doing. Gone are the days where we could pull bizarre self-modifying code trickery, kill debuggers, rewrite interrupt vectors, etc.

So that's an utterly stupid idea.

Name: Anonymous 2005-04-29 10:21

>>12
You can too use inline assembly in platform independant code. Just use macros.

Name: Anonymous 2005-04-29 12:14

13>> Oh BTW, it's good because it's fast.

Name: Anonymous 2005-04-29 12:14

s/13>>/14>>/

Name: Anonymous 2005-04-29 23:18

>>10
Is right. The syntax and major operations of assembly are not hard. Just like how the kana in Japanese are not hard. But if you've skimmed a page on assembly online and think "1 4m 4 1337 h4x0r," you're just as deluded as a wapanese who thinks he is a Japanese expert because he can read katakana.

Name: Anonymous 2005-04-30 6:56

Summary: no.

Name: Anonymous 2005-04-30 8:45

>>1
Yes, assembly if worth learning (and not that hard to learn) IF (A VERY BIG IF) you already know the C language VERY WELL (I insist on it). I'm a student and learned C before assembly: when I switched to assembly, I understood that C is just a high-level assembly language and the only confusing difference was the "C calling conventions" (like sub %esp... to create local variables for example) and the use of registers instead of variable names. Of course assembly is more "limited" because you have to use jumps instead of for/while loops but you can write basic stuff with it in a short amount of time.

>>15
Beware the "assembly is faster" because GCC can generate very fast assembly code from C code. All the basic stuff I did in assembly was not that faster than GCC and I had to hack a lot of things to be really faster (twice faster for example). You'll have to know a bit of algorithm too if you want to really optimize an application (FFT for example).

Name: Anonymous 2007-04-14 8:51 ID:trs+rioq

i just bumped this nao

Name: Anonymous 2007-04-14 9:21 ID:Heaven

I learned asm while i learned how to crack apps and reverse stuff, also learned c while i was it by examining/reversing c programs(in some cases fully retrieved the source code). As a result of some 3-4 years of reversing i can comprehend a good majority of programs and see behind all of the code, answer questions about what an obscure library is doing or why, or find spyware, stolen code in commercial applications. Of course my main reason was to crack, but in the process i have learned so much more.

From the coding standpoint, i know quite a few situations where inline as in almost unavoidable(or you can alloc some buffer and execute it, but its still machine code..).

>>13
You obsviously don't know modern protections... they may not be as varied as DOS protections, but there are a lot of things you can still do if you have a solid knowledge of win internals.Oh, and there are 2 protections that hook interrupts nowadays(usinga  driver), i can't particuallry call them professional though since they make the system unstable, however they are still regarded as one of the strongest in the market. That said, i can crack most of them in 5min->8hr by hand, except 3 of them which take 1-2 months of reasearch and arent accessible to the general public(*phew*) except for very large sums of money.

Name: Anonymous 2007-04-14 10:18 ID:JCs+BXRA

except 3 of them which take 1-2 months of reasearch and arent accessible to the general public(*phew*) except for very large sums of money.

I am interested in further information. Elaborate please?

Name: Anonymous 2007-04-14 10:50 ID:Heaven

>>22
ok, if you insist, i will only give the name of 2 of them:
starforce - can be easy or hard, depending on implemntation, usually used by games, but not always, it can also cause a lot of lag and problems with the user's pc. from a crackers standpoint, it is quite strong if used correctly, it has been cracked many times, but it generally takes a lot more time to crack it.
securom - crackable semi-automatically if tools are created, can take a few months

note that these are game protections. The third one costs about 300$ , and is easily obtainable, but still makes your app lag like hell(20-30x slowdown if wrong routines are protected with it) and causes random bsod's, i'm not mentioning its name since i want to see less of that slow faggotry on the market( can crack it in about 2 days, so you're not really missing out on much ).

Name: Anonymous 2007-04-14 10:54 ID:Heaven

>>22
oh ya, i'll give you one tip though, i've seen simple protections like Armadillo be very strong at times, the trick was to implement custom triggers and collaborate with the company so they would provide you with certain custom tricks to verify if the app is unwrapped, then cause some subtle data corruption that shows itself later and makes the app unusable. It seems that you have cracked it, but you really haven't. That's the strongest protection casual software developers get with least effort. Other solutions are implementing custom protections yourself, those willstop novices and some average crackers, but not professionals of course.
To examplify, that armadillo took me one day to crack, instead of the usual 30min. Again, anything can be cracked if enough time is given, but you can make the job harder.

Name: Anonymous 2007-04-14 13:02 ID:JCs+BXRA

Have you seen the protections on some of the Windows executables - e.g. WINLOGON.EXE - to avoid modification that may allow users to use the OS past its licensed limits? For example, enabling multiple terminal server sessions on XP. I've tried to crack those but it was too difficult for me.

I think this is the same thing as is alluded to here: http://research.microsoft.com/crypto/piracy.aspx

"Microsoft protects its software from abuse by writing into the basic code protection mechanisms that, while the program is running, continually verify that it has not been tampered with. The program may call for the tamper protection mechanism every 40 clicks of the mouse, or every time a file is opened, and if the right response is not forthcoming, the program shuts down. The call is usually encrypted so that it cannot be detected or intercepted."

Name: Anonymous 2007-04-14 13:51 ID:A7AOF5DU

All though you'll rarely find a reason to code in assembly, as it's been said it could only add on to your skills.

However if you want to become a better programmer I believe your time will be better spent studying O-notation and algorithm efficiency as well as data structures (or more generally, linked lists).

Name: Anonymous 2007-04-14 14:15 ID:Heaven

>>25
nah, didn't try it that,
but chances are it's just some integrity checks, and as i remember MS tends to put those all in one place(usually a dll), patching the dll and you're clear.
As for silent triggers that you mentioned, they are indeed annoying,but one should know that what they mean by 'encrypted call' is more likely to be more conspicious than they think.
For example people would use exceptions to get to OEP of asprotected programs making the job easier, while the authors thought that exceptions made the job harder..
As for vista's code integrity checking and patchguard, they've been basically cracked as well:
http://www.symantec.com/avcenter/reference/Windows_Vista_Kernel_Mode_Security.pdf - integrity checking part
http://uninformed.org/index.cgi?v=6&a=1 - defeating patchguard
I think anyone with a little bit of skill can aply the info symantec provided to defeat the integrity checks easily(in vista).

Again, i'm not sure about about modifying winlogon.exe, as i used a pre-cracked version for my xp, and as much as i remember the validation checks were in WgaTray.exe.

Also
'The program may call for the tamper protection mechanism every 40 clicks of the mouse, or every time a file is opened, and if the right response is not forthcoming, the program shuts down.'
<-- MS likes to keep its protection modules in one place, thus its possible to locate them even if you dont know who calls them(for example, set a bp in the code integrity dll's EP and you'll break when an app is LoadLibraryA/W'ing it.. Only problem with that is that services and r0 apps are a pain to debug and you need to use a r0 debugger(think SoftICE and the family), for the rest OllyDBG will suffice

Name: Anonymous 2007-04-14 14:20 ID:Heaven

>>25
oh ya i forgot something essential there,
to catch 99% of the integrity checks you just need to set a membp on read( or hwbp on access) on a bunch of code that will be checked, regardless what they do you'll find that code that accesses it(since to checksum/hash IT HAS TO READ THE DATA).. if that doesnt work you go about bp'ing VirtualProtect/Ex(as thats what you can use for removing breakpoints), then they can go even further by calling the kernel directly, but that can be cought as well..and the game continues :D
Logical approach always wins, no matter how hard they try :)

Name: Anonymous 2007-04-14 17:21 ID:Heaven

Holy fuck, like 99% of people in here are fucking retarded.

ASM is NOT hard. It IS worth learning. If you think it's hard, you're stupid. Case closed. If you have half a brain you can easily do anything in ASM that you can do in any HLL.

Another point: learning more than one HLL is stupid. C and C++ are really as far as you can go. Java is immensely fucking stupid, and everything else is not really even worth mentioning. Not to mention most all HLLs are so similar syntax-wise anyway they're practicly the same to code in anyway. Also, people who like languages because they're different, or have virtualization or what the fuck ever, are stupid. It's like, way to go, make your programs pointlessly slower. Fail.

Name: Anonymous 2007-04-15 3:51 ID:/DBPOJ0n

I don't want to hear anyone complain about having to learn Assembly to get their BS in CS.  Our school was too cheap to buy the licenses for a conventional Assembly package.  We got stuck with MIPS.  Oh God I hated MIPS.

Name: Anonymous 2007-04-15 4:01 ID:Heaven

>>29
How do I posted a predictable troll?

Name: Anonymous 2007-04-15 4:04 ID:Y4KR5Ut0

Another point: learning more than one HLL is stupid.
It's also a remarkably good way to get stuck in a rut.

If job ad says they want X, they want X, not your personal preference Y. It's a pretty stupid way to lock yourself out of otherwise interesting work.

Name: Anonymous 2007-04-15 10:58 ID:WAvKNFK8

Asm isn't hard.  But, it's like building a house with toothpicks.  Possible, but will take you a long time.

Name: Anonymous 2007-04-15 12:30 ID:NZ7CjTjG

>>33
lol wut

Name: Anonymous 2007-04-15 12:37 ID:Heaven

>>33
True.

Name: ee™ 2007-04-15 13:15 ID:sqRn8Qsf

This might seem like a stupid question, but what makes assembly different from other languages like C++, C, Java, etc?

Also, what would you need to know before learning it?

Name: Anonymous 2007-04-15 13:20 ID:Heaven

This might seem like a stupid question, but what makes assembly different from other languages like C++, C, Java, etc?

It's not a language, it's just machine code with mnemonics.

Name: Anonymous 2007-04-15 13:23 ID:5ERGleLX

>>37
of course its a language now GTFO

Name: Anonymous 2007-04-15 18:01 ID:C3ysjsrC

>>36

The instructions that you write in assembler map exactly to the machine code that is executed by the processor. So you will be programming using the CPU's main features, i.e. registers, the stack and jumps (equivalent of GOTO) rather than higher level concepts that would in other languages compile down to these.

Name: Anonymous 2007-04-16 2:22 ID:+XEJs9W6

>>38
fail.
see >>39

dependent on which cpu is used will define what registers you hit in ASM.

Name: Anonymous 2007-04-16 5:01 ID:fZjSmyjS

>>37
It *IS* a fucking language and you fail.

>>39
Both assembly and machine code are fucking languages and you fail for explaining the obvious.

>>40
dependent on which cpu is used will define what registers you hit in ASM.
Your point being?

Name: Anonymous 2007-04-16 6:22 ID:GUF52zaX

>>41
no point in regard to >>40 thats how asm operates. gee these kids so used to OO scripting lulz

Name: Anonymous 2007-04-16 7:26 ID:X97gOqek

A language is a system of symbols and grammar used to communicate things. So yes, assembler is a language.

Name: Anonymous 2007-04-16 7:36 ID:+V9Q8VM3

LEARN ALGOL 68

Name: Anonymous 2007-04-16 7:58 ID:3BLETy1d

>>44
How is this revelant to the topic? Or is this your way of saying "I've read SICP" ?

Name: Anonymous 2007-04-16 10:05 ID:a3G7aj7k

I took a unit at university which taught some x86 Assembly last semester.
It can be useful to understand the deeper levels of operation of a computer and to explain why and how higher level languages like C work and how to write more efficient code.

Important stuff like floating point 'precision' as it's so laughably called. And signed and unsigned integers.
They're important if you want to be a serious programmer.

The problem is that Assembly language is a very heavy subject and if you are not absolutely committed to learning it you will HATE IT. I know I did.

Name: Anonymous 2007-04-16 10:15 ID:PCwkQA7c

No, asm is not worth it. It is a hassle to write and youll have to write different code depending on the processors. It is however a key component in learning proper C++ Optimization - so pick up a book in that learn that instead, it usually includes ASM code that you can learn in order to understand how the compiler works, and how you can work around its code.

The compiler writes insanely good asm code and has done so since the about mid 90's. Anyone who says writing stuff by yourself in ASM is better has seriously outdated opinions. :)

Name: Anonymous 2007-04-16 10:38 ID:a3G7aj7k

>>47
This is true for larger applications, but for learning the important basics, it's good to pay attention to that loud little Asian man at the front of the lecture theater.

Name: Anonymous 2007-04-17 11:46 ID:5d2UTICM

>>36
DIFFERENCES BETWEEN MOST HIGH-LEVEL LANGUAGES AND ASM

1. No variables.  Actually, you have to make your own.  Either memory locations or registers can be your variables.  Preferably registers, but you only have a couple of those.   So, you have to decide which memory locations are going to serve as your variables, or decide which registers you can use.

2. No IF statements.  You have compare instructions.  And then depending on ther result of that comparison, you can jump(branch) to another address or carry on.

3. No PRINT/printf statement.  You have to make your own using operating system/DOS/BIOS routines or writing to screen memory yourself.

4. No expressions.  Everything boils down to a sequence of instructions.

5. Direct access to hardware.  Ports/IRQs/memory locations, it's all there.  Unless your program is running under protected mode.

6. No data types.  You have signed or unsigned bytes, words, doublewords, quadwords, but they're all really bytes.

7. Flag register.  Generally, after a math operation, the bits in the flag register are set to some values based on what just happened.  You can branch depending on how various bits are set in it, like the carry bit, etc.  Google for information on carry and overflow bits.

Name: Anonymous 2007-04-17 12:52 ID:M0gvK/oy

>>49
you're making it overly complicated, when i read asm, i tend to look at it like c code, unless its highly optimized asm.

>1. No variables.  Actually, you have to make your own.  Either memory locations or registers can be your variables.  Preferably registers, but you only have a couple of those.   So, you have to decide which memory locations are going to serve as your variables, or decide which registers you can use.
True, but you can easily define data if you use an assember(of course unless you write in machine code and generate your executable files from scratch, then you can define your memory layout). Then you have the system's mem allocing functions, you can still define structures in your assembler, even if they are nothing more than offsets ( like .StructMember would be nothing more than +C or whatever offset it was, but it makes writing it easier)


>2. No IF statements.  You have compare instructions.  And then depending on ther result of that comparison, you can jump(branch) to another address or carry on.
Conditional jumps(JCC) ARE if's. If you want if(){}else{} behavior, the macro assembler(masm/ml) actually have such directives, they would translate to the appropriate jumps. MASM also has loops. They are provided to speed up coding, but any masm-knowning person would know exactly what code they would generate. again, nobody is forcing you to use the provided macros, they are only there if you want more rapid development.

>3. No PRINT/printf statement.  You have to make your own using operating system/DOS/BIOS routines or writing to screen memory yourself.
There are OS api's for this usually, and if not you can write your own routines or use msvcrt.dll 's printf or whatever, if none of that suits you, there are some ready made libs made by some people just for linking in masm, oh and it doesnt really matter what the libs where coded in, as you can link obj files regardless of compiler. Assemble(generate code)&Link(generate executable)

>4. No expressions.  Everything boils down to a sequence of instructions.
Already discussed, if you want expressions, there are macros, if not, use instructions.

>5. Direct access to hardware.  Ports/IRQs/memory locations, it's all there.  Unless your program is running under protected mode.
Unless you're coding something for a bootloader or DOS, you are running in protected mode, oh and even in protected mode you can access them if you have the right IOPL priviledges, in Win you can make a driver grant them to you. as for 'memory locations' , you can always access any memory inside your process, if you want other processes memory, then you'll have to use the APIs give to you or have a ring0 driver supply writing/reading to them.

>6. No data types.  You have signed or unsigned bytes, words, doublewords, quadwords, but they're all really bytes.
Yes, if you say that a variable is a signed dword for example, then you'll only use signed operations/jumps on it,thus provind that its signed, you'll only access it as a dword, again providing tis a signed dword.

>7. Flag register.  Generally, after a math operation, the bits in the flag register are set to some values based on what just happened.  You can branch depending on how various bits are set in it, like the carry bit, etc.  Google for information on carry and overflow bits.
True

Again, you can go as low level as you want with asm. Oh you can do that in C almost all the time, except for some more specific stuff. Or you can go quite highlevel in asm as well, some assemblers provide you with macros and directives that allow you near high-level programming experience, there are even templates for building classes in asm. It's quite simple actually. All that you can do in a high level language, you can do in asm, it's a matter of how you organize your data and if you understand how compilers actually generate the code for what you write.

Name: Anonymous 2007-04-17 12:54 ID:Heaven

>>50
again providing tis a signed -> again proving its a signed

Name: Anonymous 2007-04-17 13:00 ID:M0gvK/oy

>>50
i know i just spoke of windowses MASM assembler, and its capabilities. If you are going to code a new OS or code for another OS or DOS or maybe another architecture, then it will be qutie different. But if you are coding for a certain OS , the ruleset and things you can use are already there for you and you dont have to reinvent everything if you code in asm, its not that much different than c, just a little bit more flexible, but you still end up writing more code.

Name: Anonymous 2007-04-17 20:05 ID:UqD7ejTD

>>51
'tis and it's are contractions of the same two words.
Dumbass.

Name: Anonymous 2007-04-17 21:23 ID:E36ORF1w

so has he given up on a programming career yet?

Name: Anonymous 2007-04-18 2:44 ID:8r2s5nK1

Oh the stupidity, you morons, Assembler is not Touring-complete!

Name: Anonymous 2007-04-18 3:51 ID:Heaven

>>55
most Asm's are Turing-complete, if they weren't you woudnt be able to convert languages like C to them? you have your brances, arithimetical ops, data moving ops and so on. You can code anything you can in a procedural language in it. You are probably a troll.

Name: Anonymous 2007-04-18 6:39 ID:Heaven

>>56
I want to interrogate you.  I want to interrogate you using a non-Touring-complete language for roughly an hour.

Name: Anonymous 2007-04-18 8:54 ID:cC9U8kfi

>>55-57
Major lulz

Enjoy your lack ot Touring-completeness, fags

Name: Anonymous 2007-04-18 10:00 ID:9iRgMxJf

>>50
True true true.  Pretty much anything you can do in asm you can do in C. 

However I wrote most of that (>>49) assuming that there IS no OS environment available.  Which is something you CAN'T do in C, which is make a program that functions without an OS.

Name: Anonymous 2007-04-18 11:50 ID:Heaven

>>58
You are probably a troll.

Name: Anonymous 2007-04-18 12:21 ID:cC9U8kfi

>>60
No shit!?

Name: Anonymous 2007-04-18 12:43 ID:Heaven

>>61
I want to interrogate you.

Name: Anonymous 2007-04-18 12:52 ID:Heaven

Oh, the stupidity. Those idiots.

Name: Anonymous 2007-04-19 3:38 ID:iap5HqIt

>>59
yes, you'd have to write your own output functions w/o an OS, probably would need to create some graphical driver before that as well(unless you use BIOS'es routine for text display). However in real-world situations people do have some OS available, unless they are coding some boot-loader/extender or OS themselves. But even with an OS, there are certain things which are easier done with asm than c, for example, API thunks. ( Can be done in c as well, but a bit hard w/o using a buffer you call into, and that would mean inline asm anyways )

Name: Anonymous 2007-04-19 8:56 ID:kBMZZFuY

░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░████████████░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░████████████████░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░████████████████████░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░████████████████████░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░████░░██████░░██████░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░██░░██░░██░░██░░████░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░██░░██░░██░░██░░████░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░██░░▒▒▒▒▒▒▒▒██░░████░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░██▒▒▒▒▒▒▒▒▒▒▒▒▒▒████░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░██▒▒▒▒▒▒▒▒▒▒▒▒▒▒██████░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░██░░▒▒▒▒▒▒▒▒░░░░██████░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░██░░░░░░░░░░░░░░████████░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░████░░░░░░░░░░░░░░░░██████░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░██░░░░░░░░░░░░░░░░░░████████░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░████░░░░░░░░░░░░░░░░░░██████████░░░░░░░░░░░░
░░░░░░░░░░░░░░██████░░░░░░░░░░░░░░░░░░░░██████████░░░░░░░░░░
░░░░░░░░░░░░░░████░░░░░░░░░░░░░░░░░░░░░░░░████████░░░░░░░░░░
░░░░░░░░░░░░░░████░░░░░░░░░░░░░░░░░░░░░░░░████████░░░░░░░░░░
░░░░░░░░░░░░████░░░░░░░░░░░░░░░░░░░░░░░░░░██████████░░░░░░░░
░░░░░░░░░░░░████░░░░░░░░░░░░░░░░░░░░░░░░░░██████████░░░░░░░░
░░░░░░░░░░██████░░░░░░░░░░░░░░░░░░░░░░░░░░██████████░░░░░░░░
░░░░░░░░░░██████░░░░░░░░░░░░░░░░░░░░░░░░░░██████████░░░░░░░░
░░░░░░░░░░▒▒▒▒██░░░░░░░░░░░░░░░░░░░░░░░░░░██████████░░░░░░░░
░░░░░░░░░░▒▒▒▒▒▒██░░░░░░░░░░░░░░░░░░░░░░▒▒████████▒▒░░░░░░░░
░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒██░░░░░░░░░░░░░░░░░░░░▒▒▒▒████▒▒▒▒░░░░░░░░
░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒████░░░░░░░░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░
░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒████░░░░░░░░░░░░░░██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░
░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░
░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░██████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░
░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒████████████████▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░
░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██████████████████▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░
░░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░██▒▒▒▒▒▒▒▒░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░██░░░░░░░░░░░░░░░░░░░░░░██░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

Name: Anonymous 2007-04-19 9:25 ID:rUTB8lVc

Well, never mind all that, >>1. This has nothing to do with this thread, but would you just listen to me for a little bit? See, I went to learn assembly today. Right. x86 assembly. And the damn tutorial site was packed so full of people, I couldn't even find an open socket. So I looked around a bit, and I found an error message that said "for newbies". What the hell is wrong with you people? Are you idiots or something? Any other day you wouldn't even think of learning assembly, but if it's "for newbies", you all flock in here? It's just a fucking newbie tutorial! Newbie tutorial! And you're bringing the kids too. Look at that, a family of four going to teach themselves assembly. Con-fucking-gratulations. And now the guy's going, "All right! Daddy's going to optimize his ASFLAGS!" Shit, I can't watch any more of this.

Assembly should be fucking brutal. Two guys sit facing each other across the Internet, and you never quite know if they'll suddenly just start a fight right there. It's stab-or-be-stabbed, and that's what so damn great about the place. Women and kids should stay the fuck away.

Well, I finally managed to get to the tutorial, but then the guy next to me goes, "I'll use gas with extra ASFLAGS!". So now I'm pissed off again. Who the fuck uses ASFLAGS these days? Why are you looking so goddamn proud when you say that? I was gonna ask you, are you really going to fucking make your program go VROOM VROOM? I wanted to fucking interrogate you. For about a fucking hour. You know what? I think you just wanted to say "gas test.S".

Now, take it from the assembly veteran. The latest thing among the assembly pros is this: Self-modifying code. That's the ticket. A large table of code you can write to, and execute. This is what someone who knows his shit wants. They put in more code, in less space. A large table with raw instructions, that's really fucking awesome. Now, you should know, if you keep doing this, there's a risk the OS might write you up. This really is a double-edged sword. I really can't recommend this for amateurs.

And you, >>1, well, you should really just stick to C.

Name: Anonymous 2007-04-19 11:13 ID:qbjX7Z9s

EXTRA GREEN ONIONS

Name: Anonymous 2007-04-19 11:43 ID:+jbLYK9U

>>64
Real world situations where there is no OS available: Processors in embedded devices (microwaves, gas pumps, basically all the non-computer electronic devices that make our modern life possible) and programming your own BIOS.

Name: Anonymous 2007-04-19 11:58 ID:Heaven

>>65
if i see that fucking penguin one more time.

Name: Anonymous 2007-04-19 12:44 ID:tJDYSGAv

░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░████████████░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░████████████████░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░████████████████████░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░████████████████████░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░████░░██████░░██████░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░██░░██░░██░░██░░████░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░██░░██░░██░░██░░████░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░██░░▒▒▒▒▒▒▒▒██░░████░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░██▒▒▒▒▒▒▒▒▒▒▒▒▒▒████░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░██▒▒▒▒▒▒▒▒▒▒▒▒▒▒██████░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░██░░▒▒▒▒▒▒▒▒░░░░██████░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░██░░░░░░░░░░░░░░████████░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░████░░░░░░░░░░░░░░░░██████░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░██░░░░░░░░░░░░░░░░░░████████░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░████░░░░░░░░░░░░░░░░░░██████████░░░░░░░░░░░░
░░░░░░░░░░░░░░██████░░░░░░░░░░░░░░░░░░░░██████████░░░░░░░░░░
░░░░░░░░░░░░░░████░░░░░░░░░░░░░░░░░░░░░░░░████████░░░░░░░░░░
░░░░░░░░░░░░░░████░░░░░░░░░░░░░░░░░░░░░░░░████████░░░░░░░░░░
░░░░░░░░░░░░████░░░░░░░░░░░░░░░░░░░░░░░░░░██████████░░░░░░░░
░░░░░░░░░░░░████░░░░░░░░░░░░░░░░░░░░░░░░░░██████████░░░░░░░░
░░░░░░░░░░██████░░░░░░░░░░░░░░░░░░░░░░░░░░██████████░░░░░░░░
░░░░░░░░░░██████░░░░░░░░░░░░░░░░░░░░░░░░░░██████████░░░░░░░░
░░░░░░░░░░▒▒▒▒██░░░░░░░░░░░░░░░░░░░░░░░░░░██████████░░░░░░░░
░░░░░░░░░░▒▒▒▒▒▒██░░░░░░░░░░░░░░░░░░░░░░▒▒████████▒▒░░░░░░░░
░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒██░░░░░░░░░░░░░░░░░░░░▒▒▒▒████▒▒▒▒░░░░░░░░
░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒████░░░░░░░░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░
░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒████░░░░░░░░░░░░░░██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░
░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░
░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░██████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░
░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒████████████████▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░
░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██████████████████▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░
░░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░██▒▒▒▒▒▒▒▒░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░██░░░░░░░░░░░░░░░░░░░░░░██░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

Name: snoɯʎuouɐ 2007-04-19 15:53 ID:P5K4uocW

Name: Anonymous 2007-04-19 21:42 ID:gS1WNk3e

But is it Touring complete?

Name: Anonymous 2007-04-20 9:19 ID:BxnslIGs

>>72
Ducks are Touring complete. They move across a (theoretically) infinite river in either direction. They have memory. In each step, they can catch fish, take a dump, or quack.

Name: Anonymous 2007-04-21 6:26 ID:k0KXmMMK

>>73
have you been copy pasting that answer into every Touring-complete forced-meme copypasta'd thread?

Name: Anonymous 2007-04-21 9:07 ID:FSQQnRdG

>74
Ducks are Touring complete. They move across a (theoretically) infinite river in either direction. They have memory. In each step, they can catch fish, take a dump, or quack.

Name: Anonymous 2007-04-21 16:15 ID:m2ytczmo

Ducks are Touring complete. They move across a (theoretically) infinite river in either direction. They have memory. In each step, they can catch fish, take a dump, or quack.

Name: Anonymous 2007-04-21 19:26 ID:or/gj+PD

>>75-76
I'm so happy I created this meme. I didn't even intend on making a new meme. In fact I shouldn't be credited for memeizing it. I just wrote it, then some Anonymouses started copypasting it.

Name: Anonymous 2007-04-22 15:55 ID:q09FUhLD

I'm so happy I created this meme. I didn't even intend on making a new meme. In fact I shouldn't be credited for memeizing it. I just wrote it, then some Anonymouses started copypasting it.

Name: Anonymous 2007-04-23 5:34 ID:YT8yYPmG

>>78
Turing, you jackass.

Name: Anonymous 2007-04-23 6:33 ID:u0tUcfUr

I'm so happy I created this meme. I didn't even intend on making a new meme. In fact I shouldn't be credited for memeizing it. I just wrote it, then some Anonymouses started copypasting it.

Name: Anonymous 2007-04-23 7:26 ID:IHRdtTFK

I'm so happy I created this meme. I didn't even intend on making a new meme. In fact I shouldn't be credited for memeizing it. I just wrote it, then some Anonymouses started copypasting it.

Name: Anonymous 2007-04-23 7:54 ID:WjXGfbWE

Name: Anonymous 2008-03-05 23:01

I agree with this thread.

Name: Anonymous 2008-03-05 23:18

I think im touring Japanese

Name: Anonymous 2008-03-06 14:35

>>84
I lol'd

Name: Anonymous 2008-03-06 15:07

>>85
Why?

Name: Anonymous 2008-03-06 15:09

>>86
For no Reason at all.

Name: Anonymous 2008-03-06 15:11

>>87
Good, I thought I'd have to send you back to /b/.

Name: Anonymous 2008-03-06 15:22

>>88
Oh, please don't be ridiculous.

Name: Anonymous 2008-03-06 18:53

Assembly is essential. What are you, a computer EXPERT or a lame enterprise Java coder? It's obviously worth the effort.

Name: Anonymous 2008-03-06 18:54

>>90
Oh sorry, I hadn't noticed this is a three-year-old thread. Disregard that, things have changed now, assembly don't mean shit.

Name: Anonymous 2008-03-06 23:20

>>91
Disregard that, I suck Sussman's cock.

Name: Anonymous 2008-03-06 23:31

I have a morning ritual that I need to share. I call it 'the sussman'. First I crouch down in the shower in the classic 'I put on my robe and wizard hat' pose. With my eyes closed I crouch there for a minute, visualizing either Sussman or Abelson and I start to hum the SICP theme. Then I slowly rise to a standing position and open my eyes. It helps me to proceed through my day as an emotionless EXPERT PROGRAMMER. The only problem is if the shower curtain sticks to my sussman leg. It ruins the fantasy.

Name: Anonymous 2009-03-06 9:00

The program to included   Celsius to Kelvin   Celsius to Rankine.

Name: Anonymous 2010-10-02 19:00

yes, ASM is worth learning

Name: Anonymous 2010-10-02 23:12

Learn assembler for virtual machines.

Name: Anonymous 2010-10-02 23:14

>>95,96
I agree wiNECROBUMPING MOTHERFUCKERS

Name: Anonymous 2010-11-16 5:34

Name: Anonymous 2010-12-06 9:51

Back to /b/, ``GNAA Faggot''

Name: Anonymous 2013-04-09 6:24

ASSembly

Name: Anonymous 2013-04-09 6:27

ASSemblydicks

Name: Anonymous 2013-04-09 6:29

inderesting

Name: Anonymous 2013-07-25 7:44

check em

Don't change these.
Name: Email:
Entire Thread Thread List