|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2009
Messaggi: 3627
|
[Assembly 8086]Chiarimenti esercizio per domani....è urgente!
Ragazzi, per domani devo far eun esercizio in Assembly(8086), volevo chiedervi se è fatto bene.
L'esercizio è: 1.Scrivere un programma in assembly che calcoli l'espressione: (A-B*2)+D. A,B,D sono variabili numeriche di 1 byte. Indicare a fianco di ciascuna istruzione il contenuto dei registri interessati dopo l'esecuzione dell'istruzione stessa. 2.Dato l'esercizio precedente, illustrare il layout del segmento dati risultante B, supponendo che il registro DS contenga il valore esadecimale C8, indicare l'offset e l'indirizzo assoluto di ciascuna variabile. Il programma l'ho fatto: Codice:
var segment A DB ? B DB ? D DB ? E DB 'inserire un numero' 10,13,"$" var ends pila segment stack DW 100 dup pila ends progr segment assume CS:progr, DS:var, DS:pila inizio: MOV AX, VAR MOV DS, AX MOV AX ,PILA MOV SS,AX LEA DX, E ;output stringa MOV AH, 9H INT 21H MOV AH, 1H ;input A INT 21H SUB AL, 30 MOV A, AL LEA DX, E ;output stringa MOV AH, 9H INT 21H MOV AH, 1H ;input B INT 21H SUB AL, 30 MOV B, AL LEA DX, E ;output stringa MOV AH, 9H INT 21H MOV AH, 1H ;input D INT 21H SUB AL, 30 MOV B, AL MOV AL, B ;calcolo espressione ADD AL, B SUB A, AL ADD AL, D ADD AL,30 LEA DX, AL ;output risultato dell'espressione MOV AH,2H INT 21H MOV AH, 4CH INT 21H end inizio Potete aiutarmi ad indicare i valori dei registri? Potete aiutarmi a rispondere al secondo esercizio? Grazie 1000 a chi mi aiuta. ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Sep 2009
Messaggi: 3627
|
Ragazzi, per favore è urgentissimo!!!
![]() ![]() ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:26.