+ Odpowiedz na ten temat
Pokaż wyniki od 1 do 6 z 6

Temat: Asembler-tryb rzeczywisty

  1. #1
    Użytkownik
    Dołączył
    22-11-2005
    Posty
    65

    Domyślnie Asembler-tryb rzeczywisty

    Witam Zaczynamy asemblera i mam takie pytanie jak wygladałoby polecenie przeniesienia danej z rejestru bx do komórki pamieci w segmencie dancyh o offsecie równym np.b2, adres bazowy segmentu w rejestrze ds wynosi 4ffa.

    Z góry dzięki.

  2. #2
    Użytkownik (R) Avatar D.F.
    Dołączył
    04-11-2009
    Skąd
    Polska
    Posty
    203

    Domyślnie

    W asemblerze TASM wyglądałoby to:
    Kod:
    .model small
    .stack
    ASSUME CS: CODE
    
    CODE SEGMENT
    START:
    		mov ax, 4FFAh
    		mov ds, ax
    		
    		mov bx, 5
    		mov [ds:00B2h], bx
    		
    		;exit
    		mov ax, 4C00h
    		int 21h
    CODE ENDS
    
    END START

  3. #3
    Użytkownik
    Dołączył
    22-11-2005
    Posty
    65

    Domyślnie

    Dzieki za odpowiedz ale jednego nie lapie dlaczego tam jest mov bx , 5 ?? chodzi bardziej o ta 5 ? skad sie tam wzieła?

  4. #4
    Użytkownik (R) Avatar D.F.
    Dołączył
    04-11-2009
    Skąd
    Polska
    Posty
    203

    Domyślnie

    Chcesz przenieść daną z rejestru bx, to dla przykładu dałem tam wartość 5.

  5. #5
    Użytkownik
    Dołączył
    22-11-2005
    Posty
    65

    Domyślnie

    A czy mogłbyś napisać jakieś zerowania licznika?? z opisaniem dlaczego te?

  6. #6

    Domyślnie

    zerowanie licznika jest zapisywanie "0" w komórku oraz rejestr (abo zrzut rejestru w inny sposób, jak "sub eax,eax" czy "xor edx,edx"). w asemblerze nie ma osobnych liczników, chciaż rejestr (e)cx jest korzystujący jak licznik w niektórych operacjach (np. scas, stos, cmps).
    szurik

+ Odpowiedz na ten temat

Uprawnienia

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów