Witam, potrzebuję pomocy, z programem w Assemblerze, niestety w ogóle nie ogarniam tego języka :/ A muszę napisać dla procesora 8080 i 8086 taki oto program

  1. Program przekształca M[a, a+15] w M[b, b+15], gdzie M[x, y] oznacza zawartość obszaru pamięci od adresu x (początek) do adresu y (koniec).

  2. Zadane przekształcenie określone jest za pomocą wyrażeń (zamieszczonych poniżej) dla:
    a) i = 0, 1, … , 15

  3. Jeżeli wyrażenie odwołuje się do komórki spoza obszaru M[a, a+15], to należy przyjąć, że
    B[a−1] = B[a+15]
    B[a−2] = B[a+14]
    ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅
    B[a+16] = B[a]
    B[a+17] = B[a+1]
    ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅

  4. Program nie powinien zmieniać zawartości żadnej komórki spoza obszaru M[b, b+15].

sam program ma spełniać następującą funkcję

H[b+i] ← H[a+i] − H[a+i+1]
L[b+i] ← L[a+i]

B[x] oznacza zawartość komórki pamięci (słowo 8-bitowe) o adresie x,
H[x] oznacza starszą połowę (bity 7−4) słowa B[x],
L[x] oznacza młodszą połowę (bity 3−0) słowa B[x],
D[x] oznacza słowo 16-bitowe B[x+1]B[x], czyli złożenie słów B[x+1] oraz B[x],
Yn[x] oznacza n-ty bit słowa Y[x], gdzie Y ∈ {B, H, L, D}.