Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 9 odgovora
  • 5.623 pregleda

Najnovija ↓

zadatak u asembleru za intel 8085 14.07.2006. u 09:31 · pre 247 meseci #1
pozdrav raja. imam problem oko razumjevanja rjesenja jednog zadatka iz asemblera mikroprocesora 8085. napisat cu zadatak, i rjesenje, i dio koji ne razumijem.

ZADATAK: U memoriji mikroracunara nalazi se niz od 300 podataka pocev od adrese 0906h (h je u indexu ;)). izvrsiti sabiranje podataka koji imaju neparan broj jedinica i odrediti broj takvih podataka. rezultat smjestiti na dvije lokacije pocev od 0000h. Podaci su takvi da je njihova suma manja od 255. program pocinje od adrese 0020h.

RJESENJE ZADATKA:
NAME ZAD
ORG 0020H
LXI B,012Ch
LXI H,0906h
MVI D,00h
MVI E,00h
L1: MOV A,M
JPE L2
INR D
ADD E
MOV E,A
L2: INX H
DCX B
MOV A,B
ORA C
JNZ L1
MOV A,E
STA 0000h
MOV A,D
STA 0001h
HLT

zanima me, sta radi dio koda
MOV A,B
ORA C
JNZ L1
ORA C je logicko "ILI" akumulatora i registra C
Nadam se, da cete shvatiti sintaxu programa, jer ni sam ne znam da li je to standradna sintaxa za ovaj procesor, ili je neki pseudo kod. Unaprijed vam hvala!!
Potpis
MyCoNfa:
CPU: AMD Phenom II X4 965 3,4GHz BOX
Maticna:Asus M4A89GTD PRO
RAM: Corsair 4x2GB 1600MHz, 9-9-9-24
Grafa: Diamond ATI 5870 1GB
HDD:3xWD 320GB AAKS, stripe raid
DVD/RW:LG,SATA
SilverStone SST-ST50F 500W
CoolerMaster CM690
LG 24" 2453TQ-PF
Tastatura A4Tech X7 G800
Stakor: A4Tech X7-755FS
Re: zadatak u asembleru za intel 8085 14.07.2006. u 18:13 · pre 247 meseci #3
da, ali sta mu je u registru C?? znam da je mu je B brojac podataka kojeg smjesta u akumulator (MOV A,B), i da se smanjuje stalno i moguce je da bude nula. ali sto dira C, sta je u njemu? kako se ono mijenja?cime ga mijenja?
Potpis
MyCoNfa:
CPU: AMD Phenom II X4 965 3,4GHz BOX
Maticna:Asus M4A89GTD PRO
RAM: Corsair 4x2GB 1600MHz, 9-9-9-24
Grafa: Diamond ATI 5870 1GB
HDD:3xWD 320GB AAKS, stripe raid
DVD/RW:LG,SATA
SilverStone SST-ST50F 500W
CoolerMaster CM690
LG 24" 2453TQ-PF
Tastatura A4Tech X7 G800
Stakor: A4Tech X7-755FS
Re: zadatak u asembleru za intel 8085 14.07.2006. u 22:05 · pre 247 meseci #4
Citat:
Kolins Balaban: 
zanima me, sta radi dio koda
MOV A,B
ORA C
JNZ L1
ORA C je logicko "ILI" akumulatora i registra C
Nadam se, da cete shvatiti sintaxu programa, jer ni sam ne znam da li je to standradna sintaxa za ovaj procesor, ili je neki pseudo kod. Unaprijed vam hvala!!


Koliko ja vidim registar C se nigde pre toga ne koristi u programu... Proveri da li je to resenje tacno.

