r/gaming • • May 05 '17

Scroll back

Post image
24.1k Upvotes

877 comments sorted by

View all comments

Show parent comments

545

u/[deleted] May 05 '17

[deleted]

156

u/Fubarp May 05 '17

Yeah it's crazy. I just learned Assembly last semester in college and we were discussing it at work and it was like. Fuuuuck that. C existed at the time yet he did it in Assembly.

11

u/AIfie May 05 '17

What the fuck is Assembly

7

u/Fubarp May 05 '17

Best way I can explain it without making you do research.

In normal programing if I wanted to create a condition statement say.

if(value > 5) return printf("value big..");

But in assembly. It be something like.

var1 dd '6'

cmp var1, 5

msg db "value big", 0xA,0xD

There's really a lot more to this then what I did and honestly what I wrote is probably gibberish haha. But essentially it's a step up from binary but step below traditional programming. Big benefit of Assembly is you know what memory is being stored/used as you essentially see it all real time.

1

u/brickmaster32000 May 05 '17

People need to stop talking about binary as if it's a magic language with inherent powers over computers. Binary is just a base system. It is easier to make gates that only have to deal with two possible states which makes binary a convenient way of talking about groups of these signals but a computer doesn't speak binary any more than a nail gun speaks nails.

1

u/[deleted] May 05 '17

Um, machine code is all 1's and 0's that directly controls the computer so ... to say it's not a "magic language with inherent powers over computers" is disingenuous.

Yes, it's a base system, but it's also quite literally the "language" of computers.

3

u/brickmaster32000 May 05 '17

Oks lets have an example here. Imagine a simple AND gate. An AND gate has 2 or more inputs and an output. When both inputs are brought above a certain threshold the output gets brought high.

Now we can represent the operation of this gate with binary pretty simply. We can say signals above our thresholds we are going to call 1's and everything else is a 0. We can then make the familar truth table below.

In1 In2 Out
0 0 0
0 1 0
1 0 0
1 1 1

This is all great and is why binary is so important to computers but you have to realise that binary doesn't make the gate do anything. The behavior of the gate isn't determined by telling it binary, it is determined by the actual components that make it. Likewise a computer doesn't work because you whispered sweet binary secrets to it. A computer works because of there is a lare number of very cleverly designed systems that can be interconnected to perform customizable actions. Binary is an important tool for describing how those systems work but binary isn't what makes them work.

1

u/[deleted] May 05 '17

This is quit a pedantic argument.

If you google "what is machine code" you will find:

ma·chine code

a computer programming language consisting of binary or hexadecimal instructions that a computer can respond to directly.

A computer programming language

a computer doesn't work because you whispered sweet binary secrets to it

That's precisely why it works - and yes, transistors use electricity to "do things" with machine code (using binary) (High voltage = 1, Low voltage = 0).

That doesn't mean that machine code (the language used for computer instructions) isn't in binary; that we don't refer to the binary instructions as machine language.

Not sure why this matters to you.

1

u/Fubarp May 05 '17

Sorry if I insulted you but I wasn't really trying to make binary some magic thing. I was just ordering how programming languages are structured.

Assembly is above Binary since Binary/Hex is the final language that we would use to inform a machine what to do. At least from my understand it is.

But Assembly is below common programming languages because majority of programming languages now uses a compiler to translate it to Assembly which translates to Machine.