Greek Flag

FTL

Retro Member
Joined
4 Ιουλ 2007
Μηνύματα
187
Αντιδράσεις
10
H Ελληνική σημαία στο παράθυρο της κονσόλας.

Ένα μικρό πρόγραμμα σε γλώσσα μηχανής, ώστε να ακολουθήστε τις οδηγίες για να το τρέξετε μόνοι σας με το debug.

Πρώτα κάντε copy τον κώδικα που βλέπετε παρακάτω.

Kλίκ στην Εναρξη -> Εκτέλεση.

Πληκτρολογήστε debug και πατήστε enter, το παράθυρο της κοσνόλας θα ανοίξει.

Δεξί κλίκ στον τίτλο του παραθύρου της κονσόλας, επιλέξτε Επεξεργασία -> Επικόλληση.

θα περαστούν τα bytes του κώδικα μέσα στο παράθυρο της κονσόλας.

Οταν τελειώσει πατήστε enter

Πληκτρολογήστε το γράμμα g και πατήστε enter

Το πρόγραμμα θα τρέξει μέσα στην κονσόλα.

Οποιοδήποτε πλήκτρο για τέλος του προγράμματος.

Πατήστε q και enter, για έξοδο απο το debug.

Κώδικας:
e 100 B8 03 00 CD 10 B8 03 01 B9 00 20 CD 10 68 00 B8 
e 110 07 31 FF BE 3A 01 B1 09 B5 10 AC B4 DB 86 C4 AB   
e 120 AB AB 57 81 C7 9A 00 AB AB AB 5F FE CD 75 EB 81 
e 130 C7 E0 00 E2 E3 30 E4 CD 16 C3 01 01 0F 01 01 01 
e 140 01 01 01 01 01 01 01 01 01 01 01 01 0F 01 01 0F 
e 150 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 01 
e 160 01 01 01 01 01 01 01 01 01 01 01 01 0F 01 01 0F 
e 170 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 01 01 0F 01 01 01 
e 180 01 01 01 01 01 01 01 01 01 01 0F 0F 0F 0F 0F 0F 
e 190 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 01 01 01 01 01 01 
e 1A0 01 01 01 01 01 01 01 01 01 01 0F 0F 0F 0F 0F 0F 
e 1B0 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 01 01 01 01 01 01 
e 1C0 01 01 01 01 01 01 01 01 01 01
 
Βρε συ FTL δεν υπάρχει περίπτωση να μάθει κανένας τίποτα από αυτό το πρόγραμμα. Μη με παρεξηγήσεις δε λέω ότι δεν έπρεπε να το βάλεις, απλά είμαι σίγουρος ότι έχεις πολλά άλλα που έχουν πιο ευανάγνωστο source code ώστε από αυτόν να μάθουμε.

Είσαι αστέρι πάντως!
 
Δεν τόβαλα για να μάθει κανείς κάτι απο αυτόν τον κώδικα.

Υπέθεσα ότι ορισμένα παιδιά δεν θα έχουν ξανατρέξει το debug ποτέ και για αυτόν τον λόγο το έβαλα με αυτήν την μορφή.

Shock νάσαι καλά.

Ο κώδικας του αποπάνω προγράμματος σε γλώσσα Assembly.

Κώδικας:
; Greek Flag
; http://lightforce.freestuff.gr
; Fasm Assembler v1.67.26

    org 100h

    mov ax,0003h                
    int 10h	  

    mov ax,0103h                
    mov cx,2000h
    int 10h

    push 0b800h
    pop es

    xor di,di
    mov si,fla
    mov cl,9
bo:
    mov ch,16
bi:
    lodsb
    mov ah,219
    xchg al,ah              
    stosw 
    stosw
    stosw
    push di     
    add di,154
    stosw
    stosw
    stosw
    pop di
    dec ch
    jne bi
    add di,320-96
    loop bo     
    xor ah,ah
    int 16h     
    ret


fla   db 1,1,15,1,1,1,1,1,1,1,1,1,1,1,1,1
     db 1,1,15,1,1,15,15,15,15,15,15,15,15,15,15,15
     db 15,15,15,15,15,1,1,1,1,1,1,1,1,1,1,1
     db 1,1,15,1,1,15,15,15,15,15,15,15,15,15,15,15
     db 1,1,15,1,1,1,1,1,1,1,1,1,1,1,1,1
     db 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
     db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
     db 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
     db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
 
Ωραίος FTL, τώρα καλύτερα.

Μου θύμησες pάντως εποχές Poke στον Amstrad :)
 
