PDA

Visualizza la versione completa : [assembler 8086] quiz istruzioni


MrX87
23-06-2009, 00:06
ciao a tutti, ho trovato alcuni quiz sul codice assembler 8086, uno di questi dice così:



Si considerino le seguenti istruzioni assembly: quale di esse è corretta, assumendo che VAR sia una variabile di tipo WORD?

a) mov VAR, [bx]
b) mov [bx*16], 25
c) mov [bx+4], dx
d) mov [cx], 0

Le ho provate al compilatore e sembra che mi dia errore solo sulla risposta A!! ma poichè nei quiz ci deve essere solo una risposta corretta, mi sembra un pò strano!! io sapevo che anche l'istruzione B non è corretta perchè non si può effettuare quella moltiplicazione! però sono in dubbio tra la C e la D...mi sembrano entrambe corrette!!
se qualcuno sa dirmi qualcosa in più lo ringrazio molto

Mad_al
23-06-2009, 02:13
Allora, di primo acchitto, se non vado errato, la prima è errata, poichè se VAR è di tipo WORD, non puoi assegnare il contenuto della cella [bx] ...(spero qualcuno mi corregga se non è vero).
la seconda non può essere giusta poichè non si può moltiplicare l'indirizzo di [bx] per 16, non ha senso.... (spero non stia dicendo cavolate)
stessa motivazione per la terza. mentre mi sembra corretta la quarta, cioè l'assegnazione di 0 alla cella [cx].
N.B. non tocco assembler da anni....

MrX87
23-06-2009, 12:22
mah...io veramente sapevo che l'istruzione C (mov [bx+4], dx) si può fare...anche perchè se la scrivi su un assemblatore non ti da errore!

Mad_al
23-06-2009, 12:31
alzo le mani su questo... come ripeto, è un pò che non guardo assembler. appena ho un attimo faccio una veloce verifica e ripasso :mame: e ti saprò dire...

MrX87
25-06-2009, 23:20
dopo un pò di studio e vari confronti, sono arrivato alla soluzione che secondo me quella corretta è la c:

c) mov [bx+4], dx
l'unica cosa però che non mi spiego, è perchè la d sarebbe sbagliata?? non riesco a spiegarmelo?? se qualcuno che sappia qualcosina d assembler magari riesce a dare un'occhiata!
thanks

Loading