Vai al contenuto

Primario: Sky Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Secondario: Sky Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Sfondo: Blank Waves Squares Notes Sharp Wood Rockface Leather Honey Vertical Triangles
Corsi di Laurea










ROX @ Unisa - Forum degli studenti di Ingegneria utilizza i cookie. Se prosegui la navigazione accetti il loro uso.    Accetto l'uso dei cookie
-->
Foto

Procedura richiamabile in C (Assembly x86)

Assembly x86

  • Effettua l'accesso per rispondere
Nessuna risposta in questa discussione

#1
pepp1995

pepp1995

    Newbie

  • Utente
  • Stella
  • 1 Messaggi:

Dovrei scrivere una procedura Assembler di nome power2 richiamabile da un programma scritto in linguaggio C per il calcolo dell’espressione X*2^Y.
Alla procedura power2 vengono passati i due parametri interi X e Y; la funzione restituisce nel registro AX il risultato dell’espressione. Si supponga che il programma chiamante sia compilato usando il modello di memoria small.

Allora, seguendo un manuale preso dal web l'ho impostato in questo modo:

PUBLIC _POWER2
.MODEL SMALL
.CODE
_POWER 2 PROC
PUSH BP
MOV BP,SP
MOV AX,[BP+4] ; il modello di memoria è un small quindi abbiamo una procedura di tipo Near
MOV CX,[BP+6]; i cui parametri sono allocati agli indirizzi bp+4 e +6
SHL AX, CL
E qui non capisco come fa ad effettuare un prodotto ed un elevamento a potenza
tramite una traslazione a sinistra , ed inoltre , come faccia ad utilizzare un contatore senza aver copiato alcun valore in esso








Leggono questa discussione 0 utenti

0 utenti, 0 ospiti, 0 utenti anonimi