Documente Academic
Documente Profesional
Documente Cultură
Raport
Lucrare de laborator Nr.3
Disciplina: Arhitectura calculatoarelor
Tema: Elaborare programelor în limbajul de asamblare MASM în Visual Studio
A verificat:
Chişinău 2021
SCOPUL LUCRARII:
Lucrarea prezinta instructiunile pentru transferuri de date, instructiuni in aritmetica binara si
in aritmetica BCD.
Varianta propusă:
3. Z = { 2(Y - 120) - X, dacă Y > X/
X/4 - 95 + Y, dacă Y <= X/2}
INCLUDE Irvine32.inc
.data
mov eax,vrx
mov bx,2
Div bx ; calcul X/2
cmp vry,eax ;compararea Y cu 2/X
Jc con1 ; salt la con1, daca Y>2X
exit
main ENDP
● Introducere manuală
INCLUDE Irvine32.inc
.data
mes1 byte "Introduceti valoarea X:",0
mes2 byte "Introduceti valoarea Y:",0
mes3 byte "Rezutatul este:",0
vrx dword 0
vry dword 0
rez dd 0
.code
main PROC
mov edx,OFFSET mes1
call WriteString ; afisarea mes1
call ReadDec ; introducerea de la tastatura
mov vrx,eax ; salvarea valorii in variabila vrx
;controlam conditiile
xor eax,eax
mov edx,0
mov eax,vrx
mov bx,2
Div bx ; calcul X/2
cmp vry,eax ;compararea Y cu 2/X
Jc con1 ; salt la con1, daca Y>2X
sub eax,vry
mov rez,eax
exit
main ENDP
Fișierele -listing:
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 52 65 7A 75 6C mes3 byte "Rezultatul este:", 0
74 61 74 75 6C
20 65 73 74 65
3A 00
00000011 00000000 vrx dword 0
00000015 00000000 vry dword 0
00000067 ex:
00000067 BA 00000000 R mov edx,OFFSET mes3
0000006C E8 00000000 E call WriteString; afisarea mes3
00000071 A1 00000019 R mov eax, rez
00000076 E8 00000000 E call WriteInt ;afisarea rezultatului cu semn
0000007B E8 00000000 E call Crlf; din rind nou
exit
00000087 main ENDP
END main
Microsoft (R) Macro Assembler Version 10.00.30319.01 10/28/15 13:29:10
lab3 auto.asm Symbols 2 - 1
● Introducere manuală
Microsoft (R) Macro Assembler Version 10.00.30319.01 10/28/15 13:21:19
lab3.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 49 6E 74 72 6F mes1 byte"Introduceti valoarea X:", 0
64 75 63 65 74
69 20 76 61 6C
6F 61 72 65 61
20 58 3A 00
00000018 49 6E 74 72 6F mes2 byte"Introduceti valoarea Y:", 0
64 75 63 65 74
69 20 76 61 6C
6F 61 72 65 61
20 59 3A 00
00000030 52 65 7A 75 6C mes3 byte "Rezultatul este:", 0
74 61 74 75 6C
20 65 73 74 65
3A 00
00000041 00000000 vrx dword 0
00000045 00000000 vry dword 0
00000049 00000000 rez dword 0
00000000 .code
00000000 main PROC
00000000 BA 00000000 R mov edx, OFFSET mes1