PROGRAMOWANIE NISKOPOZIOMOWE

Wielkość: px
Rozpocząć pokaz od strony:

Download "PROGRAMOWANIE NISKOPOZIOMOWE"

Transkrypt

1 PROGRAMOWANIE NISKOPOZIOMOWE PN.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

2 Wprowadzenie 1 Wprowadzenie Systemy liczbowe Organizacja komputera Procesory rodziny 80x86 2 Asembler Język maszynowy Język asemblera Dyrektywy dla asemblera Wejście i wyjście Debugowanie 3 Programowanie hybrydowe Język C i asembler Kompilacja, asemblacja i konsolidacja 4 Ćwiczenia laboratoryjne Zadania Literatura c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

3 Wprowadzenie Systemy liczbowe Systemy liczbowe Niezbędna znajomość systemów liczbowych dziesiętny c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

4 Wprowadzenie Systemy liczbowe Systemy liczbowe Niezbędna znajomość systemów liczbowych dziesiętny binarny c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

5 Wprowadzenie Systemy liczbowe Systemy liczbowe Niezbędna znajomość systemów liczbowych dziesiętny binarny hexadecymalny c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

6 Pamięć Wprowadzenie Organizacja komputera adresowanie bajtowe (adres 32-bitowy) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

7 Pamięć Wprowadzenie Organizacja komputera adresowanie bajtowe (adres 32-bitowy) jednostki pamięci: c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

8 Pamięć Wprowadzenie Organizacja komputera adresowanie bajtowe (adres 32-bitowy) jednostki pamięci: word (słowo 2-bajtowe) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

9 Pamięć Wprowadzenie Organizacja komputera adresowanie bajtowe (adres 32-bitowy) jednostki pamięci: word (słowo 2-bajtowe) double word (4 bajty) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

10 Pamięć Wprowadzenie Organizacja komputera adresowanie bajtowe (adres 32-bitowy) jednostki pamięci: word (słowo 2-bajtowe) double word (4 bajty) quad word (8 bajtów) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

11 Pamięć Wprowadzenie Organizacja komputera adresowanie bajtowe (adres 32-bitowy) jednostki pamięci: word (słowo 2-bajtowe) double word (4 bajty) quad word (8 bajtów) paragraph (16 bajtów) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

12 Pamięć Wprowadzenie Organizacja komputera adresowanie bajtowe (adres 32-bitowy) jednostki pamięci: word (słowo 2-bajtowe) double word (4 bajty) quad word (8 bajtów) paragraph (16 bajtów) dane w pamięci (reprezentowane numerycznie) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

13 Wprowadzenie Organizacja komputera Pamięć adresowanie bajtowe (adres 32-bitowy) jednostki pamięci: word (słowo 2-bajtowe) double word (4 bajty) quad word (8 bajtów) paragraph (16 bajtów) dane w pamięci (reprezentowane numerycznie) instrukcje w pamięci (zakodowane binarnie) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

14 Wprowadzenie Dane i instrukcje programu Organizacja komputera reprezentacje znaków (char) kodowanie: ASCII, Unicode c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

15 Wprowadzenie Dane i instrukcje programu Organizacja komputera reprezentacje znaków (char) kodowanie: ASCII, Unicode reprezentacje liczb typu: c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

16 Wprowadzenie Dane i instrukcje programu Organizacja komputera reprezentacje znaków (char) kodowanie: ASCII, Unicode reprezentacje liczb typu: int c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

17 Wprowadzenie Dane i instrukcje programu Organizacja komputera reprezentacje znaków (char) kodowanie: ASCII, Unicode reprezentacje liczb typu: int unsigned int c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

18 Wprowadzenie Dane i instrukcje programu Organizacja komputera reprezentacje znaków (char) kodowanie: ASCII, Unicode reprezentacje liczb typu: int unsigned int float c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

19 Wprowadzenie Dane i instrukcje programu Organizacja komputera reprezentacje znaków (char) kodowanie: ASCII, Unicode reprezentacje liczb typu: int unsigned int float double c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

20 Wprowadzenie Dane i instrukcje programu Organizacja komputera reprezentacje znaków (char) kodowanie: ASCII, Unicode reprezentacje liczb typu: int unsigned int float double operacje arytmetyczne w zbiorze danych określonego typu c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

21 Wprowadzenie Organizacja komputera Dane i instrukcje programu reprezentacje znaków (char) kodowanie: ASCII, Unicode reprezentacje liczb typu: int unsigned int float double operacje arytmetyczne w zbiorze danych określonego typu reprezentacja instrukcji maszynowych w języku natywnym procesora c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

22 Wprowadzenie Organizacja komputera Dane i instrukcje programu reprezentacje znaków (char) kodowanie: ASCII, Unicode reprezentacje liczb typu: int unsigned int float double operacje arytmetyczne w zbiorze danych określonego typu reprezentacja instrukcji maszynowych w języku natywnym procesora reprezentacja kodu źródłowego instrukcji w językach wyższego poziomu c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

23 CPU Wprowadzenie Organizacja komputera struktura: c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

24 CPU Wprowadzenie Organizacja komputera struktura: rejestry (PC, IR, robocze) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

25 CPU Wprowadzenie Organizacja komputera struktura: rejestry (PC, IR, robocze) ALU c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

26 CPU Wprowadzenie Organizacja komputera struktura: rejestry (PC, IR, robocze) ALU jednostka sterująca c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

27 Wprowadzenie Organizacja komputera CPU struktura: rejestry (PC, IR, robocze) ALU jednostka sterująca cykl pracy procesora: c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

28 Wprowadzenie Organizacja komputera CPU struktura: rejestry (PC, IR, robocze) ALU jednostka sterująca cykl pracy procesora: etapy pętli (IF, ID, OF, EX, WB, Int) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

29 Wprowadzenie Organizacja komputera CPU struktura: rejestry (PC, IR, robocze) ALU jednostka sterująca cykl pracy procesora: etapy pętli (IF, ID, OF, EX, WB, Int) szczególna rola PC c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

30 Wprowadzenie Organizacja komputera CPU struktura: rejestry (PC, IR, robocze) ALU jednostka sterująca cykl pracy procesora: etapy pętli (IF, ID, OF, EX, WB, Int) szczególna rola PC zdolność do dekodowania instrukcji c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

31 Wprowadzenie Organizacja komputera CPU struktura: rejestry (PC, IR, robocze) ALU jednostka sterująca cykl pracy procesora: etapy pętli (IF, ID, OF, EX, WB, Int) szczególna rola PC zdolność do dekodowania instrukcji zdolność do wykonywania operacji na operandach c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

32 Wprowadzenie Organizacja komputera CPU struktura: rejestry (PC, IR, robocze) ALU jednostka sterująca cykl pracy procesora: etapy pętli (IF, ID, OF, EX, WB, Int) szczególna rola PC zdolność do dekodowania instrukcji zdolność do wykonywania operacji na operandach reakcja na przerwanie (rola stosu) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

33 Procesory 16-bitowe Wprowadzenie Procesory rodziny 80x , 8086 c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

34 Procesory 16-bitowe Wprowadzenie Procesory rodziny 80x , 8086 rejestry 16-bitowe AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, SS, ES, IP, FLAGS c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

35 Procesory 16-bitowe Wprowadzenie Procesory rodziny 80x , 8086 rejestry 16-bitowe AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, SS, ES, IP, FLAGS tryb pracy: real mode c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

36 Procesory 16-bitowe Wprowadzenie Procesory rodziny 80x , 8086 rejestry 16-bitowe AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, SS, ES, IP, FLAGS tryb pracy: real mode dostęp do całej fizycznej pamięci (1M) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

37 Procesory 16-bitowe Wprowadzenie Procesory rodziny 80x , 8086 rejestry 16-bitowe AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, SS, ES, IP, FLAGS tryb pracy: real mode dostęp do całej fizycznej pamięci (1M) podział na segmenty 64k-bajtowe c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

38 Procesory 16-bitowe Wprowadzenie Procesory rodziny 80x , 8086 rejestry 16-bitowe AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, SS, ES, IP, FLAGS tryb pracy: real mode dostęp do całej fizycznej pamięci (1M) podział na segmenty 64k-bajtowe adres w postaci: selector:offset c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

39 Procesory 16-bitowe Wprowadzenie Procesory rodziny 80x , 8086 rejestry 16-bitowe AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, SS, ES, IP, FLAGS tryb pracy: real mode dostęp do całej fizycznej pamięci (1M) podział na segmenty 64k-bajtowe adres w postaci: selector:offset adres 20 bitowy: 2 4 selector + offset c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

40 Wprowadzenie Procesory rodziny 80x86 Procesory 16-bitowe 8088, 8086 rejestry 16-bitowe AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, SS, ES, IP, FLAGS tryb pracy: real mode dostęp do całej fizycznej pamięci (1M) podział na segmenty 64k-bajtowe adres w postaci: selector:offset adres 20 bitowy: 2 4 selector + offset c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

41 Wprowadzenie Procesory rodziny 80x86 Procesory 16-bitowe 8088, 8086 rejestry 16-bitowe AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, SS, ES, IP, FLAGS tryb pracy: real mode dostęp do całej fizycznej pamięci (1M) podział na segmenty 64k-bajtowe adres w postaci: selector:offset adres 20 bitowy: 2 4 selector + offset rejestry 16-bitowe AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, SS, ES, IP, FLAGS c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

42 Wprowadzenie Procesory rodziny 80x86 Procesory 16-bitowe 8088, 8086 rejestry 16-bitowe AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, SS, ES, IP, FLAGS tryb pracy: real mode dostęp do całej fizycznej pamięci (1M) podział na segmenty 64k-bajtowe adres w postaci: selector:offset adres 20 bitowy: 2 4 selector + offset rejestry 16-bitowe AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, SS, ES, IP, FLAGS tryb pracy: protected mode c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

43 Wprowadzenie Procesory rodziny 80x86 Procesory 16-bitowe 8088, 8086 rejestry 16-bitowe AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, SS, ES, IP, FLAGS tryb pracy: real mode dostęp do całej fizycznej pamięci (1M) podział na segmenty 64k-bajtowe adres w postaci: selector:offset adres 20 bitowy: 2 4 selector + offset rejestry 16-bitowe AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, SS, ES, IP, FLAGS tryb pracy: protected mode dostęp do obszarów 16M c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

44 Wprowadzenie Procesory rodziny 80x86 Procesory 16-bitowe 8088, 8086 rejestry 16-bitowe AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, SS, ES, IP, FLAGS tryb pracy: real mode dostęp do całej fizycznej pamięci (1M) podział na segmenty 64k-bajtowe adres w postaci: selector:offset adres 20 bitowy: 2 4 selector + offset rejestry 16-bitowe AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, SS, ES, IP, FLAGS tryb pracy: protected mode dostęp do obszarów 16M ochrona wzajemna programów c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

45 Wprowadzenie Procesory rodziny 80x86 Procesory 16-bitowe 8088, 8086 rejestry 16-bitowe AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, SS, ES, IP, FLAGS tryb pracy: real mode dostęp do całej fizycznej pamięci (1M) podział na segmenty 64k-bajtowe adres w postaci: selector:offset adres 20 bitowy: 2 4 selector + offset rejestry 16-bitowe AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, SS, ES, IP, FLAGS tryb pracy: protected mode dostęp do obszarów 16M ochrona wzajemna programów segmenty 64k c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

46 Procesory 32-bitowe Wprowadzenie Procesory rodziny 80x c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

47 Procesory 32-bitowe Wprowadzenie Procesory rodziny 80x rejestry 32-bitowe EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, EIP, FLAGS c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

48 Procesory 32-bitowe Wprowadzenie Procesory rodziny 80x rejestry 32-bitowe EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, EIP, FLAGS rejestry 16-bitowe FS,GS c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

49 Procesory 32-bitowe Wprowadzenie Procesory rodziny 80x rejestry 32-bitowe EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, EIP, FLAGS rejestry 16-bitowe FS,GS tryb pracy: 32 bit protected mode c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

50 Procesory 32-bitowe Wprowadzenie Procesory rodziny 80x rejestry 32-bitowe EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, EIP, FLAGS rejestry 16-bitowe FS,GS tryb pracy: 32 bit protected mode dostęp do 4G fizycznej pamięci c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

51 Procesory 32-bitowe Wprowadzenie Procesory rodziny 80x rejestry 32-bitowe EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, EIP, FLAGS rejestry 16-bitowe FS,GS tryb pracy: 32 bit protected mode dostęp do 4G fizycznej pamięci podział na segmenty do 4G c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

52 Procesory 32-bitowe Wprowadzenie Procesory rodziny 80x rejestry 32-bitowe EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, EIP, FLAGS rejestry 16-bitowe FS,GS tryb pracy: 32 bit protected mode dostęp do 4G fizycznej pamięci podział na segmenty do 4G adres 32-bitowy c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

53 Wprowadzenie Procesory rodziny 80x86 Procesory 32-bitowe rejestry 32-bitowe EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, EIP, FLAGS rejestry 16-bitowe FS,GS tryb pracy: 32 bit protected mode dostęp do 4G fizycznej pamięci podział na segmenty do 4G adres 32-bitowy 80486, Pentium, Pentium Pro, MMX c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

54 Wprowadzenie Procesory rodziny 80x86 Procesory 32-bitowe rejestry 32-bitowe EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, EIP, FLAGS rejestry 16-bitowe FS,GS tryb pracy: 32 bit protected mode dostęp do 4G fizycznej pamięci podział na segmenty do 4G adres 32-bitowy 80486, Pentium, Pentium Pro, MMX implementacja technologii przyspieszania pracy c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

55 Wprowadzenie Procesory rodziny 80x86 Procesory 32-bitowe rejestry 32-bitowe EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, EIP, FLAGS rejestry 16-bitowe FS,GS tryb pracy: 32 bit protected mode dostęp do 4G fizycznej pamięci podział na segmenty do 4G adres 32-bitowy 80486, Pentium, Pentium Pro, MMX implementacja technologii przyspieszania pracy wzrost złożoności strukturalnej c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

56 Asembler 1 Wprowadzenie Systemy liczbowe Organizacja komputera Procesory rodziny 80x86 2 Asembler Język maszynowy Język asemblera Dyrektywy dla asemblera Wejście i wyjście Debugowanie 3 Programowanie hybrydowe Język C i asembler Kompilacja, asemblacja i konsolidacja 4 Ćwiczenia laboratoryjne Zadania Literatura c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

57 Język maszynowy Asembler Język maszynowy instrukcje w pamięci zakodowane numerycznie c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

58 Język maszynowy Asembler Język maszynowy instrukcje w pamięci zakodowane numerycznie kod operacji c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

59 Język maszynowy Asembler Język maszynowy instrukcje w pamięci zakodowane numerycznie kod operacji zmienna długość rozkazów c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

60 Język maszynowy Asembler Język maszynowy instrukcje w pamięci zakodowane numerycznie kod operacji zmienna długość rozkazów w instrukcji może być operand lub jego adres c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

61 Język maszynowy Asembler Język maszynowy instrukcje w pamięci zakodowane numerycznie kod operacji zmienna długość rozkazów w instrukcji może być operand lub jego adres np. 0x03C3 (EAX := EAX + EBX) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

62 Język maszynowy Asembler Język maszynowy instrukcje w pamięci zakodowane numerycznie kod operacji zmienna długość rozkazów w instrukcji może być operand lub jego adres np. 0x03C3 (EAX := EAX + EBX) asembler koduje na podstawie kodu źródłowego c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

63 Asembler Język maszynowy Język maszynowy instrukcje w pamięci zakodowane numerycznie kod operacji zmienna długość rozkazów w instrukcji może być operand lub jego adres np. 0x03C3 (EAX := EAX + EBX) asembler koduje na podstawie kodu źródłowego instrukcje asemblera instrukcje maszynowe, np. c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

64 Asembler Język maszynowy Język maszynowy instrukcje w pamięci zakodowane numerycznie kod operacji zmienna długość rozkazów w instrukcji może być operand lub jego adres np. 0x03C3 (EAX := EAX + EBX) asembler koduje na podstawie kodu źródłowego instrukcje asemblera instrukcje maszynowe, np. add eax, ebx c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

65 Asembler Język maszynowy Język maszynowy instrukcje w pamięci zakodowane numerycznie kod operacji zmienna długość rozkazów w instrukcji może być operand lub jego adres np. 0x03C3 (EAX := EAX + EBX) asembler koduje na podstawie kodu źródłowego instrukcje asemblera instrukcje maszynowe, np. add eax, ebx asemblery: NASM, MASM, TASM,... c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

66 Instrukcje asemblera Asembler Język asemblera add eax, ebx c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

67 Asembler Język asemblera Instrukcje asemblera add eax, ebx lista instrukcji c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

68 Asembler Język asemblera Instrukcje asemblera add eax, ebx lista instrukcji typy operandów c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

69 Asembler Język asemblera Instrukcje asemblera add eax, ebx lista instrukcji typy operandów immediate (operand w instrukcji) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

70 Asembler Język asemblera Instrukcje asemblera add eax, ebx lista instrukcji typy operandów immediate (operand w instrukcji) register (rejestrowy) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

71 Asembler Język asemblera Instrukcje asemblera add eax, ebx lista instrukcji typy operandów immediate (operand w instrukcji) register (rejestrowy) memory (w rejestrze adres względem początku segmentu) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

72 Asembler Język asemblera Instrukcje asemblera add eax, ebx lista instrukcji typy operandów immediate (operand w instrukcji) register (rejestrowy) memory (w rejestrze adres względem początku segmentu) implied (domyślny) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

73 Asembler Język asemblera Instrukcje asemblera add eax, ebx lista instrukcji typy operandów immediate (operand w instrukcji) register (rejestrowy) memory (w rejestrze adres względem początku segmentu) implied (domyślny) np. mov dest, src c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

74 Asembler Język asemblera Instrukcje asemblera add eax, ebx lista instrukcji typy operandów immediate (operand w instrukcji) register (rejestrowy) memory (w rejestrze adres względem początku segmentu) implied (domyślny) np. mov dest, src operandy nie mogą być typu memory (obydwa jednocześnie) c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

75 Asembler Język asemblera Instrukcje asemblera add eax, ebx lista instrukcji typy operandów immediate (operand w instrukcji) register (rejestrowy) memory (w rejestrze adres względem początku segmentu) implied (domyślny) np. mov dest, src operandy nie mogą być typu memory (obydwa jednocześnie) rozmiary operandów muszą być identyczne c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

76 Asembler Język asemblera Fragment programu w asemblerze x86 mov eax, 3 mov bx, ax add eax, 4 ; eax = eax + 4 add al, ah ; al = al + ah sub bx, 10 ; bx = bx - 10 sub ebx, edi ; ebx = ebx - edi inc ecx ; ecx++ dec dl ; dl-- c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

77 Asembler Dyrektywy dla asemblera Dyrektywy dla asemblera Asembler nie tłumaczy dyrektyw lecz je wykonuje: symbol equ value c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

78 Asembler Dyrektywy dla asemblera Dyrektywy dla asemblera Asembler nie tłumaczy dyrektyw lecz je wykonuje: symbol equ value %define SIZE 100 c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

79 Asembler Dyrektywy dla asemblera Dyrektywy dla asemblera Asembler nie tłumaczy dyrektyw lecz je wykonuje: symbol equ value %define SIZE 100 mov eax, SIZE c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

80 Asembler Dyrektywy dla asemblera Dyrektywy dla asemblera Asembler nie tłumaczy dyrektyw lecz je wykonuje: symbol equ value %define SIZE 100 mov eax, SIZE definiowanie miejsca w segmentach danych c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

81 Asembler Dyrektywy dla asemblera Dyrektywy definiujące miejsce w segmentach danych Dane będą pamiętane pod kolejnymi adresami pamięci z inicjalizacją: db, dw, dd, dq, dt L1 db 0 L2 dw 1000 L3 db b L6 dd 1A92h L8 db A L9 db 0, 1, 2, 3 L10 db w, o, r, d, 0 ; łańcuch (string) L11 db word, 0 L12 times 100 db 0 c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

82 Asembler Dyrektywy dla asemblera Dyrektywy definiujące miejsce w segmentach danych Dane będą pamiętane pod kolejnymi adresami pamięci z inicjalizacją: db, dw, dd, dq, dt L1 db 0 L2 dw 1000 L3 db b L6 dd 1A92h L8 db A L9 db 0, 1, 2, 3 L10 db w, o, r, d, 0 ; łańcuch (string) L11 db word, 0 L12 times 100 db 0 bez inicjalizacji: resb, resw, resd, resq, rest L7 resb 1 L13 resw 100; rezerwacja 100 słów c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

83 Asembler Dyrektywy dla asemblera Dereferencja i adresowanie dostęp do danych w pamięci mov al, [L6]; pobierane tylko pierwsze słowo mov dword [L6], 1; specyfikacja formatu dla danej c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

84 Asembler Dyrektywy dla asemblera Dereferencja i adresowanie dostęp do danych w pamięci mov al, [L6]; pobierane tylko pierwsze słowo mov dword [L6], 1; specyfikacja formatu dla danej specyfikacje formatu: byte, word, dword, qword, tword c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

85 Asembler Dyrektywy dla asemblera Dereferencja i adresowanie dostęp do danych w pamięci mov al, [L6]; pobierane tylko pierwsze słowo mov dword [L6], 1; specyfikacja formatu dla danej specyfikacje formatu: byte, word, dword, qword, tword zastosowania: mov al, [L1]; bajt spod L1 -> AL mov eax, L1; adres bajtu -> EAX mov [L1], ah; AH -> pamięci pod adres L1 mov eax, [L6]; dword spod L6 -> EAX add eax, [L6] add [L6], eax c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

86 Operacje wejścia i wyjścia Asembler Wejście i wyjście brak bibliotek standardowych c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

87 Asembler Wejście i wyjście Operacje wejścia i wyjścia brak bibliotek standardowych bezpośredni dostęp do urządzeń jest operacją uprzywilejowaną wymaga trybu protected mode c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

88 Asembler Wejście i wyjście Operacje wejścia i wyjścia brak bibliotek standardowych bezpośredni dostęp do urządzeń jest operacją uprzywilejowaną wymaga trybu protected mode trzeba używać funkcji systemu operacyjnego c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

89 Asembler Wejście i wyjście Operacje wejścia i wyjścia brak bibliotek standardowych bezpośredni dostęp do urządzeń jest operacją uprzywilejowaną wymaga trybu protected mode trzeba używać funkcji systemu operacyjnego można wykorzystać funkcje języka C c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

90 Asembler Wejście i wyjście Operacje wejścia i wyjścia brak bibliotek standardowych bezpośredni dostęp do urządzeń jest operacją uprzywilejowaną wymaga trybu protected mode trzeba używać funkcji systemu operacyjnego można wykorzystać funkcje języka C można wykorzystać procedury z pliku: asm io.asm %include "asm_io.inc" ; makrodefinicje c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

91 Asembler Wejście i wyjście Funkcje we/wy wywoływane za pomocą instrukcji CALL print int EAX ekran monitora print char AL ekran (kod znaku) print string [EAX] ekran print nl nowa linia read int EAX liczba całkowita z klawiatury read char EAX kod znaku z klawiatury c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

92 Asembler Debugowanie Makra służące do debugowania dump regs zawartości rejestrów ekran monitora dump mem zawartość pamięci ekran dump stack stos ekran dump math rejestry koprocesora ekran c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

93 Programowanie hybrydowe 1 Wprowadzenie Systemy liczbowe Organizacja komputera Procesory rodziny 80x86 2 Asembler Język maszynowy Język asemblera Dyrektywy dla asemblera Wejście i wyjście Debugowanie 3 Programowanie hybrydowe Język C i asembler Kompilacja, asemblacja i konsolidacja 4 Ćwiczenia laboratoryjne Zadania Literatura c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

94 Programowanie hybrydowe Program główny w języku C Język C i asembler Plik: driver.c #include "cdecl.h" int PRE_CDECL asm_main( void ) POST_CDECL; int main() { int ret_status; ret_status = asm_main(); return ret_status; } tryb pracy: protected mode 32-bit. c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

95 Programowanie hybrydowe Program główny w języku C Język C i asembler Plik: driver.c #include "cdecl.h" int PRE_CDECL asm_main( void ) POST_CDECL; int main() { int ret_status; ret_status = asm_main(); return ret_status; } tryb pracy: protected mode 32-bit. kompilator C zainicjalizuje segmenty c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

96 Programowanie hybrydowe Program główny w języku C Język C i asembler Plik: driver.c #include "cdecl.h" int PRE_CDECL asm_main( void ) POST_CDECL; int main() { int ret_status; ret_status = asm_main(); return ret_status; } tryb pracy: protected mode 32-bit. kompilator C zainicjalizuje segmenty można korzystać z bibliotek C c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

97 Programowanie hybrydowe Program główny w języku C Język C i asembler Plik: driver.c #include "cdecl.h" int PRE_CDECL asm_main( void ) POST_CDECL; int main() { int ret_status; ret_status = asm_main(); return ret_status; } tryb pracy: protected mode 32-bit. kompilator C zainicjalizuje segmenty można korzystać z bibliotek C wywołuje funkcję asm main() napisaną w asemblerze c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

98 Programowanie hybrydowe Język C i asembler Struktura podprogramu w asemblerze (wołanego z C) Plik: first.asm %include "asm_io.inc" segment.data prompt1 db "Wprowadź liczbę: ", 0... segment.bss ; dane niezainicjalizowane input1 resd 1... segment.text global _asm_main _asm_main: enter 0,0 pusha... popa mov eax,0 leave ret c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

99 Programowanie hybrydowe Kompilacja, asemblacja i konsolidacja Kompilacja, asemblacja i konsolidacja Korzystając z NASM i DJGPP na platformie Windows: > gcc -c driver.c > nasm -f coff asm_io.asm > nasm -f coff first.asm -l first.lst > gcc -o first.exe driver.o first.o asm_io.o c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

100 Ćwiczenia laboratoryjne 1 Wprowadzenie Systemy liczbowe Organizacja komputera Procesory rodziny 80x86 2 Asembler Język maszynowy Język asemblera Dyrektywy dla asemblera Wejście i wyjście Debugowanie 3 Programowanie hybrydowe Język C i asembler Kompilacja, asemblacja i konsolidacja 4 Ćwiczenia laboratoryjne Zadania Literatura c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

101 Ćwiczenia laboratoryjne Zadania Zadania: I 1 Przeprowadzić kompilację, asemblacje i konsolidację przykładowego programu, a następnie przeanalizować listing i uruchomić program 2 Napisać podprogram w asemblerze definiujący zmienne z nadanymi wartościami początkowymi. Zbadać stan pamięci dla reprezentacji a) 16-bit, b) 32-bit i wyprowadzić na standardowe wyjście zawartość paragrafów pamięci z tymi zmiennymi. Zbadać sposób pamiętania danych wielobajtowych. Ustalić adresy zmiennych. int n = -3; int h = 0xAAFF; m = 0b ; char ch = A ; string adres = Kielce, ul. Nowa 1A ; c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

102 Ćwiczenia laboratoryjne Zadania Zadania: II 1 Wprowadzić dodatkowe dyrektywy definiujące zmienne bez nadawania wartości początkowych: int A[20]; byte B[100]; 2 Rozbudować program o instrukcje czytania ze standardowego wejścia nowych wartości dla zmiennych (wypisać też zawartość odpowiednich obszarów segmentu danych). c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

103 Ćwiczenia laboratoryjne Zadania Zadania: III Rozbudować program o niżej wskazane elementy (na standardowe wyjście wyprowadzać wartości modyfikowanych zmiennych oraz zawartość rejestrów i stosownych paragrafów pamięci) 1 instrukcje wprowadzania wartości do wskazanych rejestrów roboczych procesora 2 instrukcje kopiowania zmiennych do wskazanych rejestrów roboczych procesora 3 instrukcje nadawania ustalonych wartości zadeklarowanym zmiennym (wskazując typ zmiennej) 4 instrukcje zapamiętywania w zmiennych wartości zaproponowanych wyrażeń arytmetycznych (w wyrażeniach użyć operacji dodawania, odejmowania, inkrementacji, dekrementacji). c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

104 Literatura Ćwiczenia laboratoryjne Literatura A. S. Tanenbaum, Strukturalna organizacja systemów komputerowych, Helion, J. Biernat, Architektura komputerów, OWPW, R. Hyde, Profesjonalne programowanie, Helion, R. Hyde, Asembler. Sztuka programowania, Helion, G. Mazur, Programowanie niskopoziomowe, P.A. Carter, PC Assembly Language, D.W. Lewis, Między asemblerem a językiem C. Podstawy oprogramowania wbudowanego, RM, c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/ / 27

PROGRAMOWANIE NISKOPOZIOMOWE. Systemy liczbowe. Pamięć PN.01. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012

PROGRAMOWANIE NISKOPOZIOMOWE. Systemy liczbowe. Pamięć PN.01. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012 PROGRAMOWANIE NISKOPOZIOMOWE PN.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 2 4 c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/2012 1 / 27 c Dr

Bardziej szczegółowo

PROGRAMOWANIE NISKOPOZIOMOWE. Adresowanie pośrednie rejestrowe. Stos PN.04. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012

PROGRAMOWANIE NISKOPOZIOMOWE. Adresowanie pośrednie rejestrowe. Stos PN.04. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012 PROGRAMOWANIE NISKOPOZIOMOWE PN.04 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 2 3 Ćwiczenia laboratoryjne c Dr inż. Ignacy Pardyka (Inf.UJK) PN.04 Rok akad.

Bardziej szczegółowo

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/2012 2 / 24

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/2012 2 / 24 Wymagania proceduralnych języków wysokiego poziomu ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH modele programowe procesorów ASK MP.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad.

Bardziej szczegółowo

PROGRAMOWANIE NISKOPOZIOMOWE. Struktury w C. Przykład struktury PN.06. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012

PROGRAMOWANIE NISKOPOZIOMOWE. Struktury w C. Przykład struktury PN.06. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012 PROGRAMOWANIE NISKOPOZIOMOWE PN.06 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 2 Ćwiczenia laboratoryjne c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad.

Bardziej szczegółowo

2 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/ / 24

2 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/ / 24 ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH modele programowe komputerów ASK MP.02 c Dr inż. Ignacy Pardyka 1 UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach 2 Literatura Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka

Bardziej szczegółowo

Programowanie Niskopoziomowe

Programowanie Niskopoziomowe Programowanie Niskopoziomowe Wykład 8: Procedury Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Linkowanie z bibliotekami zewnętrznymi Operacje na stosie

Bardziej szczegółowo

PROGRAMOWANIE NISKOPOZIOMOWE

PROGRAMOWANIE NISKOPOZIOMOWE PROGRAMOWANIE NISKOPOZIOMOWE PN.06 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) PN.06 Rok akad. 2011/2012 1 / 22 1 Asembler

Bardziej szczegółowo

end start ; ustawienie punktu startu programu i koniec instrukcji w assemblerze.

end start ; ustawienie punktu startu programu i koniec instrukcji w assemblerze. Struktura programu typu program.com ; program według modelu tiny name "mycode" ; nazwa pliku wyjściowego (maksymalnie 8 znaków) org 100h ; początek programu od adresu IP = 100h ; kod programu ret ; koniec

Bardziej szczegółowo

Ćwiczenie nr 6. Programowanie mieszane

Ćwiczenie nr 6. Programowanie mieszane Ćwiczenie nr 6 Programowanie mieszane 6.1 Wstęp Współczesne języki programowania posiadają bardzo rozbudowane elementy językowe, co pozwala w większości przypadków na zdefiniowanie całego kodu programu

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 6 Jan Kazimirski 1 Architektura x86 2 Środowisko wykonawcze x86 (32-bit) Przestrzeń adresowa Liniowa przestrzeń adresowa do 4 GB Fizyczna przestrzeń adresowa do 64 GB Rejestry

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 5 Jednostka Centralna Zadania realizowane przez procesor Pobieranie rozkazów Interpretowanie rozkazów Pobieranie danych Przetwarzanie danych Zapisanie danych Główne zespoły

Bardziej szczegółowo

Programowanie niskopoziomowe

Programowanie niskopoziomowe Programowanie niskopoziomowe Programowanie niskopoziomowe w systemie operacyjnym oraz poza nim Tworzenie programu zawierającego procedury asemblerowe 1 Programowanie niskopoziomowe w systemie operacyjnym

Bardziej szczegółowo

Ćwiczenie 3. Konwersja liczb binarnych

Ćwiczenie 3. Konwersja liczb binarnych 1 Laboratorium Architektury Komputerów Ćwiczenie 3 Konwersja liczb binarnych Komputery wykonują operacje przetwarzania danych na wartościach binarnych, podczas gdy współczesna cywilizacja posługuje się

Bardziej szczegółowo

PODSTAWOWE ELEMENTY ASEMBLERA TRYBY ADRESOWANIA. OPERATORY ASEMBLERA

PODSTAWOWE ELEMENTY ASEMBLERA TRYBY ADRESOWANIA. OPERATORY ASEMBLERA PODSTAWOWE ELEMENTY ASEMBLERA TRYBY ADRESOWANIA. OPERATORY ASEMBLERA PODSTAWOWE ELEMENTY ASEMBLERA Składnia języka Postać wiersza programu Dyrektywy i pseudoinstrukcje Deklaracja zmiennych Zmienne łańcuchowe

Bardziej szczegółowo

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit.

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit. Architektura 8086 8086 posiada 4 rejestry ogólnego użytku AX, BX, CX, DX, 2 rejestry indeksowe SI, DI, 3 rejestry wskaźnikowe SP, BP, IP, 4 rejestry segmentowe CS, DS, SS i ES oraz rejestr flag FLAG AH

Bardziej szczegółowo

Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów

Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów Operacje na stosie Stos jest obszarem pamięci o dostępie LIFO (Last Input First Output). Adresowany jest niejawnie przez rejestr segmentowy SS oraz wskaźnik wierzchołka stosu SP. Używany jest do przechowywania

Bardziej szczegółowo

Programowanie niskopoziomowe

Programowanie niskopoziomowe Programowanie niskopoziomowe ASSEMBLER Teodora Dimitrova-Grekow http://aragorn.pb.bialystok.pl/~teodora/ Program ogólny Rok akademicki 2011/12 Systemy liczbowe, budowa komputera, procesory X86, organizacja

Bardziej szczegółowo

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4 Przedmiot : Programowanie w języku wewnętrznym Ćwiczenie nr 4 str. 1. 1. Użycie Asemblera. Polecenie JMP. Polecenie nakazuje procesorowi wykonywanie kodu programu od nowego innego miejsca. Miejsce to jest

Bardziej szczegółowo

Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna

Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna Architektura komputerów. Literatura: 1. Piotr Metzger, Anatomia PC, wyd. IX, Helion 2004 2. Scott Mueller, Rozbudowa i naprawa PC, wyd. XVIII, Helion 2009 3. Tomasz Kowalski, Urządzenia techniki komputerowej,

Bardziej szczegółowo

PROGRAMOWANIE. Język Asembler

PROGRAMOWANIE. Język Asembler PROGRAMOWANIE Język Asembler Rozdział 1 Wprowadzenie 1.1 Systemy Liczbowe Pamięć komputera składa się z liczb. Pamięć komputera nie przechowuje tych liczb dziesiętnie (podstawa 10). Ponieważ to wielce

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 3 Jan Kazimirski 1 Podstawowe elementy komputera. Procesor (CPU) 2 Plan wykładu Podstawowe komponenty komputera Procesor CPU Cykl rozkazowy Typy instrukcji Stos Tryby adresowania

Bardziej szczegółowo

J. Duntemann Zrozumieć Assembler Leo J. Scanlon Assembler 8086/8088/80286 S. Kruk Programowanie w Języku Assembler

J. Duntemann Zrozumieć Assembler Leo J. Scanlon Assembler 8086/8088/80286 S. Kruk Programowanie w Języku Assembler ASSEMBLER J. Duntemann Zrozumieć Assembler Leo J. Scanlon Assembler 8086/8088/80286 S. Kruk Programowanie w Języku Assembler Geneza (8086, 8088). Rejestry Adresowanie pamięci Stos Instrukcje Przerwania

Bardziej szczegółowo

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika Rejestry procesora Procesor podczas wykonywania instrukcji posługuje się w dużej części pamięcią RAM. Pobiera z niej kolejne instrukcje do wykonania i dane, jeżeli instrukcja operuje na jakiś zmiennych.

Bardziej szczegółowo

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych Ćwiczenie nr 3 Wyświetlanie i wczytywanie danych 3.1 Wstęp Współczesne komputery przetwarzają dane zakodowane za pomocą ciągów zerojedynkowych. W szczególności przetwarzane liczby kodowane są w systemie

Bardziej szczegółowo

Programowanie Niskopoziomowe

Programowanie Niskopoziomowe Programowanie Niskopoziomowe Wykład 4: Architektura i zarządzanie pamięcią IA-32 Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Tryby pracy Rejestry

Bardziej szczegółowo

Adam Kotynia, Łukasz Kowalczyk

Adam Kotynia, Łukasz Kowalczyk Adam Kotynia, Łukasz Kowalczyk Dynamiczna alokacja pamięci Alokacja pamięci oraz dezalokacja pamięci jest to odpowiednio przydział i zwolnienie ciągłego obszaru pamięci. Po uruchomieniu, proces (program)

Bardziej szczegółowo

Architektura komputerów. Asembler procesorów rodziny x86

Architektura komputerów. Asembler procesorów rodziny x86 Architektura komputerów Asembler procesorów rodziny x86 Architektura komputerów Asembler procesorów rodziny x86 Rozkazy mikroprocesora Rozkazy mikroprocesora 8086 można podzielić na siedem funkcjonalnych

Bardziej szczegółowo

Procesory rodziny x86. Dariusz Chaberski

Procesory rodziny x86. Dariusz Chaberski Procesory rodziny x86 Dariusz Chaberski 8086 produkowany od 1978 magistrala adresowa - 20 bitów (1 MB) magistrala danych - 16 bitów wielkość instrukcji - od 1 do 6 bajtów częstotliwośc pracy od 5 MHz (IBM

Bardziej szczegółowo

002 Opcode Strony projektu:

002 Opcode Strony projektu: ReverseCraft assem bler by gynvael.coldwind//vx Opcode Strony projektu: http://re.coldwind.pl/ http://www.uw-team.org/ Zasoby! czyli co możemy użyć... Instrukcje procesora Pamięć Wirtualna Rejestry CPU

Bardziej szczegółowo

Wprowadzenie do Architektury komputerów. Asembler procesorów rodziny x86

Wprowadzenie do Architektury komputerów. Asembler procesorów rodziny x86 Wprowadzenie do Architektury komputerów Asembler procesorów rodziny x86 Budowa procesora rodziny x86 Rejestry procesora 8086 ogólnego przeznaczenia Dla procesorów 32-bitowych: EAX, EBX, ECX, EDX Dla procesorów

Bardziej szczegółowo

Sprzęt i architektura komputerów

Sprzęt i architektura komputerów Radosław Maciaszczyk Mirosław Łazoryszczak Sprzęt i architektura komputerów Laboratorium Temat: Mikroprocesory i elementy asemblera Katedra Architektury Komputerów i Telekomunikacji 1. MIKROPROCESORY I

Bardziej szczegółowo

Sprzęt i architektura komputerów

Sprzęt i architektura komputerów Radosław Maciaszczyk Mirosław Łazoryszczak Sprzęt i architektura komputerów Laboratorium Temat: Mikroprocesory i elementy asemblera Katedra Architektury Komputerów i Telekomunikacji 1. MIKROPROCESORY I

Bardziej szczegółowo

Programowanie Niskopoziomowe

Programowanie Niskopoziomowe Programowanie Niskopoziomowe Wykład 11: Procedury zaawansowane Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Ramki stosu Rekurencja INVOKE, ADDR, PROC,

Bardziej szczegółowo

Organizacja typowego mikroprocesora

Organizacja typowego mikroprocesora Organizacja typowego mikroprocesora 1 Architektura procesora 8086 2 Architektura współczesnego procesora 3 Schemat blokowy procesora AVR Mega o architekturze harwardzkiej Wszystkie mikroprocesory zawierają

Bardziej szczegółowo

organizacja procesora 8086

organizacja procesora 8086 Systemy komputerowe Procesor 8086 - tendencji w organizacji procesora organizacja procesora 8086 " # $ " % strali " & ' ' ' ( )" % *"towego + ", -" danych. Magistrala adresowa jest 20.bitowa, co pozwala

Bardziej szczegółowo

Metody Realizacji Języków Programowania

Metody Realizacji Języków Programowania Metody Realizacji Języków Programowania Bardzo krótki kurs asemblera x86 Marcin Benke MIM UW 10 stycznia 2011 Marcin Benke (MIM UW) Metody Realizacji Języków Programowania 10 stycznia 2011 1 / 22 Uwagi

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania

Bardziej szczegółowo

Jak wiemy, wszystkich danych nie zmieścimy w pamięci. A nawet jeśli zmieścimy, to pozostaną tam tylko do najbliższego wyłączenia zasilania.

Jak wiemy, wszystkich danych nie zmieścimy w pamięci. A nawet jeśli zmieścimy, to pozostaną tam tylko do najbliższego wyłączenia zasilania. Jak wiemy, wszystkich danych nie zmieścimy w pamięci. A nawet jeśli zmieścimy, to pozostaną tam tylko do najbliższego wyłączenia zasilania. Dlatego trzeba je zapisywać do pliku, a potem umieć je z tego

Bardziej szczegółowo

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH ZATWIERDZAM Dziekan Wydziału Nauk Społecznych i Technik Komputerowych S Y L A B U S 1 Tytuł (stopień) naukowy oraz imię i nazwisko

Bardziej szczegółowo

4 Standardy reprezentacji znaków. 5 Przechowywanie danych w pamięci. 6 Literatura

4 Standardy reprezentacji znaków. 5 Przechowywanie danych w pamięci. 6 Literatura ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH reprezentacja danych ASK.RD.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 2 Standardy reprezentacji wartości całkowitoliczbowych

Bardziej szczegółowo

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH reprezentacja danych ASK.RD.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok

Bardziej szczegółowo

Programowanie hybrydowe C (C++) - assembler. MS Visual Studio Inline Assembler

Programowanie hybrydowe C (C++) - assembler. MS Visual Studio Inline Assembler Programowanie hybrydowe C (C++) - assembler MS Visual Studio Inline Assembler Wprowadzenie Możliwość wprowadzania kodu asemblerowego bezpośrednio w kodzie źródłowym w języku C lub C++ Nie wymagany MASM

Bardziej szczegółowo

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl Programowanie niskopoziomowe dr inż. Paweł Pełczyński ppelczynski@swspiz.pl 1 Literatura Randall Hyde: Asembler. Sztuka programowania, Helion, 2004. Eugeniusz Wróbel: Praktyczny kurs asemblera, Helion,

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Mikrokontroler ATmega32. Język symboliczny

Mikrokontroler ATmega32. Język symboliczny Mikrokontroler ATmega32 Język symboliczny 1 Język symboliczny (asembler) jest językiem niskiego poziomu - pozwala pisać programy złożone z instrukcji procesora. Kody instrukcji są reprezentowane nazwami

Bardziej szczegółowo

Jerzy Nawrocki, Wprowadzenie do informatyki

Jerzy Nawrocki, Wprowadzenie do informatyki Magistrala systemowa Jerzy Nawrocki, Jerzy Nawrocki Wydział Informatyki Politechnika Poznańska jerzy.nawrocki@put.poznan.pl Cel wykładu Asembler i koncepcja von Neumanna Wprowadzenie do programowania na

Bardziej szczegółowo

1. Asembler i wstawki asemblerowe w C

1. Asembler i wstawki asemblerowe w C Opublikowano w: WEREWKA J..: Programowanie sprzętu komputerowego dla automatyków. Skrypt AGH Nr 1514, Kraków 1998 1. Asembler i wstawki asemblerowe w C Asembler jest językiem programowania na poziomie

Bardziej szczegółowo

Architektura systemów komputerowych. Lista instrukcji procesora

Architektura systemów komputerowych. Lista instrukcji procesora Architektura systemów komputerowych Plan wykładu 1. Rozkaz, lista rozkazów procesora. 2. Mikroprogramowanie. 3. Język maszynowy. 4. Projekt P: koncepcja, model rozkazu. Cele Architektura procesorów: von

Bardziej szczegółowo

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Komputer jest urządzeniem, którego działanie opiera się na wykonywaniu przez procesor instrukcji pobieranych z pamięci operacyjnej

Bardziej szczegółowo

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C Mikrosterownik Inne nazwy: Microcontroler (z języka angielskiego) Ta nazwa jest powszechnie używana w Polsce. Mikrokomputer jednoukładowy

Bardziej szczegółowo

A Machine Architecture that is Really Intuitive and Easy. Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym

A Machine Architecture that is Really Intuitive and Easy.  Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym MARIE A Machine Architecture that is Really Intuitive and Easy http://computerscience.jbpub.com/ecoa Słowo 16b Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym od 8000h (- 32,768 = -2^15) do 7FFFh

Bardziej szczegółowo

Programowanie hybrydowe łączenie C/C++ z asemblerem

Programowanie hybrydowe łączenie C/C++ z asemblerem Programowanie hybrydowe łączenie C/C++ z asemblerem Konwencje Wywoływanie procedur asemblerowych w kodzie języka wysokiego poziomu wymaga: Ustalenia konwencji nazewniczej używanej w języku programowania

Bardziej szczegółowo

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/2012 2 / 22

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/2012 2 / 22 ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH struktury procesorów ASK SP.06 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 Maszyny wirtualne 2 3 Literatura c Dr inż. Ignacy

Bardziej szczegółowo

Architektura typu Single-Cycle

Architektura typu Single-Cycle Architektura typu Single-Cycle...czyli budujemy pierwszą maszynę parową Przepływ danych W układach sekwencyjnych przepływ danych synchronizowany jest sygnałem zegara Elementy procesora - założenia Pamięć

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 10 Jan Kazimirski 1 Programowanie w assemblerze x86 c.d. 2 Funkcje systemowe System operacyjny UNIX udostępnia programom usługi za pomocą funkcji systemowych (syscall). Liczba

Bardziej szczegółowo

Zmienne, stałe i operatory

Zmienne, stałe i operatory Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe

Bardziej szczegółowo

Architektura Systemów Komputerowych

Architektura Systemów Komputerowych Jarosław Kuchta Architektura Systemów Komputerowych ćwiczenie 3 Arytmetyka całkowita instrukcja laboratoryjna Wprowadzenie Celem ćwiczenia jest zapoznanie się z budową i sposobem działania jednostki arytmetyczno-logicznej

Bardziej szczegółowo

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne Spis treści 5 Spis treœci Co to jest mikrokontroler? Wprowadzenie... 11 Budowa systemu komputerowego... 12 Wejścia systemu komputerowego... 12 Wyjścia systemu komputerowego... 13 Jednostka centralna (CPU)...

Bardziej szczegółowo

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 2 / 27

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 2 / 27 ARCHITEKTURA SYSTEÓW KOPUTEROWYCH strktry procesorów ASK SP. c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2/22 Założenia konstrkcyjne Układ pobierania instrkcji Układ przygotowania

Bardziej szczegółowo

Programowanie komputera

Programowanie komputera Programowanie komputera Program jest algorytmem przetwarzania danych zapisanym w sposób zrozumiały dla komputera. Procesor rozumie wyłącznie rozkazy zapisane w kodzie maszynowym (ciąg 0 i 1). Ponieważ

Bardziej szczegółowo

Cel wykładu. Przedstawienie działania exploitów u podstaw na przykładzie stack overflow.

Cel wykładu. Przedstawienie działania exploitów u podstaw na przykładzie stack overflow. Exploity w praktyce Plan prelekcji Powtórka assembly x86 32. Pamięć uruchamianych programów. Prosty stack overflow exploit. Tworzenie shellcode i jego uruchomienie. Wstrzykiwanie shellcode wykorzystując

Bardziej szczegółowo

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Temat 1: Podstawowe pojęcia: program, kompilacja, kod Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,

Bardziej szczegółowo

Praktycznie całe zamieszanie dotyczące konwencji wywoływania funkcji kręci się w okół wskaźnika stosu.

Praktycznie całe zamieszanie dotyczące konwencji wywoływania funkcji kręci się w okół wskaźnika stosu. Krótki artykuł opisujący trzy podstawowe konwencje wywoływania funkcji C++ (a jest ich więcej). Konwencje wywoływania funkcji nie są tematem, na który można się szeroko rozpisać, jednak należy znać i odróżniać

Bardziej szczegółowo

Programowanie Niskopoziomowe

Programowanie Niskopoziomowe Programowanie Niskopoziomowe Wykład 1: Wstęp Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Informacje o przedmiocie Języki asemblerowe i ich zastosowania

Bardziej szczegółowo

Asembler. Æwiczenia praktyczne

Asembler. Æwiczenia praktyczne IDZ DO PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Asembler. Æwiczenia praktyczne Autor: Eugeniusz Wróbel ISBN: 83-7197-836-7 Format: B5, stron: 166 TWÓJ KOSZYK

Bardziej szczegółowo

Lista instrukcji mikroprocesora 8086. Programowanie w assemblerze

Lista instrukcji mikroprocesora 8086. Programowanie w assemblerze Lista instrukcji mikroprocesora 8086 Programowanie w assemblerze Lista instrukcji mikroprocesora 8086 Lista instrukcji mikroprocesora 8086 Lista instrukcji mikroprocesora 8086 Lista instrukcji mikroprocesora

Bardziej szczegółowo

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów Marcin Stępniak Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów 1. Informacje Poniższe laboratoria zawierają podsumowanie najważniejszych informacji na temat

Bardziej szczegółowo

Podstawy Programowania. Wykład 1

Podstawy Programowania. Wykład 1 Podstawy Programowania Wykład 1 Jak się uczyć programowania? Wykład i laboratorium Literatura Jerzy Grębosz Symfonia C++ Bjarne Stroustrup Język C++ Bruce Eckel Thinking in C++ Tony L. Hansen C++ zadania

Bardziej szczegółowo

Programowanie w asemblerze Wprowadzenie

Programowanie w asemblerze Wprowadzenie Programowanie w asemblerze Wprowadzenie 17 stycznia 2017 Motto: R7 is used by the processor as its program counter (PC). It is recommended that R7 not be used as a stack pointer. Źródło: PDP-11 04/34/45/55

Bardziej szczegółowo

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW Projektowanie urządzeń cyfrowych przy użyciu układów TTL polegało na opracowaniu algorytmu i odpowiednim doborze i zestawieniu układów realizujących różnorodne funkcje

Bardziej szczegółowo

petla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla

petla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla Asembler A51 1. Symbole Nazwy symboliczne Symbol jest nazwą, która może być użyta do reprezentowania wartości stałej numerycznej, wyrażenia, ciągu znaków (tekstu), adresu lub nazwy rejestru. Nazwy symboliczne

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 8 Jan Kazimirski 1 Assembler x86 2 Podstawowe instrukcje x86 Instrukcje transferu danych Arytmetyka binarna i dziesiętna Instrukcje logiczne Instrukcje sterujące wykonaniem

Bardziej szczegółowo

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936) Wstęp doinformatyki Architektura co to jest? Architektura Model komputera Dr inż Ignacy Pardyka Slajd 1 Slajd 2 Od układów logicznych do CPU Automat skończony Slajd 3 Slajd 4 Ile jest automatów skończonych?

Bardziej szczegółowo

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86 Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86 Spis treści Wprowadzenie... 11 1. Architektura procesorów rodziny x86... 17 1.1. Model procesorów

Bardziej szczegółowo

Struktura i działanie jednostki centralnej

Struktura i działanie jednostki centralnej Struktura i działanie jednostki centralnej ALU Jednostka sterująca Rejestry Zadania procesora: Pobieranie rozkazów; Interpretowanie rozkazów; Pobieranie danych Przetwarzanie danych Zapisywanie danych magistrala

Bardziej szczegółowo

Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu Informatyka, Ćwiczenie 1 1. Uruchomienie Microsoft Visual C++ I. ZałoŜenie nowego projektu Wybieramy menu: File>New>Files jak na rys. poniŝej Zapisujemy projekt pod nazwą LAN, w katalogu d:\temp\lab typu

Bardziej szczegółowo

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Spis treści 1 Wprowadzenie 1 2 Dane i kod 2 3 Wyrażenia 2 3.1 Operacje arytmetyczne i logiczne.................. 2 3.2 Podstawowe

Bardziej szczegółowo

Ćwiczenie 1. Architektura von Neumanna model programowy komputera

Ćwiczenie 1. Architektura von Neumanna model programowy komputera Laboratorium Architektury Komputerów i Systemów Operacyjnych Ćwiczenie 1 Architektura von Neumanna model programowy komputera Model komputera na poziomie programowania Komputer jest skomplikowanym urządzeniem

Bardziej szczegółowo

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij. Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice

Bardziej szczegółowo

INSTRUKCJE Instrukcje przeniesienia: Instrukcje konwersji: Arytmetyczne instrukcje:

INSTRUKCJE Instrukcje przeniesienia: Instrukcje konwersji: Arytmetyczne instrukcje: INSTRUKCJE Instrukcje przeniesienia: mov, lea, les, push, pop, pushf, popf Instrukcje konwersji: cbw, cwd, xlat Arytmetyczne instrukcje: add, inc sub, dec, cmp, neg, mul, imul, div, idiv Logiczne instrukcje:

Bardziej szczegółowo

2. Architektura mikrokontrolerów PIC16F8x... 13

2. Architektura mikrokontrolerów PIC16F8x... 13 Spis treści 3 Spis treœci 1. Informacje wstępne... 9 2. Architektura mikrokontrolerów PIC16F8x... 13 2.1. Budowa wewnętrzna mikrokontrolerów PIC16F8x... 14 2.2. Napięcie zasilania... 17 2.3. Generator

Bardziej szczegółowo

Programowanie strukturalne język C - wprowadzenie

Programowanie strukturalne język C - wprowadzenie Programowanie strukturalne język C - wprowadzenie Dr inż. Sławomir Samolej D102 C, tel: 865 1766, email: ssamolej@prz-rzeszow.pl WWW: ssamolej.prz-rzeszow.pl Cechy programowania strukturalnego Możliwość

Bardziej szczegółowo

Assembler w C++ Syntaksa AT&T oraz Intela

Assembler w C++ Syntaksa AT&T oraz Intela Ponownie dodaję artykuł zahaczający o temat assemblera. Na własnej skórze doświadczyłem dzisiaj problemów ze wstawką assemblerową w kodzie C++, dlatego postanowiłem stworzyć artykuł, w którym zbiorę w

Bardziej szczegółowo

Programowanie niskopoziomowe

Programowanie niskopoziomowe Politechnika Rzeszowska Wydział Elektrotechniki i Informatyki Katedra Informatyki i Automatyki Laboratorium Programowanie niskopoziomowe Rzeszów 2004 Ćwiczenie 1. Zmienne, adresy, wskaźniki Celem ćwiczenia

Bardziej szczegółowo

Załącznik do ćwiczenia w środowisku MASM32 Przesyłanie danych i zarządzanie danymi

Załącznik do ćwiczenia w środowisku MASM32 Przesyłanie danych i zarządzanie danymi 4. Kdwanie rzkazów Załącznik d ćwiczenia w śrdwisku MASM32 Przesyłanie danych i zarządzanie danymi Prcesr 32-bitwy Intel ma skmplikwane reguły kdwania rzkazów, pnieważ prcesr mże perwać 8-, 16- lub 32-bitwymi

Bardziej szczegółowo

Ćwiczenie nr 4. Zasady kodowania podprogramów

Ćwiczenie nr 4. Zasady kodowania podprogramów Ćwiczenie nr 4 Zasady kodowania podprogramów 4.1 Wstęp W praktyce programowania spotykamy się często z sytuacjami, gdy identyczne czynności wykonywane są w wielu miejscach programu. W takich przypadkach

Bardziej szczegółowo

Lista Rozkazów: Język komputera

Lista Rozkazów: Język komputera Lista Rozkazów: Język komputera Większość slajdów do tego wykładu to tłumaczenia i przeróbki oficjalnych sladjów do podręcznika Pattersona i Hennessy ego Lista rozkazów Zestaw rozkazów wykonywanych przez

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

KARTA PRZEDMIOTU. Programowanie niskopoziomowe, C1

KARTA PRZEDMIOTU. Programowanie niskopoziomowe, C1 KARTA PRZEDMIOTU 1. Informacje ogólne Nazwa przedmiotu i kod (wg planu studiów): Nazwa przedmiotu (j. ang.): Kierunek studiów: Specjalność/specjalizacja: Poziom kształcenia: Profil kształcenia: Forma studiów:

Bardziej szczegółowo

Języki i metodyka programowania. Wprowadzenie do języka C

Języki i metodyka programowania. Wprowadzenie do języka C Literatura: Brian W. Kernighan, Dennis M. Ritchie Język Ansi C, Wydawnictwa Naukowo - Techniczne, 2007 http://cm.bell-labs.com/cm/cs/cbook/index.html Scott E. Gimpel, Clovis L. Tondo Język Ansi C. Ćwiczenia

Bardziej szczegółowo

Materiały do wykładu. 7.Architekturax86. Marcin Peczarski. Instytut Informatyki Uniwersytet Warszawski

Materiały do wykładu. 7.Architekturax86. Marcin Peczarski. Instytut Informatyki Uniwersytet Warszawski Materiały do wykładu 7.Architekturax86 Marcin Peczarski Instytut Informatyki Uniwersytet Warszawski 25maja2009 Narodziny 7.1 1978 Intel8086 architektura 16-bitowa 5 MHz, obudowa DIP40, 29000 tranzystorów

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

KARTA PRZEDMIOTU. Programowanie niskopoziomowe, C2. Low Level Programming Informatyka

KARTA PRZEDMIOTU. Programowanie niskopoziomowe, C2. Low Level Programming Informatyka KARTA PRZEDMIOTU. Informacje ogólne Nazwa przedmiotu i kod (wg planu studiów): Nazwa przedmiotu (j. ang.): Kierunek studiów: Specjalność/specjalizacja: Poziom kształcenia: Profil kształcenia: Forma studiów:

Bardziej szczegółowo

Wstęp. do języka C na procesor 8051. (kompilator RC51)

Wstęp. do języka C na procesor 8051. (kompilator RC51) Wstęp do języka C na procesor 8051 (kompilator RC51) Kompilator języka C Kompilator RC51 jest kompilatorem języka C w standardzie ANSI Ograniczeń w stosunku do ANSI jest niewiele głównie rzadkie operacje

Bardziej szczegółowo

Programowanie Niskopoziomowe

Programowanie Niskopoziomowe Programowanie Niskopoziomowe Wykład 10: Arytmetyka całkowitoliczbowa Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wprowadzenie Instrukcje przesunięcia bitowego

Bardziej szczegółowo

Szkolenia specjalistyczne

Szkolenia specjalistyczne Szkolenia specjalistyczne AGENDA Programowanie mikrokontrolerów w języku C na przykładzie STM32F103ZE z rdzeniem Cortex-M3 GRYFTEC Embedded Systems ul. Niedziałkowskiego 24 71-410 Szczecin info@gryftec.com

Bardziej szczegółowo

1. Pobrać plik masm.zip (Macro Assembler 6.15 & Segmented Executable Linker 5.60) (http://www.cs.put.poznan.pl/mantczak/teaching/itc/masm.zip).

1. Pobrać plik masm.zip (Macro Assembler 6.15 & Segmented Executable Linker 5.60) (http://www.cs.put.poznan.pl/mantczak/teaching/itc/masm.zip). J.Nawrocki, M. Antczak, G. Palik, A. Widelska Plik źródłowy: 07cw4-asm.doc; Data: 2007-09-26 6:00 Ćwiczenie nr 4 Język asemblera Środowisko uruchomieniowe 1. Pobrać plik masm.zip (Macro Assembler 6.15

Bardziej szczegółowo