Práce s registry a s pametíiregeciova/isu2019/documents/... · 2019. 2. 19. · ESI - zdrojovy...
Transcript of Práce s registry a s pametíiregeciova/isu2019/documents/... · 2019. 2. 19. · ESI - zdrojovy...
![Page 1: Práce s registry a s pametíiregeciova/isu2019/documents/... · 2019. 2. 19. · ESI - zdrojovy index pro operaci s´ ˇretezci EDI - c´ılov ´y index pro operace s ˇret ezciˇ](https://reader036.fdocuments.us/reader036/viewer/2022071408/6100339ce29ddc3ff465c35c/html5/thumbnails/1.jpg)
Prace s registry a s pametı
Ing. Dominika RegeciovaVyzkumna skupina formalnıch modelu
Vysoke ucenı technicke v Brne, Fakulta informacnıch technologiıBozetechova 1/2, 612 66 Brno - Kralovo Pole
![Page 2: Práce s registry a s pametíiregeciova/isu2019/documents/... · 2019. 2. 19. · ESI - zdrojovy index pro operaci s´ ˇretezci EDI - c´ılov ´y index pro operace s ˇret ezciˇ](https://reader036.fdocuments.us/reader036/viewer/2022071408/6100339ce29ddc3ff465c35c/html5/thumbnails/2.jpg)
Prıklad na zacatek
• Preved’te cıslo (1FD)16 do binarnı soustavy
• Preved’te cıslo (00111000)2 do osmickove soustavy
ISU 2018/2019, 3. cvicenı 2 / 15
![Page 3: Práce s registry a s pametíiregeciova/isu2019/documents/... · 2019. 2. 19. · ESI - zdrojovy index pro operaci s´ ˇretezci EDI - c´ılov ´y index pro operace s ˇret ezciˇ](https://reader036.fdocuments.us/reader036/viewer/2022071408/6100339ce29ddc3ff465c35c/html5/thumbnails/3.jpg)
Prıklad na zacatek
• Preved’te cıslo (1FD)16 do binarnı soustavy• (0001 1111 1101)2
• Preved’te cıslo (0011 1000)2 do osmickove soustavy• (070)8
ISU 2018/2019, 3. cvicenı 3 / 15
![Page 4: Práce s registry a s pametíiregeciova/isu2019/documents/... · 2019. 2. 19. · ESI - zdrojovy index pro operaci s´ ˇretezci EDI - c´ılov ´y index pro operace s ˇret ezciˇ](https://reader036.fdocuments.us/reader036/viewer/2022071408/6100339ce29ddc3ff465c35c/html5/thumbnails/4.jpg)
Opakovanı: Registry
• Datove• EAX - aritmeticke operace, vstup/vystup• EBX - adresovanı• ECX - cıtac v cyklech• EDX - vstup/vystup, aritmeticke operace mul, div
• Ukazatele• EIP - instruction pointer, ukazatel na nasledujıcı instrukci• ESP - offset v ramci programoveho zasobnıku• EBP - pomaha pri referencovanı promennych predavanych
do subrutiny• Indexove
• ESI - zdrojovy index pro operaci s retezci• EDI - cılovy index pro operace s retezci
• Segmentove• Jejich obsah nemenıme, ukladajı segmentovou cast adresy• CS (Code Segment), SS (Stack Segment), DS (Data
Segment), ES (Extra Segment)
ISU 2018/2019, 3. cvicenı 4 / 15
![Page 5: Práce s registry a s pametíiregeciova/isu2019/documents/... · 2019. 2. 19. · ESI - zdrojovy index pro operaci s´ ˇretezci EDI - c´ılov ´y index pro operace s ˇret ezciˇ](https://reader036.fdocuments.us/reader036/viewer/2022071408/6100339ce29ddc3ff465c35c/html5/thumbnails/5.jpg)
Opakovanı: Registry II
ISU 2018/2019, 3. cvicenı 5 / 15
![Page 6: Práce s registry a s pametíiregeciova/isu2019/documents/... · 2019. 2. 19. · ESI - zdrojovy index pro operaci s´ ˇretezci EDI - c´ılov ´y index pro operace s ˇret ezciˇ](https://reader036.fdocuments.us/reader036/viewer/2022071408/6100339ce29ddc3ff465c35c/html5/thumbnails/6.jpg)
(E)FLAGS
• Registr obsahuje 32 bitu (indikatoru), ktere procesornastavuje podle vysledku prave provedene operace aumoznuje tak vetvit program
• Kazda instrukce muze nastavovat ruzny pocet prıznaku,treba i zadny
• K registru nelze pristoupit jako k celku, ale lze pristoupit kjeho jednotlivym bitum (flagum)
• Nektere bity jsou rezervovane a nelze je menit
ISU 2018/2019, 3. cvicenı 6 / 15
![Page 7: Práce s registry a s pametíiregeciova/isu2019/documents/... · 2019. 2. 19. · ESI - zdrojovy index pro operaci s´ ˇretezci EDI - c´ılov ´y index pro operace s ˇret ezciˇ](https://reader036.fdocuments.us/reader036/viewer/2022071408/6100339ce29ddc3ff465c35c/html5/thumbnails/7.jpg)
Prıznaky
ISU 2018/2019, 3. cvicenı 7 / 15
![Page 8: Práce s registry a s pametíiregeciova/isu2019/documents/... · 2019. 2. 19. · ESI - zdrojovy index pro operaci s´ ˇretezci EDI - c´ılov ´y index pro operace s ˇret ezciˇ](https://reader036.fdocuments.us/reader036/viewer/2022071408/6100339ce29ddc3ff465c35c/html5/thumbnails/8.jpg)
Poznamky
• Registry EAX , ECX , EDX lze pouzıvat libovolne a nenıpotreba jejich hodnotu na konci funkce obnovovat
• Registry EBX , ESI, EDI lze pouzıvat libovolne, na konci funkceje potreba jejich hodnotu obnovit. Tyto registry mohou bytvyuzıvany pro lokalnı promenne.
• Registry ESP, EBP jsou pouzıvany pro praci se zasobnıkemdle popsaneho postupu
• V registru FLAGS je potreba vzdy na konci funkce zajistit,aby hodnota bytu DF byla nastavena vzdy na hodnotu 0
ISU 2018/2019, 3. cvicenı 8 / 15
![Page 9: Práce s registry a s pametíiregeciova/isu2019/documents/... · 2019. 2. 19. · ESI - zdrojovy index pro operaci s´ ˇretezci EDI - c´ılov ´y index pro operace s ˇret ezciˇ](https://reader036.fdocuments.us/reader036/viewer/2022071408/6100339ce29ddc3ff465c35c/html5/thumbnails/9.jpg)
Prıznaky: prıklad
%include ”rw32−2018. inc ”section . datasection . textmain :
push ebpmov ebp, esp
mov AL , 125inc ALinc ALinc ALinc ALinc ALinc ALinc AL
pop ebpret
ISU 2018/2019, 3. cvicenı 9 / 15
![Page 10: Práce s registry a s pametíiregeciova/isu2019/documents/... · 2019. 2. 19. · ESI - zdrojovy index pro operaci s´ ˇretezci EDI - c´ılov ´y index pro operace s ˇret ezciˇ](https://reader036.fdocuments.us/reader036/viewer/2022071408/6100339ce29ddc3ff465c35c/html5/thumbnails/10.jpg)
Sekce programu
ISU 2018/2019, 3. cvicenı 10 / 15
![Page 11: Práce s registry a s pametíiregeciova/isu2019/documents/... · 2019. 2. 19. · ESI - zdrojovy index pro operaci s´ ˇretezci EDI - c´ılov ´y index pro operace s ˇret ezciˇ](https://reader036.fdocuments.us/reader036/viewer/2022071408/6100339ce29ddc3ff465c35c/html5/thumbnails/11.jpg)
Deklarace promennych
• V .bss sektoru, promenne nejsou inicializovane
• byte buffer resb 64• rezervuje 64 slabik (byte = 8 bitu)
• word buffer resw 1• rezervuje 1 slovo (word = 2 bajty = 16 bitu)
• double buffer resd 2• rezervuje 2 dvojslova (double word = 4 bajty = 32 bitu)
• quad buffer resq 3• rezervuje 3 quad word (quad word = 8 bajtu = 64 bitu)
ISU 2018/2019, 3. cvicenı 11 / 15
![Page 12: Práce s registry a s pametíiregeciova/isu2019/documents/... · 2019. 2. 19. · ESI - zdrojovy index pro operaci s´ ˇretezci EDI - c´ılov ´y index pro operace s ˇret ezciˇ](https://reader036.fdocuments.us/reader036/viewer/2022071408/6100339ce29ddc3ff465c35c/html5/thumbnails/12.jpg)
Inicializace promennych
• V .data sektoru, vsechny konstanty jsou lokalnı
• Existuje klıcove slovo global, ktere je zverejnı
• Zkratky define byte | word | double word | quad word
• var byte db 10• definuje promennou o velikosti 8 bitu a hodnote 10
• var char array db ’Ahoj’, 0• retezec
• var dw array dw 100, 150, 200• definice polı, hodnoty oddelujeme carkami
ISU 2018/2019, 3. cvicenı 12 / 15
![Page 13: Práce s registry a s pametíiregeciova/isu2019/documents/... · 2019. 2. 19. · ESI - zdrojovy index pro operaci s´ ˇretezci EDI - c´ılov ´y index pro operace s ˇret ezciˇ](https://reader036.fdocuments.us/reader036/viewer/2022071408/6100339ce29ddc3ff465c35c/html5/thumbnails/13.jpg)
Ulozenı cısla v pameti
ISU 2018/2019, 3. cvicenı 13 / 15
![Page 14: Práce s registry a s pametíiregeciova/isu2019/documents/... · 2019. 2. 19. · ESI - zdrojovy index pro operaci s´ ˇretezci EDI - c´ılov ´y index pro operace s ˇret ezciˇ](https://reader036.fdocuments.us/reader036/viewer/2022071408/6100339ce29ddc3ff465c35c/html5/thumbnails/14.jpg)
Adresovanı pameti
• 32 bitovem rezim→ vsechny adresy budou mıt vzdy 32 bitu• Pamet’ lze indexovat pomocı:
• Prıme adresy (konkretnı pevna adresa)• Neprıme adresy (registry)• Ukazatele pres bazovy registr• Ukazatel v indexu registru
• Budeme pouzıvat hranate zavorky pro ctenı/zapis s daneadresy
ISU 2018/2019, 3. cvicenı 14 / 15
![Page 15: Práce s registry a s pametíiregeciova/isu2019/documents/... · 2019. 2. 19. · ESI - zdrojovy index pro operaci s´ ˇretezci EDI - c´ılov ´y index pro operace s ˇret ezciˇ](https://reader036.fdocuments.us/reader036/viewer/2022071408/6100339ce29ddc3ff465c35c/html5/thumbnails/15.jpg)
Adresovanı pameti: prıklad
ISU 2018/2019, 3. cvicenı 15 / 15