Sunteți pe pagina 1din 9

Facultatea de Fizic si Inginerie

Catedra: Fizic Aplicat i Informatic


Cursul: Limbaj de Asamblare

Lucrare de laborator Nr. 3


Tema: Fisiere executabile.
Introducrea si afisarea unui caracter.

A efectuat:
Studenta gr 2.2 TI
Dar
ii Olga

A
verificat:

Chiinu 2016
13. Sa se introduca un sir cu lungimea de cel putin 10 caractere. Sa
se copieze din sirul s1 in sirul s2 primele trei caractere de doua ori.
Sa se afiseze la consola ambele siruri.

Varianta I:

.model small

.stack

.data

m1 db 10,13,'Intruduceti un sir:',10,13,'$' ;trecere la rind nou

m2 db 10,13,'Sirul intodus este:',10,13,'$'

m3 db 10,13,'Rezultatul este:',10,13,'$'

;$ indica sfarsitul zonei de afisare

maxlength db 120 ;lungimea maximala a sirului

currenlength db ? ;nr caracterelor introduce fara codul Enter

sir1 db 120 dup(?) ;bufferul in care vor fi amplasate datele introd.

sir2 db 4 dup(?) ;3 octeti pt caractere si 1 pt $ (sfarsit de sir)

.code

mov ax,@data

mov ds,ax

mov ah,9

lea dx,m1

int 21H

mov ah,0ah

lea dx,maxlength

int 21H

mov bl,currenlength ;plasarea in bx a nr de caractere introduse

mov bh,0

mov sir1[BX],'$'

mov ah,9 ;nr functiei se incarca in registrul ah

lea dx,m2

int 21H
mov ah,9

lea dx,sir1

int 21H

mov al,sir1[0] ;copierea primului caracter din sirul s1

mov sir2[0],al ;in sirul s2 pe pozitia 1

mov al,sir1[1] ;copierea caracterului 2 din sirul s1

mov sir2[1],al ;in sirul s2 pe pozitia 2

mov al,sir1[2] ;copierea caracterului 3 din sirul s1

mov sir2[2],al ;in sirul s2 pe pozitia 3

mov al,sir1[0] ;copierea primului caracter din sirul s1

mov sir2[3],al ;in sirul s2 pe pozitia 4

mov al,sir1[1] ;copierea caracterului 2 din sirul s1

mov sir2[4],al ;in sirul s2 pe pozitia 5

mov al,sir1[2] ;copierea caracterului 3 din sirul s1

mov sir2[5],al ;in sirul s2 pe pozitia 6

mov sir2[6], '$' ;plasarea caract.$ la sfarsitul sirului s1 si s2

mov ah,9

lea dx,m3

int 21H

mov ah,9

lea dx,sir2

int 21H ;apelul intreruperii

mov ah,4Ch

int 21H ;apelul intreruperii

end
Varianta II:

mov al,sir1[0] ;copierea primului caracter din sirul s1

mov sir2[0],al ;in sirul s2 pe pozitia 1

mov al,sir1[0] ;copierea primului caracter din sirul s1

mov sir2[1],al ;in sirul s2 pe pozitia 2

mov al,sir1[1] ;copierea caracterului 2 din sirul s1

mov sir2[2],al ;in sirul s2 pe pozitia 3

mov al,sir1[1] ;copierea caracterului 2 din sirul s1

mov sir2[3],al ;in sirul s2 pe pozitia 4

mov al,sir1[2] ;copierea caracterului 3 din sirul s1

mov sir2[4],al ;in sirul s2 pe pozitia 5

mov al,sir1[2] ;copierea caracterului 3 din sirul s1

mov sir2[5],al ;in sirul s2 pe pozitia 6

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