Sunteți pe pagina 1din 8

Ministerul Educatiei al Republicii Moldova

Universitatea Tehnică a Moldovei


Facultatea CIM
Catedra Automatică şi Tehnologii Informaţionale

RAPORT
Disciplina: Arhitectura calculatoarelor

Lucrare de laborator Nr. 1

Tema: Elaborare programelor în limbajul de asamblare MASM în Visual Studio

A efectuat :
studenta grupei TI-171 F/R Socolicov Valeria

A verificat:
conferenţiar universitar, dr., Postovan Dumitru

Chişinău 2019
Scopul lucrarii:
Lucrarea urmărește familiarizarea studenților cu regiştrii microprocesoarelor pe 16, 32 şi 64 de biți, cu
mediul de dezvoltare a programelor Visual Studio. Se prezintă setările mediului Visual Studio necesare
pentru a elabora, rula şi depăna aplicaţiile elaborate în limbajul de asamblare MASM utilizând regiştri pe 16,
32 şi 64 de biţi.

Codul sursă pentru 32 de biți


INCLUDE Irvine32.inc
.data ; directiva care reprezintă începutul segmentului de date
str1 BYTE "Sample string, in color",0dh,0ah,0 ; un șir de caractere, fiecare caracter ocupînd un
byte cu deplasamentul str1

.code ; directiva care reprezintă începutul segmentului de cod


main PROC

mov ax,yellow + (blue * 16) ;introducem culoarea galben + albastru în registrul ax


call SetTextColor ; setăm culoarea textului

mov edx,OFFSET str1 ; introducem conținutul deplasamentului str1 în registrul edx


call WriteString ; afișarea stringului

call GetTextColor ;preluăm culoarea textului


call DumpRegs ;afișăm valorile de registru

exit ; apel la procedura de iesirea din program, din fisierul Irvine16.inc


main ENDP ; sfârşitul procedurii main

END main ;finalizarea programului/ punctul de intrare in program

Codul sursă pentru 16 biți


INCLUDE Irvine16.inc
.DATA
Promt DB 'Doresti sa devii programator?(da/nu)-[y/n]$'
Dad DB 13,10,'Vei deveni!',13,10,'$'
Nud DB 13,10,'Vei deveni filosof!',13,10,'$'
.CODE ;directivă ce declară începutul segmentului de cod
main PROC ;se indică procedura cu numele main
mov ax,@data ;Initializarea segmentului de date ds
mov ds,ax ;cu adresa datelor
mov dx,OFFSET Promt ;în dx- deplasamentul (offset) sirului Promt
mov ah,9 ;functia MSDOS, codul funcţiei 9 – afisarea sirului
Int 21h ; întreruperea 21h – apel la serviciul MSDOS
mov ah,1 ; functia MSDOS, codul funcţiei 1 – introducerea de la
tastatură(codul tastei)
Int 21h ;codul tastei in registrul al
cmp al,'y' ;compararea conţinutului registrului al cu codul ASCII a
literei y
jz IsDad ;salt condiţionat (jz-jump if zero), dacă rezultatul
comparării este zero, salt la eticheta IsDad
cmp al,'n' ;compararea- din al se scade codul ASCII a literei n
jz IsNud ;da, rezultatul comparării este zero, salt la eticheta
IsNud
IsDad: mov dx,OFFSET Dad ; în dx- offsetul sirului Dad
Jmp SHORT Disp Salt necondiţionat la eticheta ”Disp”
IsNud: mov dx,OFFSET Nud ; în dx- offsetul șirului ”Nud”
Disp: mov ah,9 ;functia MSDOS – afisarea sirului
Int 21h ;apel la serviciul MSDOS
mov ah,1 ; asteptarea unui clic
Int 21h
Exit ; apel la procedura de iesirea din program, din fisierul
Irvine16.inc
main ENDP ; sfârşitul procedurii main
END main ;finalizarea programului/ punctul de intrare in program

