Αναλογία Structures – Ψευδοκώδικας => Assembly


Πριν ξεκινήσω, να πω ότι η ουσία του πράγματος δεν είναι στην… Assembly – μην ξεχνάμε ότι Assembly σημαίνει 1-προς-1 μετάφραση σε γλώσσα μηχανής (a.k.a. 0101010 κ.ο.κ.) και επομένως αποτελεί ό,τι πιο κοντινό στην κατανόηση των ενδότερων λειτουργιών ενός υπολογιστή (κάτι σαν την μοριακή βιολογία ως προς την παπαρο-λογία της ιατρικής)

Σε ποιόν θα χρειαστούν? Χμμ… Σε όποιον ΚΑΙΓΕΤΑΙ όπως και ο γράφων με πράγματα που άλλοι θεωρούν ανούσια? Μάλλον. Δεν ξέρω… Κι εξάλλου, από πότε η χρηστικότητα αποτελεί ένδειξη αξίας? Αν ήταν έτσι οι μισές επιστήμες (και ΟΛΕΣ οι τέχνες) δεν θα είχαν καν λόγω ύπαρξης…

ΣΥΜΒΟΛΙΣΜΟΙ
jOP -> jump με condition/operator “OP” (όπου OP => -E, -NE, -L, -G, -LE, -GE, κλπ)

OP -> condition/comparison operator

op1 -> πρώτο σκέλος/operand του condition (λ.χ. για condition: op1 < op2)

op2 -> δεύτερο σκέλος/operand


While Loop


WHILE (op1 OP op2) DO
	...statements...
ENDWHILE

----------------------------

WHILE:
	cmp op1, op2
	jOP DO
	jmp ENDWHILE
DO:
	...statements...
	jmp WHILE
ENDWHILE:

If/Then/Else Statement


IF (op1 OP op2)
	THEN ...statements1...
	ELSE ...statements2...
ENDIF

----------------------------

IF:
	cmp op1, op2
	jOP THEN
	jmp ELSE
THEN:
	...statements1...
	jmp ENDIF
ELSE:
	...statements2...
ENDIF:

Repeat/Until Loop


REPEAT
	...statements...
UNTIL (op1 OP op2)

----------------------------

REPEAT:
	...statements...
WHILE:
	cmp op1, op2
	jOP ENDREPEAT
	jmp REPEAT
ENDREPEAT:

Do/While Loop


DO
	...statements...
WHILE (op1 OP op2)

----------------------------

DO:
	...statements...
WHILE:
	cmp op1, op2
	jOP DO
ENDWHILE:

Switch/Select Case


SWITCH (SELECTOR)
BEGIN
	case VALUE1	:	...statements1...
				BREAK
	case VALUE2	:	...statements2...
				BREAK
	default		:	...default_statements...
END

----------------------------

SWITCH:
	cmp SELECTOR, VALUE1
	je CASE_VALUE1
	cmp SELECTOR, VALUE2
	je CASE_VALUE2
	jmp CASE_DEFAULT
CASE_VALUE1:
	...statements1...
	jmp ENDSWITCH
CASE_VALUE2
	...statements2...
	jmp ENDSWITCH
CASE_DEFAULT:
	...default_statements...
END_SWITCH:

For Loop


FOR (index = start_value -> stop_value) DO
	...statements...
ENDFOR

----------------------------

	mov index, start_value
FOR:
	cmp index, stop_value
	jl DO
	jmp ENDFOR
DO:
	...statements...
	inc index
	jmp FOR
ENDFOR:

Σού άρεσε? Πρότεινέ το σ' έναν φίλο!

Συναφή Άρθρα

Κάνε ένα σχόλιο τώρα (όσο προλαβαίνεις...)



THOUGHT of the DAY

Always mind the pot odds, before betting.

18/01/2012