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

AutoCad

APERTURE - controleazã mãrimea cursorului selector, caracteristic modului object snap. ARC - traseazã un arc de cerc de orice dimensiune. A -...

Biblioteca de Șabloane Standard

Biblioteca de Sabloane Standard (STL) asigura o abstractizare standardizata a datelor prin intermediul containerelor si o abstractizare procedurala...

Clase Derivate

1. Clase derivate. Prin mostenire, atributele unei clase de baza sunt transmise unor clase derivate. Derivarea permite definirea unor clase noi,...

Clase în Java

Clase pentru miniaplicatii Miniaplicatiile constituie extensii ale unei clase deja existente java.applet.Applet. Structura clasei unui applet...

Clase

1. Programare procedurala –Programare orientata pe obiecte. Limbajul C, ca si Pascal, utilizeaza modelul programarii structurate procedurale, care...

Comunicații internet

2.1. Stilurile caracterelor {n sfirsit pagina dvs. contine ceva, chiar daca este vorba numai de un nume. Vom analiza in continuare elementele de...

Crearea unei aplicații independente în Java

Toate aplicatiile Java contin o metoda main(), spre deosebire de miniaplicatii. class FirstApp { public static void main( String argsst) {...

Curs Excel

Deplasarea prin foi Deplasarea dintr-o foaie in alta se face cu clic cu mouse-ul pe eticheta foii dorite. Deplasarea prin celule Va puteti...

Te-ar putea interesa și

Medii de Programare Pentru Microcontrollere

1.TEMA 1. Deplasarea unui text dat pe afişor, care să conțină minim 8 caractere, la alegere, cu posibilitatea de comandă de pe tastatura unui PC...

Arhitectura calculatoarelor - instrucțiuni logice

Introducere Limbajul de asamblare : avantaje si dezavantaje in folosirea lui Desi este unul dintre cele mai vechi limbaje de programare, limbajul...

Programare în Limbaj de Asamblare

1. Structura unui calculator numeric de tip John von Neumann 2. Ce sunt asambloarele? Descrieti etapele procesului de asamblare. Asambloarele...

Arhitectura calculatoarelor

ARHITECTURA CALCULATOARELOR 2003/2004 CURSUL 1 CAPITOLUL 1: Stocarea datelor 1.1 Stocarea bitilor Calculatoarele utilizate în prezent...

Arhitectura calculatoarelor

1. INTRODUCERE OBIECTIVE Principalele obiective ale acestui capitol introductiv sunt urmatoarele: caracterizarea notiunii de informatie,...

Programarea Microcontrollerelor în Limbaj de Asamblare

1. Denumirea lucrarii: Programarea microcontrollerelor in limbaj de asamblare 2. Obiectivele lucrarii - Familiarizarea cu un cross assembler -...

Limbaje de Asamblare

Introducere. Necesitatea programării în limbaje de asamblare Modalităţile de programare s-au schimbat imens de la inventarea calculatorului, în...

Informatică cu Aplicații în psiho-pedagogie

În loc de introducere Despre calculatoare şi utilizarea acestora s-au scris şi se vor mai scrie încă multe cărţi. Unele pentru începători, altele...

Ai nevoie de altceva?