ceainic Bloguri

A cincea zi.
Despre cuvinte și cuvinte duble
(formate de date)

Ca să nu mai spun că acest subiect a fost cel mai dificil, dar faptul că aceasta este cea mai complicată - este de 100%.

Ceea ce scrie aici este destul de strâns pentru percepție, dar totul se va rezolva în timp. Nu vă descurajați dacă dintr-o dată în acest capitol poate părea că asamblare este foarte complicată, despre această focalizare.







Nu orice șofer știe că, pentru că mașina a fost merge mai departe, roata de la punctul de contact cu drumul ar trebui să se întoarcă. În timp ce aceste informații au fost comunicate fiecărui șofer și fiecare persoană. Ei bine, plimbari auto și unități, ceea ce este diferența în cazul în care roțile de filare. Este necesar să se cunoască numai la schimbarea roții, astfel încât să nu confunde orientarea cauciuc, sau în timpul reparării.

Aproximativ aceleași informații vor fi prezentate în acest capitol. În practică, a învățat tot mai repede, dacă aveți de a face cu cod nativ și date.

Marinar, trebuie sa stii prietenul tau (din partea unui potențial inamic) este mai bună decât el însuși.

Binare sunt organizate în grupuri de opt, aceste unități sunt numite octeți. Reține-mă?

Byte - o unitate minimă de cont armată binar. Reține-mă?

2 octeți sunt organizate într-un cuvânt (cuvânt).

4 octeți sunt organizate într-un cuvânt dublu (DWORD, și plin - cuvânt dublu).

Dword - este cel mai comun set de biți dintr-un Win32-programe. Deoarece:

În programul precedent, ne confruntăm aici cu linia:

"D", aici doar înlocuiți DWORD.

Rămâne o întrebare pentru un pic: de ce dezasamblor bytes instrucțiuni procesor operanzi le vedem oglindit valorile operanzi în comenzi Asma?

Amintiți-vă, marinar, binarele sunt foarte viclean. Pentru a confunda inamicul octeților în ordinea vechimii, fiecare întreagă unitate de luptă, fie că este vorba cuvânt (2 octeți), DWORD (4 octeți), QWORD (8 bytes), octeții sunt construite de la juniori la seniori, la naiba le rupe!

Iar acțiunea este după cum urmează:

În debugger pe care îl vezi în acest fel:

Noi scrie și să citească textul-european - de la stânga la dreapta. Dar pentru numerele de cei mai mulți oameni folosesc de înregistrare Arabă - de la dreapta la stânga (deși numărul de citit prostește de figuri senior =).

Pentru marea întristarea, programatori a fost adoptat formatul de afișare a datelor mixte. Fiecare octet este afișat de către sistemul arab, și un întreg grup de bytes - al european. Se pare că pe ecran vom vedea o înregistrare diferită. În cazul în care programul-disassembler și debugger percep grup de bytes ca un întreg, este afișat scris arabă, la fel ca în coloana comenzi Assembler: 04 martie 01 februarie, iar dacă este vorba doar câțiva octeți, atunci vom vedea un record european, numai la scrisoarea primită de către un octeți, așa cum este arătat mai sus: 01 02 03 04. Toate acestea sunt doar o chestiune de afișare ecran, sau în documentele. De exemplu, dacă utilizați înregistrarea valorilor digitale din colțul din dreapta jos al ecranului spre stânga sus (de la dreapta la stânga, jos în sus), atunci nimic nu trebuie să se întoarcă! Aceasta este, în cazul în care intrarea a fost acceptată, „bine“ sau „tot la stânga“, că astfel de probleme nu ar fi deloc.







Să presupunem că am marcat aici următoarea linie:

Acum explica pe scurt.

După ce ne-am definit dimensiunea cuvântului (sau ambele Hiew'e „w“), avem un fel de ansamblu.

Iată cum linia va arata ca in Hiew'e:

Coloana operanzi - așa cum am intrat (numărul BBAAh). Dar într-o coloană de bytes vedem un aranjament în oglindă de bytes de operanzi - 00 08, AA BB.

Și în mod similar aranjate DWORD. Să presupunem că:

Întrebarea pe care, probabil, originea la toate (și eu presupun că mulți sub formă obscene) „În sensul în ce?“

Cred că mulți cititori vor strica complet, există doar o singură consolare: să schimbe octeți în cap, nu este necesară. Pentru a obține un număr întreg de octet sau, invers, cifrele se aduna bytes, suficient pentru a schimba modul de afișare în program. Mai mult decât atât, cu programare simplu, puteți uita de aceste invataturi si amintesc doar ocazional.

Totul, de la teoria ciclurilor și au existat doar un teanc de ei, vom vorbi mâine.

Sailor! Cumva nu am observat, că ați dezvoltat butonul F10!

Dacă vrei să fii căpitanul propriei tale nave, chiar și fără hiperpropulsia, trebuie să depanare și depanare.

A doua zi după ziua de mâine voi vedea reflexia în F10-cheie de pe tastatură, sau te voi picătură la cea mai apropiată planetă abandonată.

Și asta a fost distractiv de a pune presiune pe butonul F10, de conducere debugger următorul program de (prax03.com).

Îndesă-te, doar astfel încât să puteți învăța.

În Hiew'e ar trebui să arate astfel:

Dar asta nu e tot, acum trece la Hex-mode (F4) și termina programul următorul octet după întregul cod. Acesta va fi „date“.

De fapt, toate aceste spații (20h), programul nu are nevoie. Dar atunci când urmăriți un program în debugger, ei te vor ajuta.

Când mesajele de depanare pot apărea pe ecran cu privire. FIG bine cu ei. Dacă CV-ul opțiunea Screen Swap nu este oprit, este necesar să se facă.

Rezultatul acestui program, - linii de afișare diagonală, din stânga sus spre colțul din dreapta jos.

Există o mulțime de lucruri noi, și sper că va fi interesat să știe cum noua echipă și activitatea JNE CMP.

Încearcă-l singur pentru a afla ce se întâmplă în program în practică. Așa cum am scris, pentru Întrerupere (int comanda) atunci când scrieți programe Win32, nu vom folosi. Deci nu se poate harpă pe ele. Este suficient să știe că este rutine utile, unele dintre care se află încă în BIOS (sistem de intrare / ieșire de bază - sistemul de bază intrare / ieșire).

Sunt obligat să le folosească numai pentru programul era plin și ai putea învăța în mod clar principalele instrucțiuni de asamblare.

În acest exemplu va fi implicat int 10h pentru curățarea ecranului (AL = 3) și pentru locația cursorului de text (AH = 2). Deci, int 21h pentru a afișa textul de pe ecran. Toate celelalte întreruperi în cadrul lecțiilor nu va mai fi. Despre ei de-a lungul anilor, spune destul.

Iată modul în care programul ar trebui să fie interpretat (doar spun - despre eticheta voi explica mai târziu).

Înainte de a analiza acestui program, vreau să vorbesc despre conceptele cheie în programare - cicluri.

<<предыдущая глава      следующая глава>>