Esercizio assembler

chack1172

Utente Senior
Autore del topic
27 Aprile 2013
1.538
69
Miglior risposta
1
Ciao raga,
raga per domani devo fare un programma in assembler che faccia la somma di due numeri e non so come fare.
La somma la so fare, però ci ha dato un numero a 32 bit e non so in che registro metterlo perchè il registro AX è a 16 bit.
I due numeri sono 3AF76h e 2BCh
 
Si, ho dovuto guardare un attimino le istruzioni non ho diretta esperienza con questo assembly... dal momento che i tuoi registri sono limitati a 16 bit, l'unico modo per memorizzare un numero a 32 bit è di "spezzarlo" in due parti di 16 bit ciascuna. Per esempio 3AF76h lo copi nei registri ax e bx: ax potrebbe contenere i 16 bit più significativi (3A), mentre bx gli altri meno significativi (F76H). Il secondo numero può essere tranquillamente contenuti nel registro cx che occupa solo 16 bit. Poi sommi bx con cx (questo potrebbe generare overflow portando il carry flag pari a 1). Al termine sommi ax con il carry flag (con adc). Una roba di questo tipo
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
 
  • Like
Reactions: 1 person
Grazie @ptm domani ti faccio sapere se va bene.

--- Aggiornato ---

[/COLOR @ptm un'altra cosa.
Siano a e b due variabili contenenti i numeri sopra, per fare la sottrazione il procedimento è questo?
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
 
Non sono troppo sicuro dei registri che hai usato, ma il ragionamento è praticamente lo stesso della somma: fai la differenza tra le parti meno significative e poi sistemi il "borrow"