Laborator 1 - Tehnici de Programare Assembler

Laborator
9/10 (2 voturi)
Domeniu: Calculatoare
Conține 1 fișier: doc
Pagini : 12 în total
Cuvinte : 3096
Mărime: 21.23KB (arhivat)
Publicat de: Paul Busuioc
Puncte necesare: 0
Profesor îndrumător / Prezentat Profesorului: Cerbu O
UNIVERSITATEA DE STAT DIN MOLDOVA

Extras din laborator

Exemplu 1. Acest program prezinta citeva tehnici de adresare specifice procesoarelor din familia 8086/88:

title ex1

.model small

.stack 10h

.data

alfa dw 3 dup(?)

.code

begin:

mov ax,@data ;Initializarea registrului

mov ds,ax ;de segment ds

mov ax,17 ;Adresarea imediata a operandului sursa care este o constanta zecimala

mov ax,10001b ;Sursa este o constanta binara

mov ax,11h ;sursa este o constanta hexazecimala

mov alfa,ax ;Adresarea directa a operandului destinatie

mov cx,ax ;Interschimba continuturilor

mov ax,bx ;registrelor ax si bx

mov bx,cx

xchg ax,bx ;Acelasi effect cu secventa anterioara

mov si,2

mov alfa[si],ax ;Adresare relative cu registrul si a operandului destinatie

mov si,2

mov bx,offset alfa ;Adresarea imediata a operandului sursa (adresa variabilei alfa) ; ;datorita operandului OFFSET

lea bx,alfa ;Aceasta instructiune are acelasi effect cu cea anterioara cu toate ca sursa este ;adresata direct

mov cx,[bx][si] ;Adresare bazata indexata a sursei

mov cx,alfa+2 ;Aceasta instructiune are acelasi efect cu cea anterioara, sursa fiind insa adresata ;direct

mov cx,alfa[2] ;Notatii echivalente pentru

mov cx,[alfa+2] ;instructiunea anterioara

mov di,4

mov byte ptr [bx][di],55h ;Se va folosi aceasta varianta cind se doreste o adresare la nivel de ;octet

mov byte ptr alfa+4,55h ;Aceasta instructiune are acelasi efect cu cea anteriora, destinatiea fiind insa ;adresata direft. Deci alfa este definit cu DW, operatiea este realizata la nivel de ;octet.

mov si,2

mov bx,3

mov alfa[bx][si],33h ;Adresare bazata indexata relative a operandului destinatie

mov alfa[bx+si],33h ;Notatii echivalente pentru

mov [alfa+bx+si],33h ;instructiunea anterioara.

mov [bx][si].alfa,33h

mov [bx][si]+alfa,33h

end begin

Exemplu 2: Se considera un vector de trei componente fiecare componenta avind dimensiunea de un cuvint. Sa se permute circular elementele vectorului cu o pozitzii la stinga.

title ex2

dosseg

.model small

.stack 10h

.data

vect dw 100h,200h,300h

.code

start: mov ax,@data ;Initializarea registrului

mov ds,ax ;de segment ds

mov dx,vect ;Salvare in dx a primei componente a vectorului

mov ax,vect+2 ;Transfera a doua

mov vect,ax ;componenta in prima

mov ax,vect+4 ;Transfera a treia

mov vect+2,ax ;componenta in a doua

mov vect+4,dx ;Transfera prima componenta in ultima.

end start

Exemplu 3: Sa se incarce intr-o variabula pointer valoarea propriei adrese, sub forma de offset si segment.

title ex3

.model small

.stack 10h

.data

var_ptr dd ?

.code

begin: mov ax,@data ;Initializare registru

mov ds,ax ;de segment ds

mov ax,offset var_ptr ;In ax se muta adresa var_ptr

mov word ptr var_ptr,ax ;Continutul ax se depune pe operandul de tip cuvint

;Operatorul OFFSET selecteaza componenta de offset unei variabile

mov ax,seg var_ptr

