Untitled
unknown
plain_text
2 years ago
3.4 kB
7
Indexable
org 100h ; Setează adresa de început a programului
jmp start ; Sari la eticheta 'start'
MA dw 0100101111100000b, 0110011001100110b ; 46,304
MB dw 0110101011000110b, 1001011001110110b ; 26,986
MD dw ?, ?, ?, ? ; sumă intermediară
MS dw ?, ?, ?, ? ; sumă finală
PA db 8 ; 46,304 este 2 la puterea 8
PB db 8 ; 26,986 este 2 la puterea 8
PD db ?
PS db ?
start:
mov al, PA ; Mută valoarea din PA în AL
add al, PB ; Adaugă valoarea din PB la AL
mov PD, al ; Mută rezultatul din AL în PD
mov PS, al ; Mută rezultatul din AL în PS
; Prima înmulțire
mov ax, MA ; Mută valoarea din MA în AX
mul MB ; Înmulțește AX cu MB
mov MD, AX ; Mută rezultatul din AX în MD
mov MD+2, DX ; Mută rezultatul cu ordinul mare din DX în al doilea cuvânt al lui MD
mov ax, MA ; Mută valoarea din MA în AX
mul MB+2 ; Înmulțește AX cu al doilea cuvânt al lui MB
add ax, MD+2 ; Adaugă rezultatul la al doilea cuvânt al lui MD
mov MD+2, AX ; Mută rezultatul din AX în al doilea cuvânt al lui MD
mov MD+4, DX ; Mută rezultatul cu ordinul mare din DX în al patrulea cuvânt al lui MD
; A doua înmulțire
mov ax, MA+2 ; Mută al doilea cuvânt al lui MA în AX
mul MB ; Înmulțește AX cu MB
mov MS, AX ; Mută rezultatul din AX în MS
mov MS+2, DX ; Mută rezultatul cu ordinul mare din DX în al doilea cuvânt al lui MS
mov ax, MA+2 ; Mută al doilea cuvânt al lui MA în AX
mul MB+2 ; Înmulțește AX cu al doilea cuvânt al lui MB
add ax, MS+2 ; Adaugă rezultatul la al doilea cuvânt al lui MS
mov MS+2, AX ; Mută rezultatul din AX în al doilea cuvânt al lui MS
mov MS+4, DX ; Mută rezultatul cu ordinul mare din DX în al patrulea cuvânt al lui MS
; Calculează suma MD + MS
suma:
mov AX, MS ; Mută valoarea din MS în AX
add AX, MD ; Adaugă valoarea din MD la AX
mov MS, AX ; Mută rezultatul din AX în MS
mov AX, MS+2 ; Mută valoarea celui de-al doilea cuvânt al lui MS în AX
add AX, MD+2 ; Adaugă valoarea celui de-al doilea cuvânt al lui MD la AX
mov MS+2, AX ; Mută rezultatul din AX în al doilea cuvânt al lui MS
mov AX, MS+4 ; Mută valoarea celui de-al patrulea cuvânt al lui MS în AX
add AX, MD+4 ; Adaugă valoarea celui de-al patrulea cuvânt al lui MD la AX
mov MS+4, AX ; Mută rezultatul din AX în al patrulea cuvânt al lui MS
mov AX, MS+6 ; Mută valoarea celui de-al șaselea cuvânt al lui MS în AX
add AX, MD+6 ; Adaugă valoarea celui de-al șaselea cuvânt al lui MD la AX
mov MS+6, AX ; Mută rezultatul din AX în al șaselea cuvânt al lui MS
ret ; Întoarce-te din subrutină
Editor is loading...
Leave a Comment