Sunteți pe pagina 1din 5

Universitatea Tehnic a Moldovei

FCIM

RAPORT
la lucrarea de laborator nr. 4
Arhitectura Calculatoarelor
Tema: SUBPROGRAME I MACROINSTRUCIUNI

A efectuat:

A verificat: lector superio

Chisinau

2017
1. S se determine ci bii 1 exist i care sunt poziiile primilor bii 1 de la stnga la dreapta
respectiv dreapta la stnga din cuvntul de la adresa cuvant i din dublul cuvnt memorat ncepnd
de la adresa dcuvant. Exemplu de afiare:

Cuvant 0101010101010000

Dcuvant 00001111000011110000111100001111

Biti de 1: 6, 16 ; numarul de biti 1 in cuvant si dcuvant

Pozitia bitilor stanga: 14, 27 ; pozitia primului bit 1 stanga din cuvant (14) si dcuvant (27)

Pozitia bitilor dreapta: 4, 0

Listingul programului
INCLUDE Irvine32.inc loop w_left

citim_int MACRO mesaj


lea edx, mesaj w_found_left:
call WriteString lea edx, m6
call ReadInt call WriteString
jc error movzx ax, nr
ENDM call WriteDec
call Crlf
afisam_bin MACRO size
mov ebx, size w_sfirsit:
call WriteBinB
call Crlf ENDM
ENDM
bits_dcuv_pos MACRO var
bits_cuv_pos MACRO var mov nr, 0
mov nr, 0 mov eax, var
mov ax, var mov cx, s2
mov cx, s1 d_right:
w_right: test eax, 1b
test ax, 1b jnz d_found_right
jnz w_found_right inc nr
inc nr shr eax, 1
shr ax, 1 loop d_right
loop w_right lea edx, not_found
lea edx, not_found call WriteString
call WriteString jmp d_sfirsit
jmp w_sfirsit
d_found_right:
w_found_right: lea edx, m5
lea edx, m5 call WriteString
call WriteString movzx eax, nr
movzx eax, nr call WriteDec
call WriteDec call Crlf
call Crlf
mov nr, 0
mov nr, 0 mov eax, var
mov ax, var mov cx, s2
mov cx, s1
d_left:
w_left: rcl eax, 1
rcl ax, 1 jc d_found_left
jc w_found_left inc nr
inc nr loop d_left
loop p3
lea edx, m4
d_found_left: movzx eax, nr
lea edx, m6 call WriteString
call WriteString call WriteDec
movzx eax, nr call Crlf
call WriteDec ret
call Crlf nr_bits_dcuv ENDP

d_sfirsit: main PROC

ENDM citim_int m1
mov cuv, ax
.data afisam_bin 2

m1 db 'cuv = ',0
m2 db 'dcuv =',0 citim_int m2
m3 db 'nr de biti in cuv = ',0 mov dcuv, eax
m4 db 'nr de biti in dcuv = ',0 afisam_bin 4
m5 db 'pozitia primului bit din
dreapta = ',0 call nr_bits_cuv
m6 db 'pozitia primului bit din stinga call nr_bits_dcuv
= ',0
m7 db 'pozitia in cuv ',10,13,0 lea edx, m7
m8 db 'pozitia in dcuv ' ,10,13,0 call WriteString
not_found db 'nu a fost gasit bit de 1 bits_cuv_pos cuv
',10,13,0
merr db 'eroare',10,13,0 lea edx, m8
cuv dw ? call WriteString
dcuv dd ? bits_dcuv_pos dcuv
s1 EQU SIZEOF cuv * 8
s2 EQU SIZEOF dcuv * 8 jmp ok
nr db ?
; 21840
.code ; 252645135

nr_bits_cuv PROC error:


mov cx, s1 lea edx, merr
mov ax, cuv call WriteString
mov nr, 0
p1: ok:
test ax, 1b EXIT
jz p2 main ENDP
inc nr END main
p2:
shr ax, 1
loop p1
lea edx, m3
movzx eax, nr
call WriteString
call WriteDec
call Crlf
ret
nr_bits_cuv ENDP

nr_bits_dcuv PROC
mov cx, s1
mov eax, dcuv
mov nr, 0
p3:
test eax, 1b
jz p4
inc nr
p4:
shr eax, 1
Screenshoturi

Concluzie
In lucrarea data am studiat macrosurile si procedurile. Am utilizat ramificatiile, am
folosit etichetele. Totodata am folosit cunostintele din lucrarile anterioare. Am facut debug la
programe si le-am executat. Am facut deosebiri dintre macrosuri si proceduri. Scopul lucrarii a
fost atins.

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

  • ExamAC Ro
    ExamAC Ro
    Document5 pagini
    ExamAC Ro
    MarinGrosul
    Încă nu există evaluări
  • ESR
    ESR
    Document30 pagini
    ESR
    Cobilas Vasile
    Încă nu există evaluări
  • PW Lab1
    PW Lab1
    Document5 pagini
    PW Lab1
    Cobilas Vasile
    Încă nu există evaluări
  • Raport Lab 3 GRafica
    Raport Lab 3 GRafica
    Document7 pagini
    Raport Lab 3 GRafica
    Cobilas Vasile
    Încă nu există evaluări
  • MN 2
    MN 2
    Document18 pagini
    MN 2
    Cobilas Vasile
    Încă nu există evaluări
  • Lab 11
    Lab 11
    Document3 pagini
    Lab 11
    Dinu Ciobanu
    Încă nu există evaluări
  • Lab 1 ASDN
    Lab 1 ASDN
    Document7 pagini
    Lab 1 ASDN
    Cobilas Vasile
    Încă nu există evaluări
  • Lab 2
    Lab 2
    Document4 pagini
    Lab 2
    Cobilas Vasile
    Încă nu există evaluări
  • LFPC 1
    LFPC 1
    Document5 pagini
    LFPC 1
    Cobilas Vasile
    Încă nu există evaluări
  • MD Lab-1
    MD Lab-1
    Document15 pagini
    MD Lab-1
    Cobilas Vasile
    Încă nu există evaluări