WYŻSZA SZKOŁA INFORMATYKI I ZARZĄDZANIA Z SIEDZIBĄ W RZESZOWIE. Projekt z przedmiotu: Języki asemblerowe. Temat:



Podobne dokumenty
Instrukcja obsługi zamka. bibi-z50. (zamek autonomiczny z czytnikiem identyfikatora Mifare)

Zarządzanie Zasobami by CTI. Instrukcja

Type ETO2 Controller for ice and snow melting

INTERAKTYWNA APLIKACJA MAPOWA MIASTA RYBNIKA INSTRUKCJA OBSŁUGI

Instalacja. Zawartość. Wyszukiwarka. Instalacja Konfiguracja Uruchomienie i praca z raportem Metody wyszukiwania...

Zmiany w programie C GEO v. 6.5

ROZDZIAŁ 1 Instrukcja obsługi GRAND HAND VIEW III

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski

Microsoft Management Console

Pascal - grafika. Uruchomienie trybu graficznego. Moduł graph. Domyślny tryb graficzny

Użytkowanie elektronicznego dziennika UONET PLUS.

DJCONTROL INSTINCT I DJUCED PIERWSZE KROKI

Ćwiczenie 6.5. Otwory i śruby. Skrzynia V

Instrukcja obsługi panelu operacyjnego XV100 w SZR-MAX-1SX

PERSON Kraków

Jak spersonalizować wygląd bloga?

I. Zakładanie nowego konta użytkownika.

Instrukcja obsługi. Sterownik ścienny KJR10B/DP

Photoshopa część zaawansowana

Systemy mikroprocesorowe - projekt

Kopia zapasowa i odzyskiwanie Podręcznik użytkownika

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej

Warszawa, dnia 11 marca 2016 r. Poz. 327 ROZPORZĄDZENIE. z dnia 7 marca 2016 r.

Tomasz Greszata - Koszalin

INSTRUKCJA OBS UGI

VinCent Office. Moduł Drukarki Fiskalnej

DYSTRYBUCJA : DJ-DISTRIBUTION NUMARK POLSKA

Nowe funkcjonalności

SKRÓCONA INSTRUKCJA OBSŁUGI ELEKTRONICZNEGO BIURA OBSŁUGI UCZESTNIKA BADANIA BIEGŁOŚCI

Rachunek_UCP. C e l. Zarejestrowanie rachunku do umowy cywilnoprawnej w systemie SAP. Wymagania wstępne

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

Instalacja programu. Omówienie programu. Jesteś tu: Bossa.pl

Skrócony opis instalacji Sympodium DT770 Interaktywny ekran z cyfrowym piórem

SPECYFIKACJA ISTOTNYCH WARUNKÓW ZAMÓWIENIA

Przeniesienie lekcji SITA z płyt CD na ipoda touch

TABLICA SYNOPTYCZNA CA-64 PTSA

Metoda LBL (ang. Layer by Layer, pol. Warstwa Po Warstwie). Jest ona metodą najprostszą.

Przed Tobą znajduje się kilka prostych zadań praktycznych dotyczących języka HTML.

Skitch for Android Instrukcja obsługi 2012 Evernote Corporation Wszelkie prawa zastrzeżone Opublikowano: Jun 19, 2012

Moduł. Rama 2D suplement do wersji Konstruktora 4.6

1. Program Skype można pobrać ze strony producenta :

Tekst ozdobny i akapitowy

Logowanie do mobilnego systemu CUI i autoryzacja kodami SMS

Bazy danych. Andrzej Łachwa, UJ, /15

Instrukcja instalacji programu Plantator oraz transferu pliku danych z/do PC kolektor danych PT-20

Instrukcja użytkowania DRIVER. Programator z przewodem sterowniczym. DRIVER 610 lub lub 2 strefy DRIVER

Kurs wyrównawczy dla kandydatów i studentów UTP

Tytuł pracy. Praca dyplomowa inżynierska. Filip Piechocki. Tytuł Imię i Nazwisko

JADWIGA SKIMINA PUBLIKACJA NA TEMAT: NAUKA MS. WORD 2000 W KLASIE IV

INSTRUKCJA OBSŁUGI URZĄDZENIA: HC8201

Tester pilotów 315/433/868 MHz

2 Zarządzenie wchodzi w życie z dniem podpisania.

Strategia rozwoju kariery zawodowej - Twój scenariusz (program nagrania).

Instrukcja wprowadzania danych do formularza importowego edziennika MobiReg wersja Light v.1.1

Wst p do obs ugi bazy danych Reaxys

Skrócony podręcznik obsługi dla programu Wizualna poczta głosowa w wersji 8.5 lub nowszej

Platforma Aukcyjna Marketplanet. Podręcznik Oferenta. Aukcja dynamiczna zniŝkowa

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET

Instalacja Plugin. Rys. 1. Folder Plugin.

CYFROWY MIERNIK REZYSTANCJI UZIEMIENIA KRT 1520 INSTRUKCJA OBSŁUGI

INSTRUKCJA DO ĆWICZENIA NR 4

Zmiany w wersji 1.18 programu VinCent Office.

ZASADY REPRODUKCJI SYMBOLI GRAFICZNYCH PRZEDMOWA

2) Drugim Roku Programu rozumie się przez to okres od 1 stycznia 2017 roku do 31 grudnia 2017 roku.

Parowanie urządzeń Bluetooth. Instrukcja obsługi

Wstawianie wstawianie na stronę różnych elementów (tabela, obraz, kształt, nagłówek, wordart )

Projekt z dnia 2 listopada 2015 r. z dnia r.

Centrum Informatyki "ZETO" S.A. w Białymstoku. Instrukcja użytkownika dla urzędników nadających uprawnienia i ograniczenia podmiotom w ST CEIDG

BCS Manager Instrukcja Obsługi

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

SKRÓCONA INSTRUKCJA OBSŁUGI CR-500- HD

Opis zmian funkcjonalności platformy E-GIODO wprowadzonych w związku z wprowadzeniem możliwości wysyłania wniosków bez podpisu elektronicznego

Ostatnia cena sprzeda y klienta 1.0 dodatek do Symfonia Faktura dla 1 firmy

Instrukcja obsługi platformy zakupowej e-osaa (klient podstawowy)

WordPad. Czyli mój pierwszy edytor tekstu

Cyfrowy włącznik czasowy z lampką Nr produktu

SZABLONY KOMUNIKATÓW SPIS TREŚCI

Generowanie kodów NC w środowisku Autodesk Inventor 2014

Pierwsze kroki. Krok 1. Uzupełnienie danych własnej firmy

SAMOCHODOWA KAMERA HD

Tester pilotów 315/433/868 MHz MHz

Dokumentacja użytkownika aplikacji mobilna Aplikacja Uczestnika Gry Miejskiej

OŚWIETLENIE PRZESZKLONEJ KLATKI SCHODOWEJ

PX319. Driver LED 1x2A/48V INSTRUKCJA OBSŁUGI

INSTRUKCJA MONTAśU SYSTEMU ALARMOWEGO AMPIO MINI CAN

1. Podstawy budowania wyra e regularnych (Regex)

Moduł Pulpit opcji oraz Narzędzia. Opis v 1.0

Radiowy miernik opadów Nr art Przekaz danych następuje na częstotliwości 433 MHz, bez konieczności instalowania przewodów.

1.Rysowanie wałka. Dostosowanie paska narzędzi Tworzenie nowego wałka. Uniwersytet Technologiczno Przyrodniczy w Bydgoszczy

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM

Wtedy wystarczy wybrać właściwego Taga z listy.

Opis obsługi systemu Ognivo2 w aplikacji Komornik SQL-VAT

Harmonogramowanie projektów Zarządzanie czasem

2004 Heden Media. Wszelkie prawa zastrzeżone. Wirtualne laboratorium z napędów i sterowania pneumatycznego. Minimalne wymagania

INSTRUKCJA WebPTB 1.0

ENES Magnesy Paweł i Tomasz Zientek Sp. k.

Audyt SEO. Elementy oraz proces przygotowania audytu. strona

Cel i zakres ćwiczenia

Konfiguracja historii plików

Transkrypt:

WYŻSZA SZKOŁA INFORMATYKI I ZARZĄDZANIA Z SIEDZIBĄ W RZESZOWIE Projekt z przedmiotu: Języki asemblerowe Temat: Rysowanie myszką w trybie graficznym. Prowadzący: mgr inż. Jarosław Szkoła Wykonawca: Leszek Szpunar, w36292 Rzeszów 201

Spis treści: 1. Cel projektu... 3 2. Wymagania wstępne... 3 3. Charakterystyka wykorzystanych narzędzi... 3 4. Opis programu... 4 5. Omówienie kodu programu... 5 6. Działanie programu... 7 7. Wnioski... 8 2

1. Cel projektu Celem projektu jest zapoznanie się z językiem asembler i zastosowanie go w programowaniu układów x86. 2. Wymagania wstępne Program ma pozwalać na rysowanie zadanym kolorem - myszką w trybie graficznym 13h. Będzie wyświetlał piksel w miejscu naciśnięcia kursora myszki przerwanie 33h po naciśnięciu lewego przycisku. Po naciśnięciu prawego będziemy kończyć porogram. 3. Charakterystyka wykorzystanych narzędzi DOSBox to emulator klasycznego systemu operacyjnego MS DOS. Umożliwia uruchamianie aplikacji napisanych dla tej platformy, czyli większości gier i programów jakie zostały stworzone w latach 80-tych i 90-tych ubiegłego wieku. Emulator DOS. Dzięki użyciu biblioteki SDL jest bardzo prosty do adaptacji na różne systemy operacyjne. Aplikacja emuluje: procesor 286/386; system plików, karty graficzne Tandy/Hercules/CGA/EGA/VGA/VESA, karty muzyczne SoundBlaster/Gravis Ultra Sound. Na stronie producenta można pobrać stare gry, które nie uruchamiają się pod nowymi systemami operacyjnymi. 3

4. Opis programu Program został napisany w języku asembler i pozwala na rysowanie myszką w trybie graficznym 13h. 13h: Rozdzielczość trybu 13h to: 320x200, jego paleta zawiera265 kolorów. Tryb 13h (dziesiętnie 19) jest trybem graficznym VGA, a jego nazwa bierze się z numeru wśród trybów na karcie VGA. Aby uruchomić tryb 13h należy do rejsetru AH funkcję 00h, a do rejestru AL załadować numer trybu pracy karty graficznej VGA i wywołać przerwanie 10h. Rejesry AH i AL znajdują się w rejestrze AX, więc wystarczy tam załadować numer trybu pracy karty graficznej. Procedurą, która będzie to realizowała będzie Init13h. Kiedy mamy już uruchomiony tryb 13h, możemy coś narysować. Aby postawić pojedynczy piksel należy do bufora wideo składającego się z 64000 bajtów (określających kolejno ułożone piksele) zapisać liczbę określającą jego kolor. Np. zapisanie do 1 bajtu buforu wideo liczby 15 powoduje wyświetlenie na ekranie białego piksela. Black = 0 - czarny Blue = 1 - niebieski Green = 2 - zielony Cyan = 3 - turkusowy Red = 4 - czerwony Magenta = 5 - karmazynowy Brown = 6 - brązowy LightGray = 7 - jasnoszary DarkGray = 8 - ciemnoszary LightBlue = 9 - jasnoniebieski LightGreen = 10 - jasnozielony LightCyan = 11 - jasnoturkusowy LightRed = 12 - jasnoczerwony LightMagenta = 13 - jasnokarmazynowy Yellow = 14 - żółty White = 15 - biały 33h: Do obsługi myszy służy przerwanie 33h MS-DOS. Są następujące funkcje przerwania 33h: INT33/ah=00h inicjalizacja myszy, INT33/ah=01h - wyświetlenie kursora myszy, INT33/ah=02h - wyłączenie kursora myszy, INT33/ah=03h - odczytanie z ekranu położenia kursora oraz stanu przycisków myszy, INT33/ah=04h - ustawienie na ekranie położenia kursora myszy. 4

Funkcja 00h inicjalizuje mysz. Sprawdza też, czy mysz jest zainstalowana. Funkcja zwraca w rejestrze AX informację o stanie myszy, a mianowicie wartość 0FFFFh, jeżeli mysz nie jest zainstalowana, lub wartość 0, jeżeli mysz jest obecna. W przypadku obecności myszy funkcja zwraca w rejestrze BX liczbę przycisków myszy (2 lub 3). Funkcja 01h wyświetla, a funkcja 02h wyłącza kursor myszy (w trybie graficznym). Do ustawienia trybu graficznego należy wywołać funkcję 13h procedury (przerwania) INT10: mov ax,13h ; ustawienie trybu graficznego int 10h mov ax,01h ;wyświetlenie kursora myszy mov ax,02h ;wyłączenie kursora myszy Funkcja 03h odczytuje położenie na ekranie kursora oraz stan przycisków myszy. Funkcja zwraca w rejestrze CX współrzędną X położenia myszy, w rejestrze DX współrzędną Y położenia myszy, a w rejestrze BX znaczniki stanu przycisków myszy: bit 0 równa się 1, jeśli lewy przycisk jest wciśnięty, bit 1 równa się 1, jeśli prawy przycisk jest wciśnięty, bit 2 równa się 1, jeśli środkowy przycisk jest wciśnięty. Współrzędne X i Y położenia myszy należy jeszcze pomnożyć przez 2, 4 lub 8 w zależności od rodzaju trybu graficznego. Funkcja 04h ustawia położenie na ekranie kursora myszy. Należy przygotować w rejestrze CX współrzędną X położenia myszy, w rejestrze DX współrzędną Y położenia myszy. 5. Omówienie kodu programu org 100h ;inicjalizacja myszy mov ax,0000 ;kolejnym krokiem po inicjalizacji jest sprawdzenie czy jest mysz cmp ax,0ffffh ;porównanie, jeśli a ax wartość zgadza się z 0ffffh je short mouse0 ;wykonujemy skok do etykiety mause0 ;jeśli natomiast porównanie ax z 0ffffh nie powiedzie się kończymy program z bledem mov ax,4c01h ;wyjście z błędem int 21h ;wyjście mouse0: ;etykieta 5

;uruchamiamy tryb graficzny 13h mov ax,0013h int 10h ;przerwanie 10h ;wyswietlamy wskaznik myszy mov ax,0001h ;przerwanie myszy 33h mouse1: ;pobieramy informacje o naciśniętych przyciskach ;oraz o pozycji gdzie zostało wciśnięte na ekranie ;w resetrach cx - poz x, dx - poz y ekranu mov ax,0003h shr cx,01 ;dzielimy pozycje x przez 2 zeby bylo dobrze, w innym przypadku będziemy rysować z przesunięciem ;zachowujemy informacje o stanie przyciskow bo bedzie jeszcze nam potrzebna push bx ;sprawdzamy czy zostal nacisniety lewy przycisk myszy ;filtrujemy w celu wyluskania informacji o lewym przycisku myszy mov ax,bx and ax,0000000000000001b ;filtracja sprawdzamy czy został wciśnięty lewy przycisk 16bit cmp ax,0000000000000001b ;porównujemy czy wartości się zgadzają jne short mouse2 ;jeśli nie to skaczemy do etykiety mouse2 ;chowamy wskaznik myszy mov ax,0002h ;wyswietlamy piksel w pozycji (x,y) = (cx,dx) mov al,02 ;kolor zmieniając parametr, zmieniamy kolor mov ah,0ch ; wyświetlanie pixelka mov bh,0 ;strona numer 0 to tak jakby rysowanie w trybie rzeczywistym int 10h ;wyswietlamy wskaznik myszy mov ax,0001h mouse2: pop bx ;znowu mamy informacje oprzyciskach ;sprawdzamy czy prawy wcisniety ;filtrujemy w celu wyluskania informacji o prawym przycisku myszy 6

mov ax,bx ; do rejestru ax wpisujemy informację o przyciskach and ax,0000000000000010b ;filtracja - sprawdzamy czy został wciśnięty prawy przycisk 15bit cmp ax,0000000000000010b ;porównujemy wartości jne short mouse1 ;jeśli nie to skaczemy do etykiety mouse1 ;gdy wcisniety lewy przycisk to konczymy program mov ax,4c00h ; funkcja wyjścia z programu int 21h ;wychodzimy 6. Działanie programu Po uruchomieniu programu zostaje wyświetlony kursor myszy: 7

Zrzut przedstawia narysowane za pomocą myszki pikselki: 7. Wnioski Program jest optymalny, krótki oraz szybki, spełnia początkowe założenia. Pozwolił on na zdobycie nowej wiedzy praktycznej. Program może służyć do rysowania w Dos'ie. Napisanie tego programu pozwoliło mi pogłębić swoją wiedzę na temat programowania w języku asembler, zapoznałem się dokładniej z architekturą x86 oraz trybem graficznym 13h jak również z przerwaniem myszy 33h. 8