Prosty program w assemblerze

0

Witam, mam do zrobienia na zaliczenie program w asmeblerze a nie wiem jak on ma do końca wyglądać. Program ma wypełniać jeden rejestr od 0 do 255 a drugi od 255 do 0. Potem z tych liczb ma wypisać tylko te, u których na zerowym miejscu (w kodzie binarnym) występuję zero lub na trzecim miejscu występuję jedynka. Do tej pory napisałem takie coś:

lxi d,00
    mvi c,ff
petla1:
    mov a,c
    stax d
    inx d
    dcr c
jnz petla1
    lxi h,00
    lxi d,010
    mvi c,0
petla2:
    ori 1000
    cpi 1000
jz petla3               
    mov a,m         
    stax d         
    inx d                   
petla3:
       inx h
       dcr c
jnz petla2
    stax d         
    inx d                   
petla3:
       inx h
       dcr c
jnz petla2 

Oczywiście program nie działa, może ktoś na niego rzucić okiem i go poprawić? Będę naprawdę wdzięczny.

0
1110 & 1 == 0
1111 & 1 == 1

& oznacza bitową operację and
Analogicznie dla 3 miejsca.

0

Czyli petla2 ma wyglądać tak:

petla2:
    ori 1110 & 1 == 0
    cpi 1111 & 1 == 1 

I czy napisałeś to dla procesora 8080 (zapomniałam dopisać, że na takim pracujemy)? No i czy zadziała mi to na sim 8085 (taki jest na uczelni, a nie mam jak sprawdzić w domu bo na win7 mi ten program nie działa).

0

W asmie się tak nie da bo to składnia w stylu C. Mi chodziło o samą zasadę. Masz funkcje and (chyba w 8080, ale nie jestem pewien bo na niego nie pisałem). Dżizast.

1 użytkowników online, w tym zalogowanych: 0, gości: 1