logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak dodać zawartość akumulatora do komórki pamięci 2000 w '51 Assembler?

DAREK4444 17 Sty 2004 20:59 1575 9
REKLAMA
  • #1 479427
    DAREK4444
    Poziom 19  
    Posty: 425
    Pomógł: 5
    Ocena: 23
    Jak dodać np, do komórki pamięci 2000 zawartość akumulatora?

    Wiem tylko że jedną z części tego rozkazu to: MOVX @DPTR,A
    A jak brzmi druga bo nie mam pojęcia choć szukałem.
  • REKLAMA
  • #2 480020
    genetix
    Poziom 24  
    Posty: 669
    Pomógł: 42
    ladujesz do DPTR adres (2000)

    movx B, @DPTR ; chyba sie tak da :)
    add A, B ; to chyba tez przelknie, nie mam listy rozkazow przed oczami
    movx @DPTR, A

    w kazdym razie cos takiego to bedzie...
  • #3 480030
    DAREK4444
    Poziom 19  
    Posty: 425
    Pomógł: 5
    Ocena: 23
    Jak ładuję adres 2000 do DPTR?
  • REKLAMA
  • #5 480057
    genetix
    Poziom 24  
    Posty: 669
    Pomógł: 42
    kozak_sc napisał:
    a po drugie movx moze byc tylko wykonywane na akumulatorze.

    nie pamietam kiedy ostatni raz napisalem cos na '51 :)

    reasumując & poprawiając:

    [font=Courier New:06e309ae98]mov DPH,#7
    mov DPL,#D0 ;dzieki, kozak_sc

    mov B, A ; mam nadzieje ze to przejdzie
    movx A, @DPTR ; tego jestem pewien
    add A, B ; tu nikt nie protestowal
    movx @DPTR, A ; to tez powinno dzialac
    [/font:06e309ae98]
  • REKLAMA
  • #6 480235
    macio
    Poziom 12  
    Posty: 14
    Pomógł: 1
    mozna tez chyba

    mov dptr, #7d00h

    u mnie tak dziala
  • REKLAMA
  • #7 480269
    DAREK4444
    Poziom 19  
    Posty: 425
    Pomógł: 5
    Ocena: 23
    Oki dzięki wszystkim. Wystarczyło zrobić tak i mi działa:

    MOV DPH,#7H
    MOV DPL,#D0H
    MOVX @DPTR,A

    I gra. Dzięki wszystkim
  • #8 482001
    genetix
    Poziom 24  
    Posty: 669
    Pomógł: 42
    DAREK4444 napisał:
    Jak dodać np, do komórki pamięci 2000 zawartość akumulatora?


    DAREK4444 napisał:
    Oki dzięki wszystkim. Wystarczyło zrobić tak i mi działa:

    MOV DPH,#7H
    MOV DPL,#D0H
    MOVX @DPTR,A


    no to sie nie zrozumielismy. chcesz dodac czy skopiowac?
    w twoim przykladzie kopiujesz zawartosc A do pamieci usuwajac to, co bylo poprzednio. ni jak sie tego nie da nazwac dodawaniem!! no chyba ze w tej komorce zawsze masz 0 :)
  • #9 482466
    W.K
    Poziom 15  
    Posty: 139
    Pomógł: 1
    A w Bascomie to wygląda tak:
    Acc = &HAA
    Out &H2000 , Acc
    End
  • #10 482615
    DAREK4444
    Poziom 19  
    Posty: 425
    Pomógł: 5
    Ocena: 23
    genetix: Tu masz rację. Chodziło mi o przeniesienie a napisałem dodawanie:) Ale już wszystko gra. Dzię wszystkim za pomoc.

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczyła sposobu zapisu zawartości akumulatora (rejestru A) do komórki pamięci o adresie 2000h w asemblerze dla mikrokontrolera 8051. Podstawowym rozwiązaniem jest załadowanie adresu 2000h do rejestru DPTR za pomocą instrukcji MOV DPH,#7 oraz MOV DPL,#D0, a następnie użycie rozkazu MOVX @DPTR,A do zapisania zawartości akumulatora do pamięci zewnętrznej. Wskazano, że MOVX operuje tylko na akumulatorze, a do manipulacji danymi w rejestrach pomocniczych można użyć MOV B,A oraz instrukcji ADD A,B, jeśli zachodzi potrzeba dodawania wartości. Podkreślono różnicę między kopiowaniem a dodawaniem danych do pamięci. Przykład w Bascomie pokazano jako alternatywę, gdzie przypisanie wartości do akumulatora i wyjście do adresu 2000h jest realizowane prostszą składnią. Ostatecznie potwierdzono, że podstawowa sekwencja MOV DPH,#7H; MOV DPL,#D0H; MOVX @DPTR,A jest wystarczająca do przeniesienia zawartości akumulatora do pamięci pod adresem 2000h.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA