Sunteți pe pagina 1din 6

Ministerul Educaiei al Republicii Moldova

Universitatea Tehnic a Moldovei

RAPORT
Lucrare de laborator Nr.6
la Arhitectura Calculatoarelor
Tema: Utilizarea funciilor sistem n limbaj de asamblare

A efectuat:
St. gr. TI-143
Cheptanaru Anatolie
A verificat:
Colesnic V.

Chiinu 2016

1. Scopul lucrrii
Cunoaterea funciilor puse la dispoziia programatorului de sistemul de operare (funcii
BIOS i DOS) i modul lor de utilizare n limbaj de asamblare. Se prezint un exemplu cu
privire la folosirea terminalului.
2. Sarcina
a) S se scrie un program care deseneaz pe ecranul grafic un steag al unui stat la alegere.
Pentru afiare folosii DOSBox.
3. Efectuarea lucrrii de laborator
a)

INCLUDE Irvine32.inc

Rectangle MACRO x1, y1, x2, y2, color


LOCAL rect_loop
xor cx, cx
xor dx, dx
mov cx, x1
mov dx, y1
rect_loop:
mov al, color
int 10h

inc cx
cmp
jne
inc
xor
mov
cmp
jne

cx, x1 + x2
rect_loop
dx
cx,cx
cx, x1
dx, y1 + y2
rect_loop

ENDM
.code
main PROC
mov
mov
mov
mov
int
mov
mov

ax,@data
ds,ax
ah,00h
al,12h
10h
ah,0ch
bh,0

; initializarea segmentului de date ds


; cu adresa datelor
; setam modul video
; cu rezolutia 640col x480lin
; apel serviciu BIOS
; functia - afisarea unui punct pe ecran
; pagina video (0 de baza)

; red, blue, yellow, green


Rectangle
Rectangle
Rectangle
Rectangle
mov ah,1
int 21h
exit
main ENDP
END main

20,
20,
20,
20,

40, 600, 100, red


140, 600, 100, blue
240, 600, 100, yellow
340, 600, 100, green
; asteptare click (pauza)
; intreruperea 21h

Rezultate obinute

Listing-ul programului
INCLUDE Irvine16.inc
C ; Irvine16.inc - Include file for programs using
C ; the Irvine16.lib (Real-address mode library).

C
C ; Last update: 7/29/05
C
C .NOLIST
C .LIST
C
Rectangle MACRO x1, y1, x2, y2, color
LOCAL rect_loop
xor cx, cx
xor dx, dx
mov cx, x1
mov dx, y1
rect_loop:

mov al, color

int
inc
cmp
jne
inc
xor
mov
cmp
jne

10h
cx
cx, x1 + x2
rect_loop
dx
cx,cx
cx, x1
dx, y1 + y2
rect_loop

ENDM
0000
0000
0000
0003
0005
0007
0009
000B
ecran
000D

.code

B8
8E
B4
B0
CD
B4

---- R
D8
00
12
10
0C

main PROC
mov ax,@data ; initializarea segmentului de date ds
mov ds,ax
; cu adresa datelor
mov ah,00h
; setam modul video
mov al,12h
; cu rezolutia 640col x480lin
int 10h
; apel serviciu BIOS
mov ah,0ch
; functia - afisarea unui punct pe

B7 00

mov bh,0

; pagina video (0 de baza)

; red, blue, yellow, green

000F
0011
0013
0016
0019
0019
001B
001D
001E
0022
0024
0025
0027
002A
002E

33
33
B9
BA

C9
D2
0014
0028

B0
CD
41
81
75
42
33
B9
81
75

04
10

0030
0032
0034
0037
003A
003A
003C
003E
003F
0043
0045
0046
0048
004B
004F

33
33
B9
BA

C9
D2
0014
008C

B0
CD
41
81
75
42
33
B9
81
75

01
10

0051
0053
0055
0058
005B

33
33
B9
BA

C9
D2
0014
00F0

F9
F5

026C

1
1
1

C9
0014
FA 008C
E9

F9
F5

026C

1
1
1

C9
0014
FA 00F0
E9

Rectangle 20, 40, 600, 100, red


xor cx, cx
xor dx, dx
mov cx, 20
mov dx, 40
??0000:
1
mov al, red
1
int 10h
inc cx
cmp cx, 20 + 600
1
jne ??0000
inc dx
1
xor cx,cx
1
mov cx, 20
cmp dx, 40 + 100
1
jne ??0000
Rectangle 20, 140, 600, 100, blue
1
xor cx, cx
1
xor dx, dx
1
mov cx, 20
1
mov dx, 140
??0001:
1
mov al, blue
1
int 10h
inc cx
cmp cx, 20 + 600
1
jne ??0001
inc dx
1
xor cx,cx
1
mov cx, 20
cmp dx, 140 + 100
1
jne ??0001
Rectangle 20, 240, 600, 100, yellow
1
xor cx, cx
1
xor dx, dx
1
mov cx, 20
1
mov dx, 240
??0002:
1
1
1
1

005B
005D
005F
0060
0064
0066
0067
0069
006C
0070

B0
CD
41
81
75
42
33
B9
81
75

0E
10

0072
0074
0076
0079
007C
007C
007E
0080
0081
0085
0087
0088
008A
008D
0091

33
33
B9
BA

C9
D2
0014
0154

B0
CD
41
81
75
42
33
B9
81
75

02
10

0093
0095

B4 01
CD 21

009B

F9
F5

1
1
026C

1
1
1

C9
0014
FA 0154
E9

F9
F5

026C

1
1
1

C9
0014
FA 01B8
E9

mov al, yellow


int 10h

inc cx
cmp cx, 20 + 600
1
jne ??0002
inc dx
1
xor cx,cx
1
mov cx, 20
cmp dx, 240 + 100
1
jne ??0002
Rectangle 20, 340, 600, 100, green
1
xor cx, cx
1
xor dx, dx
1
mov cx, 20
1
mov dx, 340
??0003:
1
mov al, green
1
int 10h
inc cx
cmp cx, 20 + 600
1
jne ??0003
inc dx
1
xor cx,cx
1
mov cx, 20
cmp dx, 340 + 100
1
jne ??0003
mov ah,1
int 21h

exit
main ENDP
END main

; asteptare click (pauza)


; intreruperea 21h

Concluzie
n urma realizrii lucrrii de laborator nr.6 la tema: Utilizarea funciilor sistem n limbaj de
asamblare, am luat cunotin de funciile sistemului de operare (func ii BIOS i DOS) i modul lor
de utilizare n limbaj de asamblare. Am prezentat un exemplu cu privire la folosirea terminalului.
Am utilizat urmtoarele funcii i instruciuni:
-

Int10h apelarea serviciului BIOS;


00h setarea modului video;
12h cu rezoluia 640col x 480lin;
0ch funcia - afiarea unui punct pe ecran;
XOR exclusive or se efectueaz operaia modulo 2;
INC incrementarea cu unu;

n concluzie, elaborat un program care deseneaz pe ecranul grafic steagul Mauritaniei.

Pentru afiarea acestuia am folosit DOSBox.