Potpis
-I know UNIX, PASCAL, C, FORTRAN,
COBOL, and nineteen other high-tech
words.
Re: zadatak u asembleru za intel 8085 15.07.2006. u 11:13 · pre 247 meseci #5
hmmmm nisi u pravu Mikky, koristi registar C. u 8085 su registri osmobitni, a on mora ucitati broj podataka, tj 300=012Ch, koji je veci od 255. zato to ucitava u registarski par (B,C), (koji je tada sesnaestnobitni) i to ovako 01--->(B) i 2C---->(C) ako sam dobro shvatio. to radi komandom LXI B, 012Ch. ali opet ne kontam onaj dio koda :(((
Potpis
MyCoNfa:
CPU: AMD Phenom II X4 965 3,4GHz BOX
Maticna:Asus M4A89GTD PRO
RAM: Corsair 4x2GB 1600MHz, 9-9-9-24
Grafa: Diamond ATI 5870 1GB
HDD:3xWD 320GB AAKS, stripe raid
DVD/RW:LG,SATA
SilverStone SST-ST50F 500W
CoolerMaster CM690
LG 24" 2453TQ-PF
Tastatura A4Tech X7 G800
Stakor: A4Tech X7-755FS
Re: zadatak u asembleru za intel 8085 16.07.2006. u 22:28 · pre 247 meseci #6
pa zar niko da pomogne ovdje smrc smrc :(((( dajte ljudi molim vas
Potpis
MyCoNfa:
CPU: AMD Phenom II X4 965 3,4GHz BOX
Maticna:Asus M4A89GTD PRO
RAM: Corsair 4x2GB 1600MHz, 9-9-9-24
Grafa: Diamond ATI 5870 1GB
HDD:3xWD 320GB AAKS, stripe raid
DVD/RW:LG,SATA
SilverStone SST-ST50F 500W
CoolerMaster CM690
LG 24" 2453TQ-PF
Tastatura A4Tech X7 G800
Stakor: A4Tech X7-755FS
Re: zadatak u asembleru za intel 8085 29.07.2007. u 20:46 · pre 234 meseca
izmenjeno 1 put, poslednji put Boro7 29.07.2007. u 22:58
  1. Boro729.07.2007. u 22:58zapis iz teksta poruke
#8
dcx b ; dekrementira registarski par (B,C) tj. (B,C)-1->(B,C)

Code:

;zanima me, sta radi dio koda 
MOV A,B
ORA C
JNZ L1


proverava da li je brojac na nuli
(posle naredbe ora c zastavica zero bice Z=1 akko su registri b(koji se premesta u a, da bi se izvrsila logicka ili operacija)=0000 0000 i c=0000 0000, tj. ako je brojac bc=0)

Kada imas brojac koji je veci od 255 (decimalno) uvek moras proveru brojaca realizovati na taj nacin (tj. ne moze samo
dcx b
jnz l1)

Dobro pitanje jeste zasto se zastavica zero ne menja posle naredbe
dcx b
u slucaju kada je bc=0 (tj. bc=1 pre naredbe dcx b)?
Re: zadatak u asembleru za intel 8085 03.12.2007. u 00:55 · pre 230 meseci #9
Vidim da je rec o skokovima i uporedjivanju pa me interesuje kako da resim probelem veszan za stringove koji ce ispisivati samo [si+2] %2==0 naravno ovo samo izgled pomislim da treba ovako...
Evo i primera znaci zadatak je glasio da na osnovu unetog stinga program upita korisnika da mu se ispise taj string u obrnutom redosledu tj. 123456 kao 654321 ili kao sto je napisan pr. 123456, treca stavka bi bila da se ispisu svi neparni elementi stringa tj. 135 i na kraju problem koji nisam uspeo resit da se ispisu parni elemnti tj. 246.

to sve sam pokusao odraditi preko procedure:

Code:


    parni proc
    
            mov ah,09h
            lea dx,porukaP
            int 21h
            lea si, bafer
            
    Par_petlja:
            
            mov bx,[si+2]
            cmp bl,'$'
            je Par_kraj_reda
            mov dx, bx
            mov ah,02h
            int 21h
            
                                 
            inc si
            inc si
            mov bx,[si+1]
            cmp bl,'$'
            je Nep_kraj_reda
            inc si
            jmp Nep_petlja
            
    Par_kraj_reda:
            ret 
    parni endp



Gde Gresim!!!
Ovde za uneti string 123456 kao rezultat parnih daje 146 umesto 246!
Potpis
SAFF
Alles ist in ordnung...
http://www.esad.tk
Re: zadatak u asembleru za intel 8085 04.12.2007. u 13:35 · pre 230 meseci #10
Evo resenja pa mozda nekom zatreba:

Code:

parni  proc
          
          mov ah,09h
          mov dx,offset porukaP
          int 21h
          lea si,bafer
    
    Par_petlja:    
        
        mov bx, [si+2]
        cmp bl, '$'
        je Par_kraj_reda
        
        inc si
        mov bx,[si+2]
        cmp bl, '$'
        je Par_kraj_reda
        
        mov dx,bx
        mov ah,02h
        int 21h    
        
        inc si
        jmp Par_petlja
        
    Par_kraj_reda:
        ret
    parni endp

Potpis
SAFF
Alles ist in ordnung...
http://www.esad.tk
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme