Sunteți pe pagina 1din 6

Ministerul Educatiei al Republicii Moldova

Universitatea Tehnică a Moldovei

Facultatea Calculatoare Informatica si Microelectronica

Catedra Microelectronica si Ingineria Biomedicala

RAPORT
Lucrare de laborator Nr.2
la Arhitectura Calculatoarelor
Tema: Programarea microprocesorului I8086

A efectuat: st. gr.

Chișinău 2015

Scopul lucrării

a) Elemente de limbaj de asamblare.


b) Instructiuni de transfer.
c) Instructiuni aritmetice.

Desfasurarea lucrarii

De comentat programele ce urmeaza in continuare:


1)Calculul sumei in dubla precizie a variabilelor de tip cuvant a si b. Rezultatul este plasat in
varibila c.

; multi-segment executable file template.

data segment
a dw 0a46fh
b dw 0dc89h
c dw ?, ?

pkey db "press any key...$"


ends

stack segment
dw 128 dup(0)
ends

code segment
start:
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax

mov ax, a;
mov dx, 0
add ax, b;
mov c, ax;
mov [c+2], dx
MOV AH, 4CH
INT 21H
lea dx, pkey
mov ah, 9
int 21h ; output string at ds:dx

; wait for any key....


mov ah, 1
int 21h

mov ax, 4c00h ; exit to operating system.


int 21h
ends

end start ; set entry point and stop the assembler.


2) Program de transformare a unui caracter litera mica citit de la tastatura in caracter litera mare afisat pe
ecran.

data segment//defineste un segment de date numit data


numeprog db 25 dup(0ah),'Transformare caracter$'//declara variabila numerprog de tip sir de
octeti

citire db 2 dup(0ah),0dh,' Introduceti litera mica $''//declara variabila citire de tip sir de
octeti

afisare db 2 dup(0ah),0dh,' Litera mare este: $''//declara variabila afisare de tip sir de octeti

data ends//sfirsitul segmentului data

assume cs:cod, ds:data//segment de cod va avea adrea cs iar cel de date :ds
cod segment//// defineste un segment de cod numit cod
start: // eticheta de inceput a codului executabil

mov ax, data//ax=data


mov ds, ax//ds=ax rezulta ds=data
mov dx, offset numeprog ; afisare sir caractere//dx=deplasarea numerprog =25
mov ah, 9 ; (nume program)//ah=9
int 21h//intreruperea secventei
mov dx, offset citire ; afisare sir caractere//dx=deplasare citire=2
mov ah, 9 ; (mesaj citire) )//ah=9
int 21h//intreruperea secventei
mov ah, 1 ; citire caracter cu ecou pe ecran (litera mica)//ah=1
int 21h//intreruperea secventei
sub al, 20h ; conversie litera mica -> litera mare//al=al-20h
mov bl, al//bl=al rezulta bl=al-20h
mov dx, offset afisare ; afisare sir caractere// dx=deplasare afisare=2
mov ah, 9 ; (mesaj afisare)//ah=9
int 21h//intreruperea secventei
mov dl, bl//dl=bl rezulta dl=al-20h
mov ah, 2 ; afisare caracter//ah=2
int 21h//intreruperea secventei ; (litera mare)
mov ah, 8 ; citire caracter fara ecou pe//ah=8
int 21h//intreruperea secventei ; ecran (Enter)
mov ah, 4ch ; exit// intoarcerea controlului carte sistema de operare
int 21h//intreruperea secventei
cod ends////sfirsitul segmentului de cod
end start//eticheta de sfirsit a codului

3. Program de transformare a unui caracter litera mare citit de la tastatura in caracter litera mica afisat pe
ecran.

; multi-segment executable file template.

data segment

numeprog db 25 dup(0ah),

citire db 2 dup(0ah),0dh,
afisare db 2 dup(0ah),0dh,

pkey db "Transformare caracter: introduceti litera mica $"

ends

stack segment

dw 128 dup(0)

ends

code segment

start:

; set segment registers:

mov ax, data

mov ds, ax

mov es, ax

mov ax, data;ax=data

mov ds, ax;ds=ax rezulta ds=data

mov dx, offset numeprog ; afisare sir caractere//dx=deplasarea numerprog =25

mov ah, 9 ; (nume program) //ah=9

int 21h;intreruperea secventei

mov dx, offset citire ; afisare sir caractere//dx=deplasare citire=2

mov ah, 9 ; (mesaj citire) )//ah=9

