Autor Wątek: Z języka A do B lub z B do A  (Przeczytany 7906 razy)

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Z języka A do B lub z B do A
« dnia: 2014.10.18, 05:41:02 »
Pomóżcie, bo stoję w martwym punkcie.
Jak napisać w assemblerze (A to rejestr A, w nim znajduje się odczytana z tabeli wartość, tabela nie może być zmodyfikowana)
IF A>11 THEN LET A=A-12
« Ostatnia zmiana: 2014.10.18, 06:54:11 wysłana przez Abrimaal »
AY Music, ULA plus.

pear

  • *****
  • Wiadomości: 5511
  • Miejsce pobytu:
    Będzin
  • Z80 only
Odp: Z języka A do B lub z B do A
« Odpowiedź #1 dnia: 2014.10.18, 08:36:20 »
Tak po amatorsku :)
    LD  B,12   ;LET B=12
    CP  B      ;IF A>=B
    JP  NC,END
    SUB B   ;THEN LET A=A-B
END:
« Ostatnia zmiana: 2014.10.18, 12:26:47 wysłana przez pear »
ZX/Enterprise/CPC/Robotron/C128D

trojacek

  • *****
  • Wiadomości: 6846
  • Miejsce pobytu:
    Warszawa
Odp: Z języka A do B lub z B do A
« Odpowiedź #2 dnia: 2014.10.18, 09:27:15 »
Proponowałbym jednak trzymanie się standardu zapisu komend Z80. Skróty i ozdobniki funkcjonujące w jakimś krosasemblerze nie będą rozpoznawane przez natywne asemblery :/. Ja się domyśliłem, o co chodzi, ale początkujący mogą się zastanawiać, z czym to jeść.

pear

  • *****
  • Wiadomości: 5511
  • Miejsce pobytu:
    Będzin
  • Z80 only
Odp: Z języka A do B lub z B do A
« Odpowiedź #3 dnia: 2014.10.18, 11:25:22 »
No i już mnie skarcił :)
Częściej piszę pod 8051 niż Z80 i stąd te różnice.
Już poprawiam.
ZX/Enterprise/CPC/Robotron/C128D

trojacek

  • *****
  • Wiadomości: 6846
  • Miejsce pobytu:
    Warszawa
Odp: Z języka A do B lub z B do A
« Odpowiedź #4 dnia: 2014.10.18, 11:33:38 »
To popraw jeszcze SUB A, B na SUB B ;)
Wiem, czepiam się :)

RafalM

  • *****
  • Wiadomości: 1133
  • Miejsce pobytu:
    Sulejówek
Odp: Z języka A do B lub z B do A
« Odpowiedź #5 dnia: 2014.10.18, 12:00:09 »
Cytuj
Wiem, czepiam się :)

Powiedziałbym że nie do końca.

Jeśli np. w asemblerze Sjasm wpiszemy SUB A,B to zostanie to potraktowane jako makroinstrukcja (jak np PUSH HL,DE,BC ) i zamienione na 2 instrukcje:

SUB A
SUB B


Miałem nieprzyjemność tego doświadczyć, pół godziny szukałem błędu w kodzie ;)

pear

  • *****
  • Wiadomości: 5511
  • Miejsce pobytu:
    Będzin
  • Z80 only
Odp: Z języka A do B lub z B do A
« Odpowiedź #6 dnia: 2014.10.18, 12:28:22 »
Tutaj ma być po prostu SUB B.
A do poprawienia mam w takim razie znacznie więcej ... eh.
ZX/Enterprise/CPC/Robotron/C128D

Abrimaal

  • *****
  • Wiadomości: 965
  • Miejsce pobytu:
    Lemmingrad
  • Zamulator
    • Games for ULA plus
Odp: Z języka A do B lub z B do A
« Odpowiedź #7 dnia: 2014.10.19, 00:43:40 »
Jasne. Rozumiem o co chodzi w JP NC, adres. Na szczęście używam Pasmo  ;)
AY Music, ULA plus.