Programowanie niskopoziomowe



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

organizacja procesora 8086

Procesor Intel 8086 model programisty. Arkadiusz Chrobot

Procesor Intel 8086 model programisty. Arkadiusz Chrobot

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

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

Sprzęt i architektura komputerów

Sprzęt i architektura komputerów

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

KARTA PRZEDMIOTU. Programowanie niskopoziomowe, C1

Architektura Systemów Komputerowych, Wydział Informatyki, ZUT

Podstawy techniki cyfrowej Mikroprocesory. Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

Architektura komputerów

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

Architektura komputerów. Asembler procesorów rodziny x86

Procesory rodziny x86. Dariusz Chaberski

Organizacja typowego mikroprocesora

PRZEWODNIK PO PRZEDMIOCIE

elektrotechnika I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES)

, " _/'--- " ~ n\l f.4e ' v. ,,v P-J.. ~ v v lu J. ... j -:;.",II. ,""", ",,> I->~" re. dr. f It41I r> ~ '<Q., M-c 'le...,,e. b,n '" u /.

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Architektura Systemów Komputerowych

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

PODSTAWOWE ELEMENTY ASEMBLERA TRYBY ADRESOWANIA. OPERATORY ASEMBLERA

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

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

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

Mikroprocesor Intel 8088 (8086)

Programowanie niskopoziomowe

PROGRAMOWANIE NISKOPOZIOMOWE

Jerzy Nawrocki, Wprowadzenie do informatyki

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

Technika mikroprocesorowa I Wykład 2

BUDOWA I DZIAŁANIE MIKROPROCESORA

Adam Kotynia, Łukasz Kowalczyk

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

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.

Lista instrukcji mikroprocesora Programowanie w assemblerze

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

Struktura i działanie jednostki centralnej

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

Systemy wbudowane. Przykłady kodu Assembler

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Architektura typu Single-Cycle

Programowanie komputera

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

1. Asembler i wstawki asemblerowe w C

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

Podstawy Techniki Mikroprocesorowej

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

Architektura komputerów

CPU architektura i rejestry

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

2. Architektura mikrokontrolerów PIC16F8x... 13

architektura komputerów w 1 1

UTK jednostki wykonawczej EU (Ex ecution Unit), jednostki steruj c ej CU,

Programowanie Niskopoziomowe

Mikroprocesory rodziny INTEL 80x86

Architektura Systemów Komputerowych

Technologie informacyjne (2) Zdzisław Szyjewski

architektura komputerów w 1 1

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

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

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

Wstęp do Reverse engineeringu

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Architektura komputerów

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

INSTRUKCJE Instrukcje przeniesienia: Instrukcje konwersji: Arytmetyczne instrukcje:

Elektrotechnika I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES)

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

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

Arytmetyka stałopozycyjna

Programowanie w asemblerze Środowiska 64-bitowe

Budowa wnętrza procesora x86

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

7. Technika mikroprocesorowa test

Schemat blokowy procesora rdzeniowego ATmega16. Głównym zadaniem JC jest zapewnienie poprawnego i szybkiego wykonywania programu.

7. Technika mikroprocesorowa test

Podstawy techniki mikroprocesorowej. Dr inż. Grzegorz Kosobudzki p.311a A-5. Tel

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

Architektura systemów komputerowych Laboratorium 8 Symulator SMS32 Instrukcje skoku i pętle

AGH Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Lista instrukcji procesora 8051 część 2 Skoki i wywołania podprogramów, operacje na stosie, operacje bitowe

Technika mikroprocesorowa I Wykład 1

ARCHITEKTURA PROCESORA,

START: ; start programu od adresu 0100H ; zerowanie komórek od 01H do 07FH ( 1 dec dec)

Ćwiczenie nr 4. Zasady kodowania podprogramów

Mikrokontroler 80C51

Schematy zarzadzania pamięcia

ORGANIZACJA SYSTEMÓW KOMPUTEROWYCH

5. Mikroprocesory 8086 i 8088

Programowanie mikrokontrolera 8051

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

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

Asembler. Æwiczenia praktyczne

Transkrypt:

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 pamięci, pierwszy program Adresacja: rodzaje i zastosowanie Lista rozkazów Stos i procedury Skoki. Instrukcje łańcuchowe PSP, praca z plikami Asembler i inne języki System przerwań Programy rezydentne

Literatura Vlad Pirogow, Asembler. Podręcznik programisty, Helion, 2005 Eugeniusz Wróbel, Praktyczny kurs asemblera. Helion, 2004. Kip R. Irvine, "Asembler dla procesorów Intel. Vademecum profesjonalisty", Helion, 2003. Eugeniusz Wróbel, Asembler. Ćwiczenia praktyczne. Helion, 2002. Michałek Grzegorz, Asembler nie tylko dla orłów, Warszawa : "Intersoftland", 1999. Michałek Grzegorz, Co i jak w assemblerze, Warszawa, Intersoftland, 1995. Duntemann Jeff, Zrozumieć Asembler, Warszawa : Translator, 1995. Syck Gary, Turbo Assembler : biblia użytkownika, Warszawa : Oficyna Wydawnicza LT a. P, 1994.(MatFizIn130548) Kruk Stanisław, Asembler : podręcznik użytkownika, Warszawa : "Mikom" 1999. Kruk Stanisław,Turbo Asembler : idee, polecenia, rozkazy procesora Pentium, Warszawa : "Mikom", 2000.

Bit, Bajt, Słowo Numeracja bitów: Słowo: Podwójne słowo:

Podstawowe zasady architektury von Neumanna 1. Wspólna pamięć programu i danych 2. Liniowa struktura adresowania pamięci 3. Sposób przechowywania danych i instrukcji jest identyczny 4. Sekwencyjne wykonanie rozkazów 5. Zmiana zawartości pamięci przez wykonywany program Jedna magistrala transmisyjna pomiędzy procesorem a pamięcią

Organizacja mikroprocesora

Rejestry procesora

Rejestry ogólnego przeznaczenia

Rejestry wskaźnikowe i indeksowe Rejestr SI DI ang. znaczenie Source Index Destination Index Rejestr SP BP ang.znaczenie Stack Pointer Base Pointer IP (32b) Instruction Pointer

Rejestry segmentowe Rejestr ang.znaczenie Znaczenie CS SS DS ES,FS,GS Code Segment register Rejestr segmentu kodu Stack Segment Rejestr segmentu register stosu Data Segment register Rejestr segmentu danych Extension Data Rejestry dodatkowych Segment register segmentów danych

Rejestr znacznikowy

Rejestr znaczników SF (sign flag) - znacznik znaku - równy najbardziej znaczącemu bitowi wyniku 0 - wynik operacji dodatni 1 - wynik operacji ujemny ZF (zero flag) - znacznik zera 0 - wynik operacji różny od zera 1 - wynik operacji równy zeru PF (parity flag) - znacznik parzystości - ustawiany w zależności od liczby jedynek w najniższych 8 bitach wyniku 0 liczba jedynek w wyniku operacji nieparzysta 1 liczba jedynek w wyniku operacji parzysta AF (auxiliary carry flag) - znacznik przeniesienia połówkowego (pomocniczego) 0 - brak przeniesienia pomiędzy trzecim i czwartym bitem bajtu (BCD) 1 - występuje przeniesienie CF (carry flag) - znacznik przeniesienia 0 - wynik operacji arytmetycznej nie powoduje powstania przeniesienia z najbardziej znaczącego bitu 1 - wynik takie przeniesienie powoduje OF (overflow flag) - znacznik nadmiaru 0 - suma modulo 2 przeniesień z najbardziej znaczącej pozycji i pozycji przedostatniej jest równa 0 1 - suma modulo 2 przeniesień z najbardziej znaczącej pozycji i pozycji przedostatniej jest równa 1 (przekroczenie zakresu w kodzie U2) IF (interrupt flag) - znacznik przerwań 0 - brak zezwolenia na przyjmowanie przerwań z wejścia INT 1 - zezwolenie na przyjmowanie przerwań DF (direction flag) - znacznik kierunku, wskazuje, czy zawartości rejestrów SI i DI mają być zwiększane lub zmniejszane o jeden w czasie wykonywania operacji na ciągach 0 - rejestry są zwiększane 1 - rejestry są zmniejszane TF (trap flag) - znacznik pułapki umożliwiającej pracę krokową. Znacznik ten może być ustawiony za pomocą jedynki na odpowiedniej pozycji słowa stanu programu PSW (program status word) 0 - praca krokowa wyłączona 1 - praca krokowa włączona

Organizacja pamięci komputera

Adresacja pamięci 20b 1MB (2b 2 2 = 4B, 3b 2 3 =8B,. 2 20 1MB) 16b rejestry Baza (Segment ) i Przesunięcie (Offset) 1 Adres fizyczny (AF) 20b 2 Adres logiczny (AL) 3 Zapis: Baza: Przesunięcie (16b:16b ) 4 Adres efektywny (AF)

Przykład 1: Segment = 0111 1010 1101 1001 Offset = 1011 0010 1000 1011 AF = 16* Segment + Offset => Segment -> 4b w lewo: 0111 1010 1101 1001 0000 + 1011 0010 1000 1011 1000 0110 0000 0001 1011

Przykład 2 Segment = 0D94Ah Offset = 0A527h AF =?

Pisanie programów w asemblerze (kompilacja, konsolidacja, uruchomienie i testowanie )

Pierwszy program w Asemblerze.model small.data napis db 'pierwszy program w Asemblerze $'.code start: mov ax,seg napis ; = mov ax, @data mov ds,ax mov dx,offset napis mov ah,9 int 21h mov ah,4ch int 21h end start