Vuoi lavorare con loro insieme? È facile
Supponiamo di avere il numero 2643 - nella base 10. se la rompi a metà, avrai qualcosa come 26 e 43, giusto? bene sai che se ti moltiplica per due, devi moltiplicare da destra a sinistra e portare. Così fai - moltiplica il lato destro, e se c'è overflow, aggiungilo sul lato sinistro e poi moltiplica il lato sinistro.
Ad esempio:
(37 82) *2 -> ((37*2) + overflow) + 64 -> (74 + 1) 64 -> 75 64
vedere come ha funzionato? Lo stesso vale per la divisione - necessità di portare? Ruba dalla punta più alta. Vuoi aggiungere o sottrarre numeri? Non così difficile, dopo tutto!
I numeri binari funzionano allo stesso modo.
(01110110 10110011) * 10 = (0) <- 1110110(1) <- 01100110
In pratica si calcola l'estremità inferiore, quindi calcolare l'estremità superiore, quindi si applica l'overflow.
Che architettura e assemblatore? –
Non c'è niente da convertire. Iniziate a trattare la coppia di registri come una coppia che rappresenta un numero a 16 bit. Come funziona la matematica dipende da quali istruzioni sono disponibili sulla tua piattaforma. – harold
Nessun indizio. Sto lavorando con un programmatore di sistemi embedded. Dice di essere limitato. Può mandarmi un byte esadecimale. E poi un altro byte esadecimale. E dovrei essere in grado di trasformarli in un numero a 16 bit. Ma non sono sicuro di come. –