Listingul programului pe 32 de biți


Microsoft (R) Macro Assembler Version 14.00.24210.0 02/23/17 18:47:13
..\ch05\32 bit\colors.asm Page 1 - 1

; Testing Colors (colors.asm)

; Testing SetTextColor and GetTextColor.

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 ; MS-Windows prototypes, 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 53 61 6D 70 6C str1 BYTE "Sample string, in color",0dh,0ah,0
65 20 73 74 72
69 6E 67 2C 20
69 6E 20 63 6F
6C 6F 72 0D 0A
00

00000000 .code
00000000 main PROC

00000000 66| B8 001E mov ax,yellow + (blue * 16)


00000004 E8 00000000 E call SetTextColor

00000009 BA 00000000 R mov edx,OFFSET str1


0000000E E8 00000000 E call WriteString
00000013 E8 00000000 E call GetTextColor
00000018 E8 00000000 E call DumpRegs

exit
0000001D 6A 00 * push +000000000h
0000001F E8 00000000 E * call ExitProcess
00000024 main ENDP

END main
Microsoft (R) Macro Assembler Version 14.00.24210.0 02/23/17 18:47:13
..\ch05\32 bit\colors.asm Symbols 2 - 1

Listingul programului pe 16 biți


Microsoft (R) Macro Assembler Version 14.00.24210.0 02/24/17 12:37:05
b16.asm Page 1 - 1

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
0000 .DATA
0000 44 6F 72 65 73 74 Promt DB 'Doresti sa devii programator?(da/nu)-[y/n]$'
69 20 73 61 20 64
65 76 69 69 20 70
72 6F 67 72 61 6D
61 74 6F 72 3F 28
64 61 2F 6E 75 29
2D 5B 79 2F 6E 5D
24
002B 0D 0A 56 65 69 20 Dad DB 13,10,'Vei deveni!',13,10,'$'
64 65 76 65 6E 69
21 0D 0A 24
003B 0D 0A 56 65 69 20 Nud DB 13,10,'Vei deveni filosof!',13,10,'$'
64 65 76 65 6E 69
20 66 69 6C 6F 73
6F 66 21 0D 0A 24

0000 .CODE ;derictiva ce declara inceputul segmentului de cod


0000 main PROC ;se indica procedura cu numele main
0000 B8 ---- R mov ax,@data ;intilizarea segmentul de date ds
0003 8E D8 mov ds,ax ;cu adresa datelor
0005 BA 0000 R mov dx,OFFSET Promt ;in dx-deplasamentul(offset sirului Promt)
0008 B4 09 mov ah,9 ;functioa MSDOS,codul funtiei 9 - afisarea sirului
000A CD 21 Int 21h ;intreruperea 21h - apel la serviciul MSDOS
000C B4 01 mov ah,1 ;functia MSDOS,codul functiei 1 - introducerea la tastatura(codul
tastei)
000E CD 21 Int 21h ;codul tastei in registrul al
0010 3C 79 cmp al,'y' ;compararea continutuluiregistrului al cu codul ASCII s literei y
0012 74 04 jz IsDad ;salt conditionat(jz-jump if zero),daca rezultatul compararii este
zero,salt la eticheta IsDad
0014 3C 6E cmp al,'n' ;compararea din- al se scade codul ASCII a literei n
0016 74 05 jz IsNud ;da,rezultatul compararii este zero,salt la eticheta IsNud
0018 BA 002B R IsDad: mov dx,OFFSET Dad ;in dx - offsetul sirului Dad
001B EB 03 Jmp SHORT Disp ;salt neconditionat la eticheta Disp
001D BA 003B R IsNud: mov dx,OFFSET Nud ;in dx - offsetul sirului Nud
0020 B4 09 Disp: mov ah,9 ;functia MSDOS - afisarea sirului
0022 CD 21 Int 21h ;apel la serviciul MSDOS
0024 B4 01 mov ah,1 ;asteptarea unui clic
0026 CD 21 Int 21h
Exit ;apel la producerea de iesirea di program,din fisierul Irvine16.inc
002C main ENDP
END main
Microsoft (R) Macro Assembler Version 14.00.24210.0 02/24/17 12:37:05
b16.asm Symbols 2 - 1

