Kilka podstawowych pytan z assemblera

0

Witajcie ponownie!
Bardzo chce sie nauczyc tego jezyka i niepowodzenia mnie nie zrażaja tak wiec pomęcze Was troche pytaniami. To raczej dla troche obcykanych nic trudnego, dlatego bardzo prosze o wyjasnienie kilku podstawowych zagadnien.

1). W jaki sposób wyswietlic więcej niż jedna linijke tekstu (jedna po drugiej np., wg poprzedniego postu), czy ciagle musze powtarzac powrót do 21h, zdeklarowac [offset nastepny_tekst] i znowu wywołac 10h?

  1. Czy istnieje cos takiego jak Pascalowy Delay()? Chodzi o wstrzymanie na chwilke działania systemu.

  2. W jaki sposob najprosciej zabrac sie za czyszczenie ekranu?

  3. Pisze poki co w Notatniku, ale gdy podczas kompilacji wystapi bład np w 89 lini to dla mnie jako dla początkujacego żmudne jest liczenie ciagle od poczatku. Czy jest do tego jakis lepszy edytor?

  4. Kompiluje programy TASMem a potem TLINK, to dobrze czy zle?

  5. Jak można ogarnąc wiedze o podstawach asemblera, głownie o tym jaka wartosc do czego "włozyc". Jest to dla mnie problemem, bo gdy pisze program to nigdy nie wiem gdzie moge włozyc np 1, jest tyle tych rejestrow itp.

  6. Jaka jest roznica pomiedzy "młodszymi rejestrami" a hmm starszymi?, np AH i AL?

  7. Jakie pożyteczne programy udało sie Wam stworzyc. Czy znacie strone z ciekawymi przykładami (PL na poczatek), np w obsludze monitora, klawiatury itp.?

Bede bardzo wdzieczny za odpowiedzi, moze to przybliży mi choc w ułamku, co ja tak na prawde robie?

0
  1. Wstaw znak #13, potem #10 do linijki tekstu
  2. Istnieje, zaraz poszukam...
  3. NSP autorstwa Detox'a
  4. Dobrze
  5. Ćwicz, ćwicz i jescze raz ćwicz. Czytaj, szperaj po internecie, przeglądaj inne programy.
  6. AH i AL (obydwa są 8mio bitowe) tworzą razem AX (16 bitowy).

[code]AX :
AH : |AL :

= = = = = = | = = = = = = = =

przykład :
mov ax,0 ; zerowanie
mov al,1 ; al przyjmuje wartość 1
mov ah,1 ; ah przyjmuje wartość 1
AX :
AH : |AL :
0 0 0 0 0 0 0 1 | 0 0 0 0 0 0 0 1
zagadka :
ile ma teraz ax ?[/code]

<font color="red">[dop]</span>
Myśl dalej, niestety nie... podpowiedź : to jest system binarny.

0

1 + 1 = 2 skoro obydwa tworzą jeden, chyba ze wartosci ich sie nie dodaje. :)

0

Rejestry AH i AL to sa czesci rejestru AX.
Rejstr AX wyglada tak:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Czesc AH jest od bitu 8 do 15, a AL od 0 do 7.

Dopisane:
Rejestr AX ma wartosc 0000000100000001b
Sory za blad.

0

Obydwa rejestry maja takie same wartosci.
Tylko jeden jest zapalony, 1^2 = 1
Z drugiego tez jest 1^2 = 1
Czyli 1 + 1 = 2

Gdzie jest blad? :((((

0

aaaaaaaaaaaaaaaaaaaaaaa
juz rozumiem :))))
dzienks :D

0
  1. Czy istnieje cos takiego jak Pascalowy Delay()? Chodzi o wstrzymanie na chwilke działania systemu.
    "The Art of Assembly Language" rozdział 10 punkt 10 (do ściągnięcia stąd: http://webster.cs.ucr.edu/Page_asm/0_Page_asm.html Polecam wersję PDF. W html nie jest aż tak obszerna.)
  1. W jaki sposob najprosciej zabrac sie za czyszczenie ekranu?

Np. funkcja 6 lub 7 przerwania Video (10h)

  1. Pisze poki co w Notatniku, ale gdy podczas kompilacji wystapi bład np w 89 lini to dla mnie jako dla początkujacego żmudne jest liczenie ciagle od poczatku. Czy jest do tego jakis lepszy edytor?

Polecam edytor eSki. Zgłoś się do niego. Nie wiem czy gdzieś udostępnia. Nie będziesz musiał już liczyć linii, bo się zatrzyma na odpowiedniej lini z komunikatem. Jeżeli używałbyś fasma, to tam edytor jest już wbudowany w kompilator.

  1. Jaka jest roznica pomiedzy "młodszymi rejestrami" a hmm starszymi?, np AH i AL?

http://4programmers.net/view.php?id=127 Ale już wytłumaczenie masz chyba wystarczające.

0
  1. Pisze poki co w Notatniku, ale gdy podczas kompilacji wystapi bład np w 89 lini to dla mnie jako dla początkujacego żmudne jest liczenie ciagle od poczatku. Czy jest do tego jakis lepszy edytor?

  2. Kompiluje programy TASMem a potem TLINK, to dobrze czy zle?

Dobrym kompilatorem jest Masm, osobiscie go polecam. Przyda ci sie na tyle ze ma wbudowany wlasny notatnik z numerowaniem linii wiec rozwiarzesz od razu pkt 4.

0

Bardzo dziekuje za odpowiedzi. Staram sie jak najwiecej cwiczyc. Wielkie dzieki!!! [hurra]

0

A ja w dalszym ciągu nie dowiedziałem się ile wynosi AX .... :)

Przepraszam za nachalność, ale chciałbym wiedzieć czy na pewno zrozumiałeś.

//AX = <font color="white">101h</span> - Marooned :-)

0

A ja w dalszym ciągu nie dowiedziałem się ile wynosi AX .... :)

28 + 20 :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1