Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> Programmazione >> Computer Programming Languages >> .

Scrivi un programma di lingua di assemblaggio per moltiplicare il numero firmato a 8 bit per un numero?

Assemblaggio `` `

.Model piccolo

.stack 100h

.dati

num1 db -12; Primo numero firmato a 8 bit

num2 db 5; Secondo numero per moltiplicare

Risultato DW?; Risultato della moltiplicazione (16 bit)

.codice

Proc principale

mov ax, @data; Inizializza il registro dei segmenti di dati

mov ds, ascia

mov al, num1; Carica il primo numero in AL Register

mov bl, num2; Carica il secondo numero in Registro BL

imul bl; Moltiplica Al per BL (risulta in AX)

risultato mov, ax; Memorizzare il risultato nella variabile "risultato"

; Visualizza il risultato (opzionale)

; ...

Mov Ah, 4ch; Programma di uscita

int 21h

ENDP principale

End Main

`` `

Spiegazione:

1. Inizializzazione:

- `.Model Small` definisce il modello di memoria (piccolo modello) e imposta la struttura del programma.

- `.stack 100h` Riserve 100h byte per lo stack.

- La sezione `.data` dichiara variabili:` num1`, `num2` e` risultato`.

2. Caricamento dei numeri:

- `Mov Al, Num1` carica il primo numero nel registro` al`, che viene utilizzato per le operazioni a 8 bit.

- `mov bl, num2` carica il secondo numero nel registro` bl`.

3. Moltiplicazione:

- `imul bl` esegue la moltiplicazione firmata di` al` di `bl`. Il risultato verrà memorizzato nel registro `ax` (16 bit).

4. Scorri il risultato:

- Risultato da `Mov, Ax` memorizza il risultato a 16 bit da` ax` nella variabile `risultato '.

5. Display opzionale:

- È possibile aggiungere codice per visualizzare il risultato utilizzando `int 21H` con i codici di funzione appropriati. Questo frammento di codice si concentra sulla moltiplicazione stessa.

6. Uscita dal programma:

- `Mov Ah, 4CH` imposta il registro` ah` sul codice funzione DOS per uscire dal programma.

- `Int 21H` chiama l'interrupt DOS per eseguire la funzione di uscita.

Note importanti:

-Questo programma utilizza una moltiplicazione firmata a 8 bit, il che significa che il risultato potrebbe essere un valore firmato a 16 bit. L'istruzione `imul` gestisce automaticamente l'estensione del segno.

- La variabile `risultato" viene dichiarata come una parola (`dw`) per mantenere il risultato a 16 bit.

- È possibile modificare `num1` e` num2` per modificare i numeri che si desidera moltiplicare.

- Il codice di assemblaggio dovrà essere assemblato utilizzando un assemblatore come MASM o TASM e quindi collegato per creare un file eseguibile.

 

Programmazione © www.354353.com