Οντως δεν είχα τρέξει και ούτε γνωριζα την ύπαρξη του debug.exe .. Βέβαια και τώρα που το είδα και έτρεξα και την σημαιούλα δεν άλλαξε πολύ η ζωή μου. Αυτό που θα την άλλαζε θα ήταν ίσως ενα "βήμα προς βήμα Assembly για εντελώς άσχετους". Αν λοιπόν έχει κανείς όρεξη από τους γνώστες να μας πουν και εμάς ένα δυο πραγματάκια, όπως γίνετε και με την basic θα ήταν σούπερ. Οστόσο μπορώ να περιμένω να τελειώσουν τα μαθήματα Basic όπως και τον online emulator για Amstrad με copy (λολ) δυνατοτητες. Οπως και να έχει ευχαριστούμε για την μόρφωση μας όποια και να είναι αυτη. Keep on going guys...
 
παιδιά έχω υλικό απο QBasic, Amiga Basic αλλά και c-64 Basic (μάλλον σε κασέτες) λίγα όμως πράγματα στον τελευταίο γιατί έχουν περάσει τα χρόνια και δυστυχώς δεν φύλαξα αυτούς τους κώδικες όπως έπρεπε.

Θέλει πάντως πολύ ψάξιμο σε κούτες για να τα εντοπίσω, επίσης και σε Visual Basic 4 έχω πολλά project, αλλά ok όχι και τόσο retro.
 
Φίλε FTL, είσαι ΦΟΒΕΡΟΣ!!! :worship:

AA+ είπε:
Οντως δεν είχα τρέξει και ούτε γνωριζα την ύπαρξη του debug.exe ..
Υπήρχε μια εντολή, που εάν τη θυμόμουν θα μπορούσα να μπω άνετα στο βιβλίο Γκινες, η οποία παρκάριζε την κεφαλή σε σκληρούς δίσκους που δεν είχαν auto-park. Αργότερα την είδα ως park.exe που έκανε την ίδια δουλειά. Επιπλέον, υπήρχε μια εντολή η οποία έκανε φορματ σε δίσκους MFM. Αυτές οι 2 εντολές έτρεχαν μεσω της DEBUG.
 
Δεν είχα ιδέα πως υπάρχει ακόμα το debug.exe!

Θα είχε ενδιαφέρον αν ο FTL μας έλεγε μερικά πραγματάκια παραπάνω για αυτή την εντολή!
 
Το Debug είναι ένα παλιό Dos πρόγραμμα που βρίσκεται σε όλες τις εκδόσεις των Windows.

To link του Wally έχει πολλές πληροφορίες και μεγάλο tutorial στην δεύτερη του σελίδα, επίσης και στο google υπάρχουν πληροφορίες για όποιον ενδιαφέρεται.

Στο παρελθόν, αρκετοί asm προγραμματιστές έκαναν στο Debug τα πρώτα τους βήματα.

Τώρα για να σε βοηθήσω λίγο, μπορείς να γράψεις κώδικα Αssembly με το Debug, να δημιουργήσεις αρχεία com εκτελέσιμα σε dos/windows,

να κάνεις unassemble com αρχεία, και γενικά σε φέρνει πολύ μέσα στο εσωτερικό του υπολογιστή, είναι πηγή γνώσης αυτό το μικρούλι πρόγραμμα.

Προυποθέτει όμως γνώσεις Assembly, και το Debug είναι ένα πολύ δύσχρηστο πρόγραμμα που δεν χρησιμοποιείται στις μέρες μας, είναι προτιμότερο να ξεκινήσεις με έναν Assembler απευθείας.

Πάτησε Έναρξη - Εκτέλεση -> debug

Θα ανοίξει το παράθυρο της κονσόλας, θα δεις μία παύλα -

Πάτησε ? [enter] για να δείς τις εντολές, r [enter] για να δείς τους 16 bit καταχωρητές και τις σημαίες, q [enter] για έξοδο απο το Debug.

Σου δίνω και ένα προγραμματάκι που τυπώνει τους 255 ASCΙΙ χαρακτήρες.

Να είσαι προσεκτικός στην πληκτρολόγηση, γιατί το Debug δεν είναι παιχνίδι.

Ξεκίνα ένα νέο Debug

Πληκτρολόγησε τις εντολές που είναι bold, όπου [enter] πάτα το enter

-A100 [enter]

13CD:0100 MOV AL,0 [enter]

13CD:0102 MOV CX,FF [enter]

13CD:0105 INT 29 [enter]

13CD:0107 INC AL [enter]

13CD:0109 LOOP 0105 [enter]

13CD:010B INT 20 [enter]

13CD:010D [enter]

-G [enter]

Aν το έγραψες σωστά η έξοδος θα είναι σαν την παρακάτω:

image1id5.jpg
 
Πίσω
Μπλουζα