Pașii rulării programului pe 32 de biți ( registrii )


 mov ax,yellow + (blue * 16)

 call SetTextColor

 mov edx,OFFSET str1


 call WriteString

 call GetTextColor

 call DumpRegs

 exit

Pașii rulării programului pe 32 de biți ( variabilele )


 mov ax,yellow + (blue * 16)
 call SetTextColor

Pașii rulării programului pe 16 biți


Build 16 –bit ASM

Run 16 –bit ASM

Concluzie:
Datorită elaborării acestei lucrări de laborator am studiat regiştrii microprocesoarelor pe 16, 32 şi 64 de biți,
cu mediul de dezvoltare a programelor Visual Studio. Am obținut deprinderi în elaborarea programelor în
ASSAMBLER pe 16 și 32 biți. Am învățat cum să rulăm programele pe 16 biți cu ajutorul programei
DOXBox. În concluzie pot spune ca acest limbaj este foarte greu de lucrat cu el.

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

  • Raport4 Lab4 AC
    Raport4 Lab4 AC
    Document3 pagini
    Raport4 Lab4 AC
    crismaruion
    Încă nu există evaluări
  • AC Lab 4
    AC Lab 4
    Document4 pagini
    AC Lab 4
    DanuIepuras
    Încă nu există evaluări
  • Laborator 6 AC
    Laborator 6 AC
    Document6 pagini
    Laborator 6 AC
    Alexandru Dumbrava
    Încă nu există evaluări
  • Laborator Nr.3 Arhitectura Calculatoarelor
    Laborator Nr.3 Arhitectura Calculatoarelor
    Document8 pagini
    Laborator Nr.3 Arhitectura Calculatoarelor
    Cristik95
    0% (1)
  • Lab 7 Somipp
    Lab 7 Somipp
    Document5 pagini
    Lab 7 Somipp
    Augusta Bucataru
    Încă nu există evaluări
  • Atestarea 1 AC Rezolvat
    Atestarea 1 AC Rezolvat
    Document10 pagini
    Atestarea 1 AC Rezolvat
    Ion Damaschin
    Încă nu există evaluări
  • Lab 1 BTD
    Lab 1 BTD
    Document9 pagini
    Lab 1 BTD
    megadanyx
    Încă nu există evaluări
  • Laborator 1 Prelucrarea Semnalelor
    Laborator 1 Prelucrarea Semnalelor
    Document19 pagini
    Laborator 1 Prelucrarea Semnalelor
    Ion Cornea
    Încă nu există evaluări
  • Lab NR 4 MMC2 Duca Dumitru TI 194
    Lab NR 4 MMC2 Duca Dumitru TI 194
    Document11 pagini
    Lab NR 4 MMC2 Duca Dumitru TI 194
    Santa Claus
    Încă nu există evaluări
  • Lab1 GC
    Lab1 GC
    Document8 pagini
    Lab1 GC
    Andrei Barbalat
    Încă nu există evaluări
  • AMOO Lab2.Use Case
    AMOO Lab2.Use Case
    Document5 pagini
    AMOO Lab2.Use Case
    Dorin Gribincea
    Încă nu există evaluări
  • Lab APA 4
    Lab APA 4
    Document12 pagini
    Lab APA 4
    AlionaCrigan
    Încă nu există evaluări
  • Laborator Retele de Calculatoare nr.2
    Laborator Retele de Calculatoare nr.2
    Document3 pagini
    Laborator Retele de Calculatoare nr.2
    Alexandr Țurcan
    Încă nu există evaluări
  • Laboratorul 2 PPE
    Laboratorul 2 PPE
    Document4 pagini
    Laboratorul 2 PPE
    crismaruion
    Încă nu există evaluări
  • Laborator-2mmc Balan Ion
    Laborator-2mmc Balan Ion
    Document12 pagini
    Laborator-2mmc Balan Ion
    Ion Bn
    Încă nu există evaluări
  • Raport 5 CDE
    Raport 5 CDE
    Document7 pagini
    Raport 5 CDE
    crismaruion
    Încă nu există evaluări
  • Atestare 2
    Atestare 2
    Document20 pagini
    Atestare 2
    Elena Chicu
    Încă nu există evaluări
  • CR-191 MIPI Axenti Alina Lab4
    CR-191 MIPI Axenti Alina Lab4
    Document6 pagini
    CR-191 MIPI Axenti Alina Lab4
    Alina Axenti
    Încă nu există evaluări
  • Laboratorul Nr1 La Grafica Pe Calculator Gc.
    Laboratorul Nr1 La Grafica Pe Calculator Gc.
    Document4 pagini
    Laboratorul Nr1 La Grafica Pe Calculator Gc.
    Ion Damaschin
    Încă nu există evaluări
  • Lab5 RC
    Lab5 RC
    Document3 pagini
    Lab5 RC
    Жан Ганган
    Încă nu există evaluări
  • Grafica Laborator Nr.2
    Grafica Laborator Nr.2
    Document8 pagini
    Grafica Laborator Nr.2
    Cebotari Ion
    100% (1)
  • IoT LL4
    IoT LL4
    Document4 pagini
    IoT LL4
    Anya Mr
    Încă nu există evaluări
  • TW Lab2
    TW Lab2
    Document4 pagini
    TW Lab2
    Dan
    Încă nu există evaluări
  • LFA Lab - 1
    LFA Lab - 1
    Document10 pagini
    LFA Lab - 1
    RoscaFlorin
    100% (1)
  • SOMIPP Lab5
    SOMIPP Lab5
    Document4 pagini
    SOMIPP Lab5
    X3 KTO
    Încă nu există evaluări
  • LFA Lab - 2
    LFA Lab - 2
    Document15 pagini
    LFA Lab - 2
    RoscaFlorin
    100% (1)
  • MMC Laborator 1 UTM
    MMC Laborator 1 UTM
    Document12 pagini
    MMC Laborator 1 UTM
    StasLuchianciuc
    Încă nu există evaluări
  • MMC Lab3 Rap
    MMC Lab3 Rap
    Document4 pagini
    MMC Lab3 Rap
    I LOVE ME
    Încă nu există evaluări
  • Lab 3 BTD
    Lab 3 BTD
    Document6 pagini
    Lab 3 BTD
    Trifan Petru
    100% (1)
  • Laborator NR 2 Arhitectura Calculatoarelor
    Laborator NR 2 Arhitectura Calculatoarelor
    Document8 pagini
    Laborator NR 2 Arhitectura Calculatoarelor
    CCV69
    Încă nu există evaluări
  • Lab 4 Apa
    Lab 4 Apa
    Document21 pagini
    Lab 4 Apa
    crismaruion
    Încă nu există evaluări
  • Subiecte Examen ASDN
    Subiecte Examen ASDN
    Document3 pagini
    Subiecte Examen ASDN
    Camy Tripon
    Încă nu există evaluări
  • Lab 5
    Lab 5
    Document7 pagini
    Lab 5
    Dorin Nicoara
    Încă nu există evaluări
  • Lab. 3
    Lab. 3
    Document5 pagini
    Lab. 3
    Cristina Florea
    Încă nu există evaluări
  • Lab 5 BTD Axenti
    Lab 5 BTD Axenti
    Document6 pagini
    Lab 5 BTD Axenti
    Alina Axenti
    100% (1)
  • SOMIPP Lab4
    SOMIPP Lab4
    Document7 pagini
    SOMIPP Lab4
    Dan
    Încă nu există evaluări
  • LL3 IoT ECiobanu
    LL3 IoT ECiobanu
    Document6 pagini
    LL3 IoT ECiobanu
    Ecaterina Ciobanu
    Încă nu există evaluări
  • Lucrarea de Laborator NR 7 POO
    Lucrarea de Laborator NR 7 POO
    Document7 pagini
    Lucrarea de Laborator NR 7 POO
    Alexandru Burdeniuc
    Încă nu există evaluări
  • ASDN2
    ASDN2
    Document6 pagini
    ASDN2
    Viktor Dobrovolschi
    Încă nu există evaluări
  • Lab 3 BTD Axenti
    Lab 3 BTD Axenti
    Document6 pagini
    Lab 3 BTD Axenti
    Alina Axenti
    Încă nu există evaluări
  • Lab 4 MN
    Lab 4 MN
    Document3 pagini
    Lab 4 MN
    nn nnn
    Încă nu există evaluări
  • TW Lab3
    TW Lab3
    Document6 pagini
    TW Lab3
    Dan
    Încă nu există evaluări
  • PPE Lab7
    PPE Lab7
    Document14 pagini
    PPE Lab7
    danielploaia
    Încă nu există evaluări
  • LFA Lab 1
    LFA Lab 1
    Document8 pagini
    LFA Lab 1
    Valeria Cebanu
    Încă nu există evaluări
  • Laboratorul 1
    Laboratorul 1
    Document4 pagini
    Laboratorul 1
    ion
    Încă nu există evaluări
  • SOMIPP Lab 5
    SOMIPP Lab 5
    Document5 pagini
    SOMIPP Lab 5
    Augusta Bucataru
    Încă nu există evaluări
  • Lab 6
    Lab 6
    Document4 pagini
    Lab 6
    Егор Казаков
    Încă nu există evaluări
  • SOMIPP Lab6
    SOMIPP Lab6
    Document4 pagini
    SOMIPP Lab6
    Dan
    Încă nu există evaluări
  • Lab2 Somipp
    Lab2 Somipp
    Document6 pagini
    Lab2 Somipp
    Iov Albu
    Încă nu există evaluări
  • Lab 4 APA
    Lab 4 APA
    Document20 pagini
    Lab 4 APA
    Cristi Poselețchi
    Încă nu există evaluări
  • Lab 4
    Lab 4
    Document12 pagini
    Lab 4
    Fil Gorea
    Încă nu există evaluări
  • AMOO Lab 4
    AMOO Lab 4
    Document6 pagini
    AMOO Lab 4
    Anya Mr
    Încă nu există evaluări
  • Asdn2 Lab5
    Asdn2 Lab5
    Document4 pagini
    Asdn2 Lab5
    Жан Ганган
    Încă nu există evaluări
  • Lab NR 1 TI-202-FR Badan Gleb
    Lab NR 1 TI-202-FR Badan Gleb
    Document11 pagini
    Lab NR 1 TI-202-FR Badan Gleb
    NeedMoreSleep
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document10 pagini
    Lab 1
    Radu Madiudin
    Încă nu există evaluări
  • Labor 1 AC
    Labor 1 AC
    Document14 pagini
    Labor 1 AC
    Ana Toma
    Încă nu există evaluări
  • SMP Lab 5
    SMP Lab 5
    Document5 pagini
    SMP Lab 5
    Andrei Stelea
    Încă nu există evaluări
  • Lab NR 4 TI-202-FR Badan Gleb
    Lab NR 4 TI-202-FR Badan Gleb
    Document10 pagini
    Lab NR 4 TI-202-FR Badan Gleb
    NeedMoreSleep
    Încă nu există evaluări
  • Probleme Propuse AMP 2010
    Probleme Propuse AMP 2010
    Document9 pagini
    Probleme Propuse AMP 2010
    Daria Tică
    Încă nu există evaluări
  • Lab1 Somipp
    Lab1 Somipp
    Document14 pagini
    Lab1 Somipp
    Jen4ik
    100% (1)