int 21h;intreruperea secventei

mov ah, 1 ; citire caracter cu ecou pe ecran (litera mare) )//ah=1

int 21h;intreruperea secventei

add al, 20h ; conversie litera mare -> litera mica//al=al+20h

mov bl, al;bl=al rezulta bl=al+20h

mov dx, offset afisare ; afisare sir caractere// dx=deplasare afisare=2

mov ah, 9 ; (mesaj afisare) )//ah=9

int 21h;intreruperea secventei

mov dl, bl;dl=bl rezulta dl=al+20h


mov ah, 2 ; afisare caracter//ah=2

int 21h;intreruperea secventei ; (litera mica)

mov ah, 8 ; citire caracter fara ecou pe//ah=8

int 21h;intreruperea secventei ; ecran (Enter)

mov ah, 4ch ; exit// intoarcerea controlului carte sistema de operare

int 21h;intreruperea secventei cod

end start;eticheta de sfirsit a codului

lea dx, pkey

mov ah, 9

int 21h ; output string at ds:dx

; wait for any key....

mov ah, 1

int 21h

mov ax, 4c00h ; exit to operating system.

int 21h

ends

end start ; set entry point and stop the assembler.

1.

2.
3.

Concluzie:
In aceasta lucrare de laborator am facut cunostinta cu elementele limbajului de asamblare (eticheta,codul
operatie,operanzii de tip imediat,operatorii tasm,directivele) cu instructiunile de transfer(MOV,XCHG,IN OUT) si cu
instructiuni aritmetice(ADD,ADC,SUB SBB,MUL,DIV,INC,DEC,NEG).Am comentat programele propuse si am
urmarit executarea lor.

S-ar putea să vă placă și

  • Lab - 5
    Lab - 5
    Document4 pagini
    Lab - 5
    Iura Cazacu
    Încă nu există evaluări
  • Server
    Server
    Document1 pagină
    Server
    Iura Cazacu
    Încă nu există evaluări
  • Lab Broasca
    Lab Broasca
    Document6 pagini
    Lab Broasca
    Iura Cazacu
    Încă nu există evaluări
  • Lab nr.2 Tensiune Superficiala
    Lab nr.2 Tensiune Superficiala
    Document5 pagini
    Lab nr.2 Tensiune Superficiala
    Iura Cazacu
    Încă nu există evaluări
  • Imulite
    Imulite
    Document1 pagină
    Imulite
    Iura Cazacu
    Încă nu există evaluări
  • Lab 2 Cazacu POO
    Lab 2 Cazacu POO
    Document5 pagini
    Lab 2 Cazacu POO
    Iura Cazacu
    Încă nu există evaluări
  • Me 8
    Me 8
    Document3 pagini
    Me 8
    Iura Cazacu
    Încă nu există evaluări
  • Materiale
    Materiale
    Document1 pagină
    Materiale
    Iura Cazacu
    Încă nu există evaluări
  • Chestionar Evaluarea II DMCO PDF
    Chestionar Evaluarea II DMCO PDF
    Document1 pagină
    Chestionar Evaluarea II DMCO PDF
    Iura Cazacu
    Încă nu există evaluări
  • Lab 1 Cazacu POO
    Lab 1 Cazacu POO
    Document3 pagini
    Lab 1 Cazacu POO
    Iura Cazacu
    Încă nu există evaluări
  • Lab 2 Cazacu POO
    Lab 2 Cazacu POO
    Document5 pagini
    Lab 2 Cazacu POO
    Iura Cazacu
    Încă nu există evaluări
  • Lab 6 Cazacu POO
    Lab 6 Cazacu POO
    Document5 pagini
    Lab 6 Cazacu POO
    Iura Cazacu
    Încă nu există evaluări
  • Lab 5 Cazacu POO
    Lab 5 Cazacu POO
    Document4 pagini
    Lab 5 Cazacu POO
    Iura Cazacu
    Încă nu există evaluări
  • Lab 7 Cazacu POO
    Lab 7 Cazacu POO
    Document8 pagini
    Lab 7 Cazacu POO
    Iura Cazacu
    Încă nu există evaluări
  • Lab 1 Cazacu POO
    Lab 1 Cazacu POO
    Document3 pagini
    Lab 1 Cazacu POO
    Iura Cazacu
    Încă nu există evaluări
  • Lab4 AC
    Lab4 AC
    Document5 pagini
    Lab4 AC
    Iura Cazacu
    Încă nu există evaluări