wtorek, 29 stycznia 2013

Wczytywanie Liczby DEC i HEX w asemblerze.

Wczytywanie liczby dziesiętnej w asemblerze. (od 4 do 5 znaków na 16 bitów)

  1. Wczytaj cyfrę (pojedynczy znak ASCII)
    xor  bx,bx
    mov  ah,0
    int  16h
  2. Odejmij od cyfry '0' by z ASCII przejść do cyfry.
    sub   ax,'0'
    push  ax
  3. Przemnóż miejsce gdzie już jest liczba razy 10
    mov  ax,10
    mul  bx
    mov  bx,ax

    pop  ax
  4. Dodaj do miejsca gdzie jest już liczba kolejną cyfre.
    add  bx,ax
Liczba jest zapisywana bo rejestru bx. Całość możemy nazwać np jako readDEC i puścić w loop 4-5 razy jeśli chcemy wczytać liczbę 16 bitową. Przy 5 obrocie pętli jc (jesli flaga carry) wyrzucamy błąd ponieważ własnie przekroczyliśmy 16 bitów w naszej zmiennej i funkcja nie wykonała się poprawnie. 


Wczytywanie liczby HEX szesnastkowej w asemblerze. (dokładnie 4 znaki, każdy po 4 bity)

  1. Wczytaj cyfrę.
    mov  cx,4

    xor  bx,bx

    wczytaj:
    mov  ah,0
    int  16h
  2. Dozwól by były to cyfry i litery tylko 0-9, A-F
    cmp  al,'0'
    jb   wczytaj

    cmp  al,'9'
    jbe  dalej9

    cmp  al,'A'
    jb   wczytaj;

    cmp  al,'F'
    jbe  dalejF;
  3. Z ASCI do Cyfry lub Litery
    dalej9:
    sub  al,'0'

    dalejF:
    sub  al,'F'
  4. Przekręć miejsce gdzie są już liczby SHL o 4 bity w lewo i dodaj nowa cyfrę.
    shl  bx,4
    add  bx,ax

    loop wczytaj; zakręć wszystkim 4 razy

niedziela, 27 stycznia 2013

Wywoływanie funkcji przez jej nazwę w Action Script 3

Call a function by its name in AS3, mówiąc prościej wywołanie funkcji poprzez jej nazwę String. Sposób może się przydać gdy wczytujemy funkcje z pliku XML. Aby nie opisywać każdego z przypadków możemy użyć tej prostej metody. Działą w Action Script 3.


var functionName:String = "getDetails";

var instance1:MyObject = new MyObject();

instance1[functionName]( tutaj parametry funkcji );
function getDetails(s:String){
   return s;
}


Umieszczam ponieważ dużo się naszukałem zanim znalazłem to rozwiązanie. 

sobota, 26 stycznia 2013

Pobieranie treści ze strony. Przykład filmweb.

Wstęp... Czyli coś co możesz pominąć >>


Pobieranie treści strony to musi być wcale mozolne jeśli użyjemy do tego głowy. Widziałem wiele przykładów, które wykorzystują wyrażenia regularne, sam kiedyś ich używałem, tak więc sprawdziłem to empirycznie. Jest to bardzo skomplikowany sposób, łatwo się w nim pogubić, ponieważ wszystkie elementy DOM strony traktujemy jako ciąg znaków. Zaprezentuje wam alternatywną metodę, która wykorzystuje jQuery i porusza się po elementach DOM strony (jest wiele wiele szybsza). Nie pokaże wam jak robi się to przy pomocy wyrażeń regularnych ponieważ szkoda mi czasu, poza tym przestałem ich używać.

Krok pierwszy

Pierwszą rzeczą jaką musimy zrobić to załadować stronę z której chcemy wyciągnąć informacje do iframe. Tutaj ważna uwaga, aby dostać się do treści iframe adres musi być na tej samej domenie. Jak to zrobić skoro nasza domena to naszadomena.pl, a treść strony, którą chcemy pobrać znajduje się pod adresem filmweb.pl? Istnieje prosta metoda (Cross-Domain), musimy zrobić plik pobierz.php na naszym serwerze, który pobierze treść filmweb.


<?php

$after = $_GET['after'];

// Pobiera filmweb z parametrami after. 
$file = file_get_contents('http://www.filmweb.pl/'.$after, false);

echo $file;
?>

korzystanie z tego pliku będzie następujące.
Adres http://www.filmweb.pl/film/Niemo%C5%BCliwe-2012-586390 
odpowiada adresowi http://twojadomena.pl/?after=film/Niemo%C5%BCliwe-2012-586390

Przygotowanie Html

Gdy przygotujemy nasz plik zabieramy się za stworzenie pliku ładującego naszego iframa oraz przeglądającego jego zawartość. W tym miejscu musimy dodać do naszego pliku w sekcji head bibliotekę jQuery.

<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>

Następnie w sekcji body dodajemy iframe ze stroną, która chcemy pobrać.


<iframe src="http://naszadomena.pl/pobierz.php?after=film/Niemo%C5%BCliwe-2012-586390" style="display:none;"></iframe>

Przygotowanie JavaScirpt

Oraz kod Java Scirpt, który czeka na załadowanie iframe, a następnie przeszukuje go pod kątem potrzebnych nam informacji. W tym przykładzie wykorzystałem selektory jQuery oraz funkcję contents(), która pozwala mi dobrać się do wnętrza iframe. 

<script>
window.onload = function() {
$iframe = $('iframe').contents();

alert( $iframe.find('div.posterLightbox > a > img').attr('src') ); //adres miniatury
alert( $iframe.find('div.filmTitle h1 > a').text() ); // tytuł
alert( $iframe.find('span#filmYear').text() ); // rok wydania
alert( $iframe.find('div.pageBox > p.text.longText').text() + $iframe.find('div.pageBox > span.fullText hide').text() ); // pełen opis filmu
alert( parseFloat($iframe.find('span.filmRate > strong').text()) ); // ocena filmu

}
</script>



PS. nie wiem w jakiej czasoprzestrzeni będziesz czytał ten post... Dlatego uprzedzam się, że selektory mogą się zmienić dla wszystkich tych danych. Selektory napisałem w dniu (2013 - 01 - 26). Ich aktualizacja jest znacznie prostsza i szybsza niż w przypadku wyrażeń regularnych. Wierze, że z odrobiną determinacji sobie poradzisz. Pytania zostaw w komentarzu.

piątek, 25 stycznia 2013

Kupony McDonald's



Przygotowałem dla Ciebie darmową aplikację,

która pozwoli Ci zaoszczędzić w restauracjach McDonald's,
Ja i wszyscy moi znajomi korzystamy z niej od niedawana!

Wystarczy, że pobierzesz ją na swojego smart-fona, 
a kupon ze zniżką pokażesz na ekranie telefonu, przy kasie.
Z aplikacją KUPONY McDonald's kupisz

Frytki, a drugie dostaniesz gratis za 5,70 zł
Dwa Cheeseburgery za 5 zł
Kurczak McNuggets, a drugie dostaniesz gratis za 8,60 zł
Big Mac ze średnimi frytkami za 10 zł
McChicken ze średnimi frytkami za 10 zł
Dwa Cheeseburgery, mały napój małe frytki za 10 zł
Dwa Kurczakburgery, mały napój małe frytki za 10 zł
McMuffin Jajko i Bekon, Mała Kawa za 6 zł
Truskawkowy Poemat, Małe Cappuccino lub Małe Cafe Late za 11 zł
Mała kawa do zestawu powiększonego Gratis
Kappy Meal + Kurczak McNuggets 6sz. za 15 zł
Dwa Happy Meale za 18 zł
McZestaw Powiększony + McNuggets 6 sztuk za 20 zł
McZestaw Powiększony + Happy Meal za 21 zł
Dwa McZestawy Powiększone za 25 zł
Dwa McZestawy Powiększone + Dwa Happy Meal za 39 zł

Aplikacja działa w każdej polskiej restauracji McDonald's.
Do tej pory działa w Android. Więcej systemów wkrótce.

Poniżej kilka screenów. Zapraszam do pobierania!


screen

screen

screen

Hello World

Cześć,

Założyłem tego bloga by pisać o prozaicznych problemach, na które ciężko było mi znaleźć odpowiedź w internecie, ciekawych bibliotekach na które się natknąłem oraz własnych sukcesach w pisaniu stron internetowych i Aplikacji Mobilnych.

Programuje przede wszystkim w Action Script 3 (Adobe Air), Java Script, analogicznie Html, CSS i wszystkie temu podobne webowe bajery. Jako student Informatyki spotykam się również z innymi językami... Dlatego też, chwilkę swojej uwagi zamierzam poświęcić Assemblerowi, który nie tak dawno bardzo mnie zmęczył.

Jeśli szukasz ciągłości to raczej jej tutaj nie znajdziesz. Ten blog będzie wykopaliskiem sztuczek i szybkich podpowiedzi.

PS. Jako, że dotychczas pisałem jedynie maile odruchowo, wpis zakończyłem Pozdrawiam Serdecznie, Eliasz. :)

Hello World