Princip adresace BAS – Assembler – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Princip adresace BAS – Assembler – Fórum – Programujte.comPrincip adresace BAS – Assembler – Fórum – Programujte.com

 

Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
12. 6. 2013   #1
-
0
-

Dobrý den,

jediné co mi na assembly vadí je spousta dat mezi řádky... Člověk přesune data do jednoho registru a pak je použije naprosto nesouvisející adresou... Takže třeba při interpretaci jazyka BAS se snažím načíst tyto proměnné:

LOADVAR:
  POKEINT J 65426
  PEEK J 65421
  IF J = 0 THEN $E = "Can't load variables, none stored!"
  IF J = 0 THEN GOSUB FATALERR
  J = J + 65198
  PEEKINT Y J
  J = J - 2
  PEEKINT X J
  J = J - 2
  PEEKINT V J
  J = J - 2
  PEEKINT W J
  J = J - 65202
  POKE J 65421
  J = J + 65200
  PEEKINT J J
RETURN

Příslušný JSA:

%DEFINE VARIABLE 1
%DEFINE StringVar 2
%DEFINE NUMBER 3
%DEFINE STRING 4
%DEFINE QUOTE 5
%DEFINE CHAR 6
%DEFINE UNKNOWN 7
%DEFINE LABEL 8
...

System.CMD.Pokeint:

call GetToken

cmp ax, VARIABLE
je .DataIsvar

cmp ax, NUMBER
jne .error

.DataIsNum:

mov si, token
call Int.Parse
jmp .GetSecond


.DataIsvar:

mov al, [token]
call GetVar

.GetSecond:

mov cx, ax

call GetToken

cmp ax, VARIABLE
je .AddressIsVar

cmp ax, NUMBER
jne .error


.AddressIsNum:

mov si, token
call Int.Parse
jmp .SaveData


.AddressIsVar:

mov al, [token]
call GetVar


.SaveData:

mov si, ax
mov [si], cx

jmp MainLoop


.error:

mov si, ErrSyntax
jmp error

Vtip je v tom, že jsem to napsal v jednom souboru - s pomocí internetu. Ale ač se možná budete divit, úspěšně v Assembly aplikuji OOP. Proto jsem z funkcí interpretu BAS udělal objekty - separoval je do souborů a vytvořil vazby předáváním vstupu a vydáváním výstupu. (Tedy toto mne od této práce odtrhlo - bez zkoušek to dokupy nedám.) Jenže to samozřejmě narušilo nějakou meziřádkovou adresaci. Pokus praví, že když to dám do jednoho souboru, opět to jede. Napište, mám-li poslat celý interpret. Jinak BAS jazykem myslím BAS DOSu.
Děkuji.

Nahlásit jako SPAM
IP: 78.136.180.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
12. 6. 2013   #2
-
0
-

Pokud mne nechápete - snažím se udělat Framework - proto OOP. Protože pak je JSA zatraceně čitelnější a pomalu se blíží vyšším jazykům. Takže první věc je, že se to dá použít jako Framework - samotná aplikace jen spravuje existující objekty a sama se k nim přiřadí. A druhá věc - mnohem lepší orientace v kódu. Za to mi to prostě stojí...

Nahlásit jako SPAM
IP: 78.136.180.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 142 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý