Sunteți pe pagina 1din 6

Ministerul Educaţiei al Republicii Moldova

Universitatea Tehnică a Moldovei

Catedra Automatică şi Tehnologii Informaţionale

Raport
Lucrare de laborator Nr.6
Disciplina: Arhitectura calculatoarelor
Tema: Elaborare programelor în limbajul de asamblare MASM în Visual Studio

A efectuat : studentul grupei TI-181 F/R

A verificat:

Chişinău 2021

SCOPUL LUCRARII:
Cunoaşterea funcţiilor puse la dispoziţia programatorului de sistemul de operare (funcţii
BIOS şi DOS) şi modul lor de utilizare în limbaj de asamblare. Se prezintă un exemplu cu privire la
folosirea terminalului.

Varianta propusă:
Să se scrie un program care desenează pe ecranul grafic un steag al unui stat la alegere. Pentru
afișare folosiți DOSBox.

Codul sursă comentat:


.data
str1 BYTE" ",0

.code
main PROC
mov ecx, 10
black_:
mov ax,yellow + (black * 16)
call SetTextColor
mov edx,OFFSET str1
call WriteString
call Crlf
loopnz black_
mov ecx, 10

red_:
mov ax,yellow + (red * 16)
call SetTextColor
call WriteString
call Crlf
oopnz red_
mov ecx, 10

yellow_:
mov ax,yellow + (yellow * 16)
call SetTextColor
call WriteString
call Crlf
loopnz yellow_
exit
main ENDP
END main

Fișierul -listing:
Microsoft (R) Macro Assembler Version 10.00.30319.01 11/18/15 09:14:13
lab6.asm Page 1 - 1
INCLUDE Irvine32.inc
C ; Include file for Irvine32.lib (Irvine32.inc)
C
C ;OPTION CASEMAP:NONE ; optional: make identifiers case-
sensitive
C
C INCLUDE SmallWin.inc ; M S - Wi n d o w s p r o t o t y p e s ,
structures, and constants
C .NOLIST
C .LIST
C
C INCLUDE VirtualKeys.inc
C ; VirtualKeys.inc
C .NOLIST
C .LIST
C
C
C .NOLIST
C .LIST
C
00000000
.data
00000000 20 20 20 20 20 albastru Byte " ",0
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
00




















































0000003D 20 20 20 20 20 alb Byte " ",0


20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
00
0000007A 20 20 20 20 20 rosu Byte " ",0
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
20 20 20 20 20
00
00000000 .code
00000000 main proc
00000000 B4 00 mov ah, 00h; setam modul video
00000002 B0 12 mov al, 12h; cu rezolutia 640x480

00000004 B9 00000005 mov ecx,5


00000009 unu proc
00000009 B8 000000F0 mov eax, (white * 16)
0000000E E8 00000000 E call settextcolor
00000013 BA 0000003D R mov edx, offset alb
00000018 E8 00000000 E call Writestring ;afisarea sir1
0000001D E8 00000000 E call Crlf; rind nou
00000022 E2 E5 loop unu
























00000024 unu endp

00000024 B9 00000005 mov ecx,5


00000029 doi proc
00000029 B8 00000010 mov eax, (blue * 16)
0000002E E8 00000000 E call settextcolor
00000033 BA 00000000 R mov edx, offset albastru
00000038 E8 00000000 E call Writestring ;afisarea sir2
0000003D E8 00000000 E call Crlf; rind nou
00000042 E2 E5 loop doi
00000044 doi endp

00000044 B9 00000005 mov ecx,5


00000049 trei proc
00000049 B8 00000040 mov eax, (red * 16)
0000004E E8 00000000 E call settextcolor
00000053 BA 0000007A R mov edx, offset rosu
00000058 E8 00000000 E call Writestring ;afisarea sir3
0000005D E8 00000000 E call Crlf; rind nou
00000062 E2 E5 loop trei
00000064 trei endp

00000064 E8 00000000 E call ReadDec

exit
00000070 main endp
END main















































Microsoft (R) Macro Assembler Version 10.00.30319.01 11/18/15 09:14:13


lab6.asm Symbols 2 - 1

Concluzii: Efectuînd această lucrare de laborator am facut cunoștință cu funcţiile puse


la dispoziţia programatorului de sistemul de operare (funcţii BIOS şi DOS) şi modul
lor de utilizare în limbaj de asamblare. Am creat, rulat şi depănat aplicaţia propusă în
limbaj de asamblare MASM, am inclus în raportr ezultatele obținute.

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