`` `forsamling
.Modellen lille
.stack 100h
.data
num1 dB -12; Første 8-bit underskrevet nummer
num2 db 5; Andet nummer til at formere sig med
Resultat DW?; Resultat af multiplikation (16-bit)
.kode
Hovedproc
Mov Ax, @Data; Initialiser datasegmentet Register
Mov DS, øks
Mov Al, Num1; Indlæs det første nummer i AL -register
Mov BL, Num2; Indlæs andet nummer i BL -register
Imul BL; Multiplicer Al med BL (resulterer i øks)
MOV -resultat, øks; Opbevar resultatet i variablen 'Resultat'
; Vis resultatet (valgfrit)
; ...
Mov Ah, 4ch; Afslutningsprogram
Int 21h
HOVED ENDP
Afslut hoved
`` `
Forklaring:
1. Initialisering:
- `.Model Small 'definerer hukommelsesmodellen (lille model) og indstiller programstrukturen.
- `.Stack 100H` reserver 100 timer byte til stakken.
- `.Data` -sektionen erklærer variabler:` Num1`, `Num2 'og` resultat'.
2. Indlæser numrene:
- `Mov Al, Num1` indlæser det første nummer i` al`-registeret, der bruges til 8-bit operationer.
- `mov Bl, Num2` indlæser det andet nummer i registeret` bl`.
3. Multiplikation:
- `imul bl` udfører den underskrevne multiplikation af` al` af `bl`. Resultatet gemmes i `AX '-registeret (16-bit).
4. Opbevaring af resultatet:
- `MOV-resultat, Ax` gemmer 16-bit-resultatet fra` Ax 'til variablen `resultat'.
5. Valgfri skærm:
- Du kan tilføje kode for at få vist resultatet ved hjælp af `Int 21H` med de relevante funktionskoder. Denne kodestykket fokuserer på selve multiplikationen.
6. forlader programmet:
- `MOV AH, 4CH` Indstiller` AH` -registeret til DOS -funktionskoden for at forlade programmet.
- `Int 21h` kalder DOS -afbrydelsen for at udføre exit -funktionen.
Vigtige noter:
-Dette program bruger signeret 8-bit multiplikation, hvilket betyder, at resultatet kan være en 16-bit underskrevet værdi. IMUL` -instruktionen håndterer Sign Extension automatisk.
- Variablen 'Resultat' erklæres som et ord ('DW') for at holde 16-bit-resultatet.
- Du kan ændre `Num1` og` Num2` for at ændre de numre, du vil multiplicere.
- Samlingskoden skal samles ved hjælp af en samler som MASM eller TASM og derefter linket for at oprette en eksekverbar fil.