Sunteți pe pagina 1din 5

Ministerul Educaţiei al Republicii Moldova

Universitatea Tehnică a Moldovei


Facultatea Calculatoare, Informatică şi Microelectronică

Raport
Lucrare de laborator Nr. 1
la „Arhitectura Calculatoarelor”
Tema: „ Elaborarea programelor in limbajul de asamblare MASM”

Elaborat: std. gr. TI-173


Iluța Ciprian

Profesor:
Colesnic Victor

Chişinău 2019
SCOPUL LUCRĂRII
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.

MODUL DE LUCRU
1. Se vor asambla si rula exemplele de programe prezentate obţinându se fișiere .EXE, ele se
află în Project, cu numele Project.exe;
2. Se vor obține și se vor analiza fișierele listing ale programelor Project.lst;
3. Se va rula sub Debug pas cu pas (clic F10) exemplele de programe actualizând Registers
şi Watch1 (pentru variabile).

Codurile sursă .asm


Pentru 16 biți

Pentru 32 biți
Microsoft (R) Macro Assembler Version 14.16.27026.1 02/18/19 17:05:51
..\ch05\32 bit\colors.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 ; 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 44 6F 72 65 73 Dor byte "Doresti sa devii programator?(da/nu)-[y/n]",0
74 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 00
0000002B 0A 0D 56 65 69 Da DB 10,13,'Vei deveni!',10,13,0
20 64 65 76 65
6E 69 21 0A 0D
00
0000003B 0A 0D 56 65 69 Nu DB 10,13,'Vei deveni filosof!',0ah,0dh,0
20 64 65 76 65
6E 69 20 66 69
6C 6F 73 6F 66
21 0A 0D 00
00000053 0A 0D 45 78 65 Err BYTE 10,13,"Executati click corect !",7,0
63 75 74 61 74
69 20 63 6C 69
63 6B 20 63 6F
72 65 63 74 20
21 07 00

00000000 .code
00000000 main PROC

00000000 BA 00000000 R mov edx,OFFSET Dor


00000005 E8 00000000 E call WriteString

0000000A er:
0000000A E8 00000000 E call ReadChar

0000000F 3C 79 cmp al,'y'


00000011 74 10 jz IsDad
00000013 3C 6E cmp al,'n'
00000015 74 18 jz IsNud
00000017 BA 00000053 R mov edx,OFFSET Err
0000001C E8 00000000 E call WriteString
00000021 EB E7 jmp er

00000023 BA 0000002B R IsDad: mov edx,OFFSET Da


00000028 E8 00000000 E call WriteString
0000002D EB 0A jmp ex
0000002F BA 0000003B R IsNud: mov edx,OFFSET Nu
00000034 E8 00000000 E call WriteString

00000039 ex:
exit
00000039 6A 00 * push +000000000h
0000003B E8 00000000 E * call ExitProcess
00000040 main ENDP
END main
Microsoft (R) Macro Assembler Version 14.16.27026.1 02/18/19 17:05:51
..\ch05\32 bit\colors.asm Symbols 2 - 1
Pentru 64 biți

Microsoft (R) Macro Assembler (x64) Version 14.16.27026.1 02/18/19 17:07:51


..\ch03\AddTwoSum_64.asm Page 1 - 1

; AddTwoSum_64.asm - Chapter 3 example.

ExitProcess proto

00000000 .data
00000000 sum qword 0
0000000000000000
00000000 .code
00000000 main proc
00000000 48/ C7 C0 mov rax,5
00000005
00000007 48/ 83 C0 06 add rax,6
0000000B 48/ 89 05 mov sum,rax
00000000 R

00000012 B9 00000000 mov ecx,0


00000017 E8 00000000 E call ExitProcess
0000001C main endp
end
Microsoft (R) Macro Assembler (x64) Version 14.16.27026.1 02/18/19 17:07:51
..\ch03\AddTwoSum_64.asm Symbols 2 - 1

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