mov word ptr var_ptr+2,ax

;Operatorul SEG selecteaza componenta de segment a adresei unei variabile. O transfera in ax dupa care continutul ;ax se depune pe operatorul de tip cuvint dublat.

end begin

Exemplu 4: Se considera un vector de trei componente cuvinte. Sa se introduca valoarea 55h in actetii superiosi ai elementelor vectorului.

title exe4

.model small

.stack 10h

.data

val equ 55h

vect dw 111h,222h,333h

.code

start:

mov ax,@data ;Initializarea registrului

mov ds,ax ;de segment ds

mov al,val ;Se incarca valoarea dorita in registrul al

mov byte ptr vect[1],al ;Se transfera

Preview document

Laborator 1 - Tehnici de Programare Assembler - Pagina 1
Laborator 1 - Tehnici de Programare Assembler - Pagina 2
Laborator 1 - Tehnici de Programare Assembler - Pagina 3
Laborator 1 - Tehnici de Programare Assembler - Pagina 4
Laborator 1 - Tehnici de Programare Assembler - Pagina 5
Laborator 1 - Tehnici de Programare Assembler - Pagina 6
Laborator 1 - Tehnici de Programare Assembler - Pagina 7
Laborator 1 - Tehnici de Programare Assembler - Pagina 8
Laborator 1 - Tehnici de Programare Assembler - Pagina 9
Laborator 1 - Tehnici de Programare Assembler - Pagina 10
Laborator 1 - Tehnici de Programare Assembler - Pagina 11
Laborator 1 - Tehnici de Programare Assembler - Pagina 12

Conținut arhivă zip

  • Laborator 1 - Tehnici de Programare Assembler.doc

Alții au mai descărcat și

Arhitectura calculatoarelor - Intel vs AMD

Rezultatele din testul 3DS Max 7 SPECapc Test Testul alaturat consta in crearea modelelor 3D, modificarea si randarea scripturilor. Conform...

Autentificarea prin semnătură digitală

Introducere O semnatura digitala reprezinta o informatie care il identifica pe expeditorul unui document. Semnatura digitala este creata prin...

Sistem de Prognosticare a Unei Avarii

Acest sistem calculeaza gradul de avariere a unei cladiri în cazul unui cutremur, precum si posibila necesitate a reconstructiei cladirii (partiala...

Firewall - Software de Securizare

Scopul lucrării: Cunoaşterea programelor software de securizare şi configurarea acestora. 1 Definiţi programele firewall Un firewall este o parte...

Matematica Discretă

Scopul lucrării: 1. Studierea metodelor de definire a unui graf : matricea de incidență, matricea de adiacență, liste. 2. Elaborarea unor...

Laborator Limbaj de Asamblare

Elementele limbajului de asamblare si formatul programelor executabile INTRODUCERE Scopul lucrarii este prezentarea formatului instructiunilor în...

Te-ar putea interesa și

Arhitectura calculatoarelor

Scopul lucrării a) Elemente de limbaj de asamblare. b) Instructiuni de transfer. c) Instructiuni aritmetice. Desfășurarea lucrării...

Transferul parametrilor către subrutina ASM - Chemarea subrutinei ASM în C

Scopul lucrării: - Studierea principiilor de scriere a programelor in limbajul C. Definirea functiei main si a functiilor de preluare a...

Microprocesoare

Scopul lucrării: De a se lua cunostinta cu modul de programare asembler prin efectuarea unui program simplu Sarcina lucrarii: Să se proiecteze un...

Tastatura 4x4. mixarea limbajului C cu Assembler

Scopul lucrarii: 1) Initierea in programarea microconttrolere in limbajul C. 2) Programe cu intreruperi in limbajul C. 3) Mixarea codului...

Programarea în limbaj de asamblare a microprocesoarelor

Lucrarea de laborator nr.1 Utilizarea macroasamblorului TASM şi a depanatorului TD Etapele dezvoltării unui program în limbajul de asamblare...

Ai nevoie de altceva?