Czy jeśli mam:

ster_a equ 54018

bit_3 equ #%11110111    ;maska

bit_3_ equ #%00001000    ;3 bit = 1

lda ster_a            ;adres w akumulatorze

and bit_3_            ;1 and 0 = 0 - bit 3

wyzerowany

sta ster_a            ;won do 54018

...to czy to znaczy, że wynik instrukcji and jest umieszczany w akumulatorku, a poprzednia jego zawartość kasowana?

PS. Sory za pytanie, ale uczyłem się asm'a na kilka platform i z każdej rezygnowałem, gdy przez wątpliwości i brak zrozumienia języka gryzłem żaluzje.

2

tak zawartos akumulatorka jest zmieniana

LDA #%11111111 akum=%11111111
AND #%00001000  akum=%00001000
STA $2000 akum=%00001000

chyba o to Ci chodzilo?

My tu gadu gadu, a dziewczyny w Ornecie nic cieplego w ustach od rana nie mialy:) <>

3

No tak, ale w przykladzie bylo:
lda #%11110111
and #%00001000
co daje w akumulatorze zero. Poprzednia zawartosc akumulatora jest kasowana.

4

no tak;) chcialem na przykladzie pokazac;) i troche przekombinowalem

My tu gadu gadu, a dziewczyny w Ornecie nic cieplego w ustach od rana nie mialy:) <>

5

a to sie kompiluje???
mozna napisac

cos equ #wartosc
lda cos

???
nie powinno byc

cos equ wartosc
lda #cos

ogólnie AND jak najbardziej zmienia A, podbnie jak OR czy EOR.

: 404. Stopka not found

6

eru: Uczę się z kursu J.B. Wiśniewskiego. Tam jest właśnie:

MODRE  EQU 148
POLE   EQU 710
LDA #MODRE
STA POLE

A kompilować nic nie próbuję, bo:

opt 21
Error in line 0! Illegal symbol (wcale jakbym się posługiwał emblematem ganji...)

I tak jest przy każdej linii.

7

śmigło:
Znak # oznacza tzw. tryb natychmiastowy adresowania i odnosi się do komend, które mogą działać w tym trybie, a nie do etykiet.

lda $68 - wprowadzi do akumulatora zawartość komórki pamięci o adresie $68

lda #$68 - wprowadzi do akumulatora wartość $68

Etykiety to nic innego jak liczby o wartościach 8 i 16 bit i deklaracja:

etykieta equ #$5e

nie przejdzie z tego względu na to, że "etykieta" nie jest rozpatrywana jako ciąg tekstowy.

8

eru: Uczę się z kursu J.B. Wiśniewskiego. Tam jest właśnie:

MODRE  EQU 148
POLE   EQU 710
LDA #MODRE
STA POLE

No na takie coś właśnie przecież poprawiłem

A kompilować nic nie próbuję, bo:

opt 21
Error in line 0! Illegal symbol (wcale jakbym się posługiwał emblematem ganji...)

I tak jest przy każdej linii.

Sprawdź, czy masz przynajmniej 1 spację na początku linii.
Jeżeli linia się zaczyna od literki, QA (i XASM chyba też) traktuje to jako etykietę dla tej linii.
A w czym właściwie piszesz? QA? XASM? inne magiczne coś?

poza tym, widziałeś toto:
  http://atariarea.histeria.pl/artykuly.php
  http://atariarea.histeria.pl/artykuly.p … &id=27
?

powodzenia!

: 404. Stopka not found

9

no i pewnie jeszcze by sie przydalo jakies org.

10

lewis: org też nie szło. Nic nie szło.
eru: kurs jest pod qasm - próbowałem kompilować i pod win32, i pod atarowskim edytorem, i... błędy przy każdej linii. Co do spacji na początku - nie wykryłem nic takiego.
mc gyver: # do etykiet jest według J.B.W... Różnice widzę też w:

lda $68 - wprowadzi do akumulatora zawartość komórki pamięci o adresie $68

A tam instruował pisać poprostu lda 68 - bez $. To samo z wprowadzaniem bezpośrednim liczb. Sprawdź to:


*--- deklaracje
ZEGAR  EQU  20
RAMKA  EQU 712
KLAW   EQU 764
NIC    EQU 255

*--- zapamiętaj kolor
        LDX RAMKA

*--- mrugaj ramką
MRUGAJ  LDA ZEGAR
        STA RAMKA
*--- sprawdź klawisz
        LDY KLAW
        INY (255+1=0)
        BEQ MRUGAJ
*--- skasuj klawisz
        LDY #NIC
       
Tego nie kapuję. W przypadku zmiennej RAMKA ładowana jest do rejestru bez #. Z kolei zmienna NIC już ze znakiem. Kurs jest tutaj: http://horror.mirage.com.pl/pixel/4_91/4_91_6502.html

11

Tfu... nie o RAMKA chodzi, tylko o KLAW.

12

A tam instruował pisać poprostu lda 68 - bez $

lda 68  ; wpisuje do akumulatora zawartosc komorki 68
lda $68 ; wpisuje do akumulatora zawartosc komorki 44

Tego nie kapuję. W przypadku zmiennej RAMKA ładowana jest do rejestru bez #. Z kolei zmienna NIC już ze znakiem.

Bo ramka to jest adres komorki, a NIC to jest liczba

LDA NIC  ; wgra do akumulatora zawartosc komorki 255
LDA #NIC ; wgra do akumulatora liczbe 255
Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

13

przeczytaj najpierw to:
  http://atariarea.histeria.pl/artykuly.p … &id=28
zanim zaczniesz pytać dalej.
rozdział 'RODZAJE ADRESOWANIA'

a co do $ - zajrzyj do części pierwszej:
  http://atariarea.histeria.pl/artykuly.p … &id=27
do podrozdziału 'SYSTEMY LICZBOWE' i 'REPREZENTACJA LICZB W ASSEMBLERZE'

jak mówi przysłowie
Read The Friendly Manual

aha, i wklej kawałek kodu w znacznikach 'code' to zobaczymy lepiej o so chozi

PS. niesamowite - odsyłam ludzi do pracy TeBe'go :D

: 404. Stopka not found

14

No, bebuś sie napracowal, jakby tak jeszcze przesylal swoje arty w HTML albo chociaz w TXT, miast w WORDML`u ;)

Działający kod powinienen wyglądać mniej wiecej tak:

       OPT 21
ZEGAR  EQU 20
RAMKA  EQU 712
KLAW   EQU 764
NIC    EQU 255

       ORG $2000

*--- zapamiętaj kolor
START  LDX RAMKA

*--- mrugaj ramką
MRUGAJ LDA ZEGAR
       STA RAMKA
       
*--- sprawdź klawisz
       LDY KLAW
       INY
       BEQ MRUGAJ
       
*--- skasuj klawisz
       LDY #NIC
       STX RAMKA
       RTS

       ORG $2E0
       DTA A(START)

       END

Powinno zadziałać pod QA ;) Koderem nie jestem wiec w razie czego poprawcie ;)

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

15

Skladniowo dobrze, ale po co robic

LDY #NIC

skoro pozniej z tym nic nie robisz? Przydaloby sie jeszcze

STY KLAW

pod koniec.

16

lda 68  ; wpisuje do akumulatora zawartosc komorki 68
lda $68 ; wpisuje do akumulatora zawartosc komorki 44

:)
$68 = 104

17

A może lepiej zabrać się za Action! ? ;)