Esercizio calcolatrice in Assembly?
Ciao a tutti devo fare un programma che simuli la calcolatrice in assembly, il testo è questo:
"Scrivere un programma misto che permetta di realizzare una semplice calcolatrice, la procedura principale deve richiedere l'inserimento di due numeri (compresi tra zero e nove) compreso il simbolo operazionale. La procedura chiamata riceve dal chiamante i due numeri e il simbolo operazionale e poi esegue l'operazione richiesta e restituisce il risultato al chimante.
Usare i registri per passare i parametri."
Ovviamente non vi chiedo la codifica ma qualcuno saprebbbe spiegarmi bene la parte relativa alla "programmazione mista" e più precisamente come passare i parametri da una procedura all'altra usando i registri?
2 risposte
- cronosLv 68 anni faRisposta preferita
mi sembra una domanda piuttosto strana. se devono essere usati i registri per passare parametri allora la faccenda funziona più o meno come la INT 21h, per esempio quella per leggere il carattere da tastiera:
INT 21h
AH=2 - write character to standard output.
DL = character to write, after execution AL = DL.
example:
mov ah, 2
mov dl, 'a'
int 21h
quindi la tua procedura chiamata che esegue la somma avrà una sintassi come questa:
;
; esegue la somma di due numeri da una cifra
; DL=prima cifra
; DH=seconda cifra
; AL=la somma restituita
somma PROC NEAR
mov al,dl
add al,dh
ret
somma ENDP