Limbaje de Asamblare

Curs
7.3/10 (3 voturi)
Domeniu: Calculatoare
Conține 1 fișier: doc
Pagini : 78 în total
Cuvinte : 10463
Mărime: 53.12KB (arhivat)
Cost: Gratis

Extras din document

maatrici

.model small

.data

maxlin2 db ?

maxdg db ?

sumadg db ?

mat db 4,5,7,9

db 2,6,3,0

db 0,6,3,2

db 0,8,9,1

.code

mov ax,@data ;initializare segment

mov ds,ax ;de date

lea di,maxlin2 ;pune in di deplasamentul lui maxlin2, ca sa stim unde

sa urmarim variabilele in td (ds:[di])

mov cx,4 ;initializare registru cx pt. bucla

mov maxdg,0 ;initializam maxdg cu 0 (maximul este 0 momentan)

maxd: mov si,byte ptr cx ;punem in si valoarea din cx si decrementam

dec si ;in acest fel, nu ne mai preocupa parcurgerea liniei

mov bx,si ;bx ia valoarea si (suntem pe diagonala principala)

mov ax,4 ;in registrul ax punem 4, in vederea inmultirii cu bx (cu bx

selectam linia si cu si coloana)

mul bx ;aici inmultim, rezultatul este depus de CPU in ax

mov bx,ax ;copiem ax in bx

mov dl,[bx].mat[si] ;punem elementul curent de la adresa ds:[bx+offset

mat+si] in dl

cmp dl,maxdg ;comparam elementul curent cu maximul de pe diagonala

jbe cont1 ;daca el. curent <=max nu facem nimic, reitereaza bucla

mov maxdg,dl ;altfel, punem in maxdg valoarea elementului curent

cont1: loop maxd

mov cx,4 ;initializare registru cx pt. bucla

mov sumadg,0 ;initializam suma cu 0

sumd: mov si,byte ptr cx ;punem in si valoarea din cx si decrementam

dec si ;in acest fel, nu ne mai preocupa parcurgerea liniei

mov bx,3 ;in bx punem valoarea 3

sub bx,si ;dupa care il vom scade pe si din bx (formula elem. de pe

diag secundara)

mov ax,4 ;in registrul ax punem 4, in vederea inmultirii cu bx (cu bx

selectam linia si cu si coloana)

mul bx ;aici inmultim, rezultatul este depus de CPU in ax

mov bx,ax ;copiem ax in bx

mov dl,sumadg ;copiem valoarea variabilei sumadg, din memorie in

registrul dl

add dl,[bx].mat[si] ;adunam dl cu elementul curent de la adresa

ds:[bx+offset mat+si]; CPU pune rezultatul in primul operand

mov sumadg,dl ;punem noua suma inapoi in memorie (la adresa

ds:[offset sumdg])

cont2: loop sumd

mov cx,4 ;initializare registru cx pt. bucla (4=lungime linie)

schimb: mov si,byte ptr cx ;punem in si valoarea din cx si decrementam

dec si ;in acest fel, nu ne mai preocupa parcurgerea liniei

mov bx,0 ;initializam bx cu 0 (referim prima linie)

mov dl,[bx].mat[si] ;punem in dl elementul de la adresa ds:[offset

mat+bx+si]

mov bx,12 ;initializam bx cu 12 (referim ultima linie, primele

3x4=12)

mov dh,[bx].mat[si] ;punem in dh elementul de la adresa ds:[offset

mat+bx+si]

xchg dl, dh ;interschimbam dl cu dh

mov [bx].mat[si],dh ;punem pe ultima linie noile valori

mov bx,0 ;selectam prima linie

mov [bx].mat[si],dl ;punem pe prima linie noile valori

loop schimb

mov cx,4 ;initializare registru cx pt. bucla

mov bx,4 ;initializam bx cu 4 (referim linia a doua)

mov maxlin2,0 ;initializam max cu 0 (maximul este 0 momentan)

maxl2: mov si,byte ptr cx ;punem in si valoarea din cx si decrementam

dec si ;in acest fel, nu ne mai preocupa parcurgerea liniei

mov dl,[bx].mat[si] ;punem elementul curent de pe linia 2 in dl

cmp dl,maxlin2 ;comparam elementul curent cu maximul

jbe cont3 ;daca el. curent <=max nu facem nimic, reitereaza bucla

mov maxlin2,dl ;altfel, punem in max valoarea elementului curent

cont3: loop maxl2

mov ax,4c00h

int 21h

end

Preview document

Limbaje de Asamblare - Pagina 1
Limbaje de Asamblare - Pagina 2
Limbaje de Asamblare - Pagina 3
Limbaje de Asamblare - Pagina 4
Limbaje de Asamblare - Pagina 5
Limbaje de Asamblare - Pagina 6
Limbaje de Asamblare - Pagina 7
Limbaje de Asamblare - Pagina 8
Limbaje de Asamblare - Pagina 9
Limbaje de Asamblare - Pagina 10
Limbaje de Asamblare - Pagina 11
Limbaje de Asamblare - Pagina 12
Limbaje de Asamblare - Pagina 13
Limbaje de Asamblare - Pagina 14
Limbaje de Asamblare - Pagina 15
Limbaje de Asamblare - Pagina 16
Limbaje de Asamblare - Pagina 17
Limbaje de Asamblare - Pagina 18
Limbaje de Asamblare - Pagina 19
Limbaje de Asamblare - Pagina 20
Limbaje de Asamblare - Pagina 21
Limbaje de Asamblare - Pagina 22
Limbaje de Asamblare - Pagina 23
Limbaje de Asamblare - Pagina 24
Limbaje de Asamblare - Pagina 25
Limbaje de Asamblare - Pagina 26
Limbaje de Asamblare - Pagina 27
Limbaje de Asamblare - Pagina 28
Limbaje de Asamblare - Pagina 29
Limbaje de Asamblare - Pagina 30
Limbaje de Asamblare - Pagina 31
Limbaje de Asamblare - Pagina 32
Limbaje de Asamblare - Pagina 33
Limbaje de Asamblare - Pagina 34
Limbaje de Asamblare - Pagina 35
Limbaje de Asamblare - Pagina 36
Limbaje de Asamblare - Pagina 37
Limbaje de Asamblare - Pagina 38
Limbaje de Asamblare - Pagina 39
Limbaje de Asamblare - Pagina 40
Limbaje de Asamblare - Pagina 41
Limbaje de Asamblare - Pagina 42
Limbaje de Asamblare - Pagina 43
Limbaje de Asamblare - Pagina 44
Limbaje de Asamblare - Pagina 45
Limbaje de Asamblare - Pagina 46
Limbaje de Asamblare - Pagina 47
Limbaje de Asamblare - Pagina 48
Limbaje de Asamblare - Pagina 49
Limbaje de Asamblare - Pagina 50
Limbaje de Asamblare - Pagina 51
Limbaje de Asamblare - Pagina 52
Limbaje de Asamblare - Pagina 53
Limbaje de Asamblare - Pagina 54
Limbaje de Asamblare - Pagina 55
Limbaje de Asamblare - Pagina 56
Limbaje de Asamblare - Pagina 57
Limbaje de Asamblare - Pagina 58
Limbaje de Asamblare - Pagina 59
Limbaje de Asamblare - Pagina 60
Limbaje de Asamblare - Pagina 61
Limbaje de Asamblare - Pagina 62
Limbaje de Asamblare - Pagina 63
Limbaje de Asamblare - Pagina 64
Limbaje de Asamblare - Pagina 65
Limbaje de Asamblare - Pagina 66
Limbaje de Asamblare - Pagina 67
Limbaje de Asamblare - Pagina 68
Limbaje de Asamblare - Pagina 69
Limbaje de Asamblare - Pagina 70
Limbaje de Asamblare - Pagina 71
Limbaje de Asamblare - Pagina 72
Limbaje de Asamblare - Pagina 73
Limbaje de Asamblare - Pagina 74
Limbaje de Asamblare - Pagina 75
Limbaje de Asamblare - Pagina 76
Limbaje de Asamblare - Pagina 77
Limbaje de Asamblare - Pagina 78

Conținut arhivă zip

  • Limbaje de Asamblare.doc

Alții au mai descărcat și

Limbaje de Programare

2)prg. care numara caract.unui text care se termina cu punct. .model small .data text db 'text care se terna.' n db ? .code mov ax, @data...

Asamblorul inline Borland Pascal

Acest paragraf trateaza scrierea de cod asamblare in interiorul unui program pascal. In cele ce urmeaza, cunostintele teoretice vor fi introduse...

Programare în Limbaj de Asamblare

Bitii din registrul Flag sunt indicatori de stare care se pozitioneaza functie de rezultatul ultimei operatii aritmetice sau logice si se testeaza...

Retele de Calculatoare

Capitolul 1: Notiuni generale În acest capitol va veti familiariza cu rolul pe care îl joaca calculatorul în cadrul unei retele. Cu cît stiti mai...

Microprocesoare

Stiinta calculatoarelor se caracterizeaza printr-o deosebita dinamicitate. Desi foarte scurta, de aproximativ 60 de ani, istoria stiintei...

Microprocesoare

Z80 contine în plus fata de 8080, ca si componente structurale specifice, registrele de 8 biti A’, F’, B’, C’, D’, E’, H’, L’ numite secundare,...

Prelucrarea Semnalelor - Curs 2

2.4. Aplicatii ale seriilor Fourier Seriile Fourier reprezinta baza întregii discipline a prelucrarii semnalelor. Aplicatiile seriilor Fourier...

Prelucrarea Semnalelor - Curs 4

4.1.1 Esantionarea Vom presupune pentru început ca discretizarea timpului se efectueaza cu pas constant T (esantionare periodica sau uniforma)...

Ai nevoie de altceva?