Programování v asembleru - instrukce Jakub Yaghob.

Slides:



Advertisements
Podobné prezentace
Základy ukládání dat v počítači
Advertisements

PRIPO Principy počítačů
Na velikosti (ne)záleží aneb Úvod do programování jednočipů
Počítače a programování 1 Přednáška 13 Jiří Šebesta.
Programování v asembleru - multiprocesory Jakub Yaghob.
Programování v asembleru - multiprocesory Jakub Yaghob.
Programování 2 Cvičení 5.
Programování v Pascalu Přednáška 3
Programování v Pascalu Přednáška 5 RNDr. Hana Havelková.
Principy překladačů Běhová podpora Jakub Yaghob. Běhová podpora Statická podpora jazyka Překladač Interface na knihovny Hlavičkové soubory Dynamická podpora.
Programování v asembleru - prostředí
Principy překladačů Interpretované jazyky Jakub Yaghob.
Generování mezikódu Jakub Yaghob
Principy překladačů Architektury procesorů Jakub Yaghob.
Základy mikroprocesorové techniky
Dvojkový doplněk, BCD kód
Tato prezentace byla vytvořena
Obchodní akademie, Ostrava-Poruba, příspěvková organizace
OSNOVA: a) Řetězce v C b) Funkce stdio.h pro řetězce c) Funkce string.h pro řetězce d) Příklad Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
ZÁKLADNÍ DATOVÉ TYPY.
1 Počítačové systémy 1 Úvod, jazyk C 35POS 2010 Doc. Ing. Bayer Jiří, Csc. Ing. Pavel Píša
AVR Assembler Symboly Návěští
Základy číslicové techniky
Základy číslicové techniky
Základy číslicové techniky
Reprezentace dat „There are only 10 types of people in the world: - those who understand binary, - and those who don't.“
Informatika I 4. přednáška
Informatika I 7. přednáška RNDr. Jiří Dvořák, CSc.
Informatika I 8. přednáška RNDr. Jiří Dvořák, CSc.
Aritmetické operace ve dvojkové soustavě, šestnáctkový součet
BCD kód a záporná dvojková čísla
Logické funkce Vojtěch Dědek Vojtěch Dědek. Jména funkcí základní:základní: Not,AND,OR,XORNot,AND,OR,XOR Předpony :Předpony : N když je funkce negovaná,N.
P-těžké, np-těžké a np-úplné problémy
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Elektrotechnika Mikroprocesorová technika
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
OSNOVA: a) Ukazatel b) Pole a ukazatel c) Pole ukazatelů d) Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 1 pro.
 Jak se dělí číselné soustavy?  V jaké technice se používá dvojková soustava?  Jaké čísla používá?
Základy číslicové techniky
Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Pavel Najman. Obchodní akademie a Střední odborná škola logistická, Opava, příspěvková.
Word – Tisk Ing. Bohumil Bareš. Tisk – klepneme na ikonu Microsoftu, vybereme tisk 2.
Stereometrie Odchylky přímek VY_32_INOVACE_M3r0114 Mgr. Jakub Němec.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
ZÁKLADY ČÍSLICOVÉ TECHNIKY
Šestnáctková soustava
Prepositions & Cases II Form at least two reasonable prepositional phrases by combining the word between slash marks with the prepositions mezi, na, naproti,
Instrukce procesoru.
Elektřina a magnetismus. Vše drží pohromadě díky elektrostatické interakci Cu C, Ge.
Odborný výcvik ve 3. tisíciletí Tato prezentace byla vytvořena v rámci projektu.
Programování ÚVOD, PROMĚNNÉ, OPERÁTORY A PODMÍNĚNÝ PŘÍKAZ ERIK KRÁL.
ALU Aritmeticko-logická jednotka
Měření síly.
Výukový materiál zpracován v rámci projektu
Jednočipové počítače – instrukční sada
Číslicová technika.
VY_32_INOVACE_CIT_12 Komparátory.
Výukový materiál zpracován v rámci projektu
NÁZEV ŠKOLY: 2. základní škola, Rakovník, Husovo náměstí 3
Polohové vlastnosti – určenost roviny
Reprezentace dat „There are only 10 types of people in the world: - those who understand binary, - and those who don't.“
Prepositions & Cases II
Výukový materiál zpracován v rámci projektu
Informatika textový editor - WORD
Práce s desetinnými čísly
Jednotky dat Informatika, 8. třída.
Číselné soustavy a kódy
Algoritmizace a datové struktury (14ASD)
CU01 Informatika II 2/13 Základy algoritmizace
Pak. pak pak Selamat pagi, Bart. Your Indonesian is coming along well. I gather you think that “pak”, pronounced “puck”, is the Indonesian word.
Transkript prezentace:

Programování v asembleru - instrukce Jakub Yaghob

Datové typy I. Celočíselné typy Bezznaménkové Rozsah Znaménkové Dvojkový doplněk Rozsah Velikosti Byte, word, doubleword, quadword

Datové typy II. Ukazatele „Pakované“ BCD

Podmínky A/NBECF or ZF=0> AE/NBCF=0>= B/NAECF=1< BE/AECF or ZF=1<= CCF=1Carry E/ZZF=1== NCCF=0Not carry NE/NZZF=0!= NP/POPF=0Lichá parita P/PEPF=1Sudá parita G/NLE(SF xor OF) or ZF=0> GE/NLSF xor OF=0>= L/NGESF xor OF=1< LE/NG(SF xor OF) or ZF=1<= NOOF=0Not over NSSF=0>=0 OOF=1Overflow SSF=1<0 BezznaménkovéZnaménkové

Přesuny MOV, CMOVcc Výměny XCHG, BSWAP Zásobník PUSH, POP PUSHA, POPA PUSH oper ESP  ESP-4 [SS:ESP]  oper Vstup/výstup IN, OUT Konverze CWD, CDQ CWD: DX:AX  S(AX) CBW, CWDE CBW: AX  S(AL) Přesuny s rozšířením MOVSX, MOVZX

Celočíselná aritmetika I. Sčítání ADD, ADC Odčítání SUB, SBB Inkrement/dekrement INC, DEC Negace NEG Porovnání CMP

Celočíselná aritmetika II. Násobení MUL, IMUL MUL src: AX  AL*src DX:AX  AX*src EDX:EAX  EAX*src IMUL rx,rmx IMUL rx,rmx,imm8 IMUL rx,imm8 IMUL rx,rmx,immx IMUL rx,immx Dělení DIV, IDIV DIV src: AL  AX/src AH  AX%src AX  DX:AX/src DX  DX:AX%src EAX  EDX:EAX/src EDX  EDX:EAX%src

Logické instrukce, posuvy, rotace I. Logické instrukce AND, OR, XOR, NOT Logické porovnání TEST Aritmetický posuv SAL(=SHL), SAR SAR: SAL: Logický posuv SHL(=SAL), SHR SHR: Rotace ROL, ROR ROL: ROR: OPCF OPCF 0 OPCF 0 OPCFOPCF

Logické instrukce, posuvy, rotace II. Rotace s přenosem RCL, RCR RCL: RCR: Velké posuvy SHLD, SHRD SHLD: SHLD rmx,rx,imm8 SHLD rmx,rx,CL OPCFOPCF DSTCF 0 SRC Možnosti posuvů RCL rm,imm8 RCL rm,CL

Skoky JMP, Jcc Cykly JCXZ, JECXZ JECXZ:IF ECX=0 GOTO LOOP LOOP:IF --ECX GOTO LOOPZ/LOOPE LOOPZ:IF ZF --ECX GOTO LOOPNZ/LOOPNE Podprogramy CALL, RET CALL dst:PUSH EIP EIP  dst RET imm16:POP EIP ESP  ESP+imm16 Přerušení INT, INTO, IRET Podpora VPJ BOUND ENTER, LEAVE

Bitové a BCD operace Operace s bity BT, BTS, BTR, BTC BTo rmx,rx BTo rmx,imm8 Hledání bitu BSF, BSR BSo rx,rmx Podmíněné nastavení SETcc Desítkové opravy DAA, DAS ASCII opravy AAA, AAS, AAM, AAD AAD [i]: AL  AL+AH*i AH  0 AAM [i]: AH  AL/i AL  AL%i

„Semaforové“ operace XADD CMPXCHG XADD r/m,r temp  src+dst src  dst dst  temp CMPXCHG r/m,r if ACC==dst { ZF  1;dst  src; } else { ZF  0;ACC  dst; }

„Semaforové“ operace Velké semaforové operace CMPXCHG8B, CMPXCHG16B if vDX:vAX==dst { ZF  1;dst  vCX:vBX; } else { ZF  0;vDX:vAX  dst; }

Ostatní Operace s CF STC, CLC, CMC Operace s DF STD, CLD Operace s IF STI, CLI Operace s EFLAGS LAHF, SAHF PUSHF, POPF Dlouhé ukazatele LDS, LES, LFS, LGS, LSS Ostatní LEA, NOP, XLATB, CPUID XLATB: AL  [EBX+AL]

Řetězcové operace I. Různé šířky Byte, Word, Doubleword Zdroj DS:ESI Lze změnit DS prefixem instrukce Nelze změnit ESI  Cíl ES:EDI Nelze změnit ES:EDI  Opakování Počet v ECX a nelze to změnit  Směr Podle DF Instrukce samy posouvají cíl/zdroj podle šířky a směru

Řetězcové operace II. Přesun MOVSs [ES:EDI]  [DS:ESI] Porovnání CMPSs [DS:ESI] – [ES:EDI] Hledání SCASs ACC – [ES:EDI] Načtení LODSs ACC  [DS:ESI] Uložení STOSs [ES:EDI]  ACC Vstup INSs [ES:EDI]  [DX] Výstup OUTSs [DX]  [DS:ESI] Prefixy REP REPZ/REPE, REPNZ/REPNE

Řetězcové operace III. Je ECX==0? Pokud ano, konec. Nenastavuje příznaky Obsluha přerušení Vykonání instrukce posun cíle a zdroje nastaví příznaky pokud je porovnání ECX = ECX – 1 Nenastaví příznaky Pokud souhlasí podmínka nebo REP, jdi na začátek