Mihai Sprinceana
Un forum de programare cu de toate. Va astept sa va inscrieti si sa deveniti moderatori. Oricine este binevenit aici sa se inscrie si sa aiba acces la informatie free! Fiecare este liber sa adauge proiecte programe free etc. Ajutati acest forum sa devina o comunitate puternica unde fiecare invata de la fiecare! Tot ce trebuie sa faceti este sa va inregistrati si fiecare contributie se poate dovedi utila in timp! Forumul este free informatia free dk aveti timp liber ajutati si pe ceilalti si invatati si voi in acelasi timp! Haideti sa facem ceva pt.a ne ajuta intre noi! Cititi regulament postare forum inainte de a posta!
Lista Forumurilor Pe Tematici
Mihai Sprinceana | Inregistrare | Login

POZE MIHAI SPRINCEANA

Nu sunteti logat.
Nou pe simpatie:
amy70 la Simpatie.ro
Femeie
24 ani
Bucuresti
cauta Barbat
31 - 59 ani
Mihai Sprinceana / Assembler 8051 / Suma a doua numere (pe16biti avand registrii de 8biti)(adr.directa)  
Autor
Mesaj Pagini: 1
andreeamp
Moderator

Inregistrat: acum 18 ani
Postari: 27
;foloseste adresarea directa

Varianta1 :
$mod51
;partea de declaratii
nr1 l DATA 00h; declaratie variabila nr1 l in locatia de memorie 00h, iar DATA este o directiva
nr1 h DATA 01h; declaratie variabila nr1 h in locatia de memorie 01h, iar DATA este o directiva
nr2 l DATA 02h; declaratie variabila nr2 l in locatia de memorie 02h, iar DATA este o directiva
nr2 h DATA 03h; declaratie variabila nr2 h in locatia de memorie 03h, iar DATA este o directiva
suma l DATA 04h ; declaratie variabila suma l in locatia de memorie 04h, iar DATA este o directiva
suma h DATA 05h; declaratie variabila suma h in locatia de memorie 05h, iar DATA este o directive
     main: ;eticheta main care marcheaza inceperea fluxului de instr si terminate cu label-ul END
MOV nr1 l, #FFh ;se muta in variabila nr1 l folosind adresarea imediata valoarea FFH
MOV nr1 h,#01h ;se muta in variabila nr1 h folosind adresarea imediata valoarea 01h
MOV nr2 l,#02h ;se muta in variabila nr2 l folosind adresarea imediata(#)valoarea 02h
MOV nr2 h,#03h ;se muta in variabila nr2 h folosind adresarea imediata(#)valoarea 03h
MOV A,nr1 l ; adresare directa- muta ceea ce se afla in variabila nr1l in registrul acumulator
ADD A,nr2 l ;aduna nr2 l la ceea ce se afla in registrul acumulator
MOV suml,A  ;ceea ce se afla in accumulator(nr1l+nr2l) este mutat in variabila suml
MOV A,nr1h
ADDC A,nr2h ;ADDC –Add with Carry  nr2h la ceea ce exista deja in registrul accumulator A
MOV sumh,A A  ;ceea ce se afla in accumulator(nr1h+nr2h) este mutat in variabila sumh
END ;directiva ce marcheaza terminarea programului in limbaj de asamblare





Varianta2 :
$mod51
var1h DATA 01h
var1l DATA 02h
var2h DATA 03h
var2l DATA 04h
rezh DATA 05h
rezl DATA 06h

main:
    mov var1h,#02h
    mov var1l,#03h
    mov var2h,#05h
    mov var2l,#02h
    mov A,var1l
    ADD A,var2l
    mov rezl,A
    mov A,var1h
    ADDC A,var2h
    mov rezh,A

END


pus acum 17 ani
   
Pagini: 1  

Mergi la