Prima ieșire către asamblorul de ecran

Astăzi ne uităm la tema „ieșire în Assembler Screen“ și a discuta despre un program care poate afișa un număr de consola noastre. Pentru a face acest lucru, trebuie să învățăm câteva proceduri noi, precum și să ne familiarizăm cu bibliotecile și fișierele de sistem conectate.







Amintiți-vă procedurile

Pentru inceput, va reamintesc ca atunci cand am studiat procedurile de asamblare cu tine. apoi, însumând, am scris că pentru procedurile cu parametri este necesar un prototip. Da, este, dar există un singur lucru: dacă această procedură nu este standard și nu este descrisă nicăieri în biblioteca plug-in.

Deci, înainte de a examinării ExitProcess, precum și procedurile pe care astăzi le vom studia cu tine (WriteConsoleA, wsprintf) sunt standard (de fapt, există un astfel de termen, dar cred că atât de ușor de înțeles), și nu trebuie să scrie un prototip pentru ei.

afișa

Acum, hai să trecem la cod:

După cum ați observat, am crescut numărul de fișiere conectate. Și așa cum am scris deja mai sus, vor fi necesare toate pentru ca procedurile să funcționeze, pe care le vom folosi mai târziu în acest program.

Apoi, nu va fi foarte clar până nu vedem în acțiune, dar voi încerca să explic. Primul lucru pe care îl facem este să declare constanta BSIZE cu o valoare de 15. Apoi, în secțiunea .date. unde variabilele sunt declarate, specificăm câteva variabile care vor fi necesare ca parametri pentru procedurile noastre ulterioare.







Este demn de remarcat buf variabilă: de înregistrare DUP (duplicarea) arată octeți consecutivi, care sunt alocate pentru variabila BSIZE dimensiunea buf (15). Un semn de întrebare spune că valoarea octetului nu este definită în avans.

Deci, până când totul este clar, așa că mergeți mai departe, atunci ar trebui să aveți un puzzle:

Apoi vom folosi procedura wsprintf. Este necesar, în scopul de a obține mesajul nostru (ca număr) într-un format ușor de înțeles pentru noi, adică, procedura este transformarea în format limbaj mașină umană. Pentru aceasta, utilizați variabila ifmt.

Ei bine, pentru ieșirea în sine este procedura WriteConsoleA. Este nevoie de 5 parametri, iar ultimul ar trebui să fie întotdeauna 0.

Rularea programului

Și acum vă voi arăta cum să implementați toate acestea în practică, după ce ați scris codul.
Fifth.asm Am creat fișierul și a pus-o în dosarul BIN. Apoi am deschis un prompt de comandă, și trece la directorul BIN cu comanda cd C: \ Users \ Nikita \ BIN (vei avea un alt mod, cel mai probabil)
Apoi, compilarea fișierului nostru, care prescrie comanda amake.bat a cincea, în cazul în care codul este corect, va fi ca în fotografie:

Prima ieșire către asamblorul de ecran

După cum se poate vedea, totul a fost compilat fără erori, dar pe ecran nu a apărut nimic. Pentru a se asigura că programul nostru este executat, aveți nevoie pentru a rula după compilarea unui fișier cu extensia .txt (acesta este creat automat când compilarea corectă). La linia de comandă fifth.exe, ar trebui să obțineți ceva de genul:

Distribuiți acest link:







Articole similare

Trimiteți-le prietenilor: