ATNEL tech-forum
https://forum.atnel.pl/

Programowanie PC innaczej.
https://forum.atnel.pl/topic13155.html
Strona 1 z 1

Autor:  PROTON [ 7 paź 2015, o 18:31 ]
Tytuł:  Programowanie PC innaczej.

Programy na PC uruchamia się zazwyczaj pod kontrolą jakiegoś systemu operacyjniego, np. może być to DOS, Windows, Linux, itp. Można też uruchomić bezpośrenio na komputerze.
Wymagania są takie, że program musi być napisany w trybie 16bitowym, ponieważ będzie uruchamiany na procesorze pracyjącym w trybie rzeczywistym. Drugie wymaganie to program nie może być większy jak 512 bajtów, to ograniczenie wynika z tego że BIOS komputera jest w stanie wczytać tylko jeden 512 bajtów sektor i go uruchomić.
Żeby uruchomić program trzeba go wgrać do zerowego sektora dysietki lub pendrive a następnie zabootować z tego urządzenia komputer.

O to program zegar.asm

Składnia: [ Pobierz ] [ Ukryj ]
język asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Kompilascja Netwide Assemblerem, tworzy ona obraz dyskietki.

nasm zegar.asm -o zegar.img

Efekt działania programu pod VirtualBoxem

Obrazek

Porgram powstał na bazie artykułów z miesięcznika programista, "Bliżej krzemu"

Autor:  vaffanculo [ 7 paź 2015, o 20:01 ]
Tytuł:  Re: Programowanie PC innaczej.

Ciekawy temat,

podpowiesz jak skompilować ten kod?

Autor:  SunRiver [ 7 paź 2015, o 20:03 ]
Tytuł:  Re: Programowanie PC innaczej.

Cytuj:

Kompilascja Netwide Assemblerem, tworzy ona obraz dyskietki.

nasm zegar.asm -o zegar.img



Np tak ....

Autor:  PROTON [ 8 paź 2015, o 13:15 ]
Tytuł:  Re: Programowanie PC innaczej.

Skąd czerpać informacje o przerwaniach?
Ze strony: http://www.cs.cmu.edu/~ralf/files.html , są tam pliki zawierające opisy przerwań. Dla przykładu podam jak odczytać godzinę z zegara na płycie głównej (RTC).

W pliku INTERRUP.D, pochodzącym z w/w strony znajduje się zapis:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Zgodnie z powyższym opisem po wykonaniu instrukcji:
Składnia: [ Pobierz ] [ Ukryj ]
język asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


W rejestrze CH mamy godzinę, w CL minuty, w DH sekundy. Wszytko w kodzie BCD więc bardzo łatwe do wyświetlenia.


W przypadku odczytu daty, w tym samym pliku INTERRUP.D mamy opis jak ją odczytać:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  robertomic [ 14 maja 2016, o 14:36 ]
Tytuł:  Re: Programowanie PC innaczej.

PROTON napisał(a):
Żeby uruchomić program trzeba go wgrać do zerowego sektora dysietki lub pendrive a następnie zabootować z tego urządzenia komputer.

1. czy na realnym prawdziwym komputerze tez sie uruchomi czy tylko na maszynie wirtualnej
sprawdzałeś ?

2. Jak wgrac pod zerowy sektor pendriva ?

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/