MINISTERUL EDUCAŢIEI sI sTIINŢEI
AL REPUBLICII
UNIVERSITATEA TEHNICĂ A MOLDOVEI
Facultatea: CIM
Catedra: Tehnica de Calcul
Referat
LUCRARE DE LABORATOR NR.2
Tema: Bazele limbajului Assambler
A eleborat: st. grupei
A verificat: profesor
CHISINAU 2004
Scopul lucrarii
Studierea nodurilor de adresare, directivelor pentru definirea
datelor si a bazelor programarii īn limbajul de asamblare
2. Datele programelor:
a) Realizati un program care sa afiseze:
Tipul computerului IBM PC;
Versiunea sistemului de operare MS-DOS:
Lista perifericilor:
-tipul adaptorului videos
-numarul unutatilor de memorie externa si tipul acestora;
-prezenta coprocesorului arithmetic;
-numarul de linii seriale si paralele;
Capacitatea memoriei operative de baza;
Capacitatea memoriei operative axtinse;
b) Realizati un program cu ajutorul caruia poate fi vizualizata partea a doua a tabelului de coduri ASCII (codurile 128-255 de tot 128 caractere). Pentru aceasta de creat un masiv alcatuit din codurile acestora caractere si e imprimat masivul pe ecran.
c) Compararea a doua zone de memorie. Realizati un program ce compara doua zone de memorie cu acelasi continut si imprima pe ecran rezultatul compararii. De modificat cīmpul de date al programului, modificīnd zonele de memorie ca ele sa nu coincida si programul sa fie executat din nou.
3. Efectuarea lucrarii:
a) dosseg
.model small
.stack 256
.data
comp equ 1
mesaj db 'ViewSonic XP-2000',10,13
db 'PENTIUM 4',10,13
db 'GForce 4(64Mb)',10,13
db 'HDD Maxtor Diamond 40Gb',10,13
db 'CD-RW Sony 52x/24x/52x',10,13
db 'FDD 1.44 Teac',10,13
db 'optic cordless genius',10,13
db 'keyboard Logitech BLACK, PS/2 ',10,13
db 'epox RDA+ NFforce2 3DDR KT333 5PCI',10,13
db 'RAM DDR 256MB',10,13
db 'Cooler Glacial Teach Igloo 2410',10,13
mes_len equ $-mesaj
.code
startprogram
mov ax,@data
mov ds,ax
mov ah,40h
mov bx,comp
mov cx,mes_len
mov dx,offset mesaj
int 21h
mov ah,4ch
int 21h
end startprogram
b) title Program_ASCII
DOSSEG
.MODEL small
.STACK 256
;datele
.DATA
partea_a_2 equ 128
mesaj DB 0AH,0DH,'MASIVUL ESTE ','$'
mas DB 128 dup(?)
i DB 128
.CODE
;inceputul
START:
mov AX,@DATA
mov DS,AX
xor AX,AX
mov CX,partea_a_2
mov SI,0
ciclul_de_intrare:
mov BH,i
mov mas[SI],BH
inc i
inc SI
loop ciclul_de_intrare
mov CX,partea_a_2
mov SI,0
mov AH,09H
lea DX,mesaj
int 21H
ciclu_de_afisare:
mov AH,02H
mov DL,mas[SI]
int 21H
inc SI
loop ciclu_de_afisare
mov AX,4C00H
int 21H
END START
c) title Program_comparare
;compararea a doua zone
DOSSEG
.MODEL small
.STACK 256
.DATA
;sursa
sursa1 DB 1000 dup('+')
sursa2 DB 1000 dup('+')
m1 DB 'zonele coincid$'
m2 DB 'zone diferite$'
.CODE
;inceputul
start
mov AX,@DATA
mov DS,AX
mov AX,seg sursa1
mov DS,AX
mov SI,offset sursa2
mov DX,seg sursa2
mov ES,DX
mov DI,offset sursa2
mov CX,1000
;sensul crescator
cld
;compararea inceteaza
repe cmpsb
;diferenta
jne diferit
;liniile coincid
jmp egal
;liniile nu coincid
diferit
mov DX,offset m2
mov AH,09H
int 21H
mov AH,04CH
int 21H
egal
mov DX,offset m1
mov AH,09H
int 21H
mov AH,04CH
int 21h
END start
5. Concluzie:
Din lucrarea data noi am īnsusit nodurile de adresare si directivele pentru definirea datelor si a bazelor programarii īn limbajul de asamblare.
|