![]() | ![]() |
|
|
PRIMA DI OGNI PROGRAMMA METTERE:" SJMP INIZIO "
" ORG 30H "
ALLA FINE: " FINE: SJMP FINE "
1.Calcolare l'area di un triangolo e spostar 919i87j e il risultato su R5:
INIZIO:
MOV 30H,#10
MOV 31H,#4
MOV A,30H
MOV B,31H
MUL AB
MOV B,#2
DIV AB
MOV R5,A
FINE:
2.Avendo due coppie di numeri, fare la somma e confrontare, se sono uguali
in accumulatore metto zero,(A=0),altrimenti continua:
INIZIO:
MOV 30H,#10
MOV 31H,#8
MOV 32H,#6
MOV 33H,#14
MOV A,30H
ADD A,31H
MOV 34H,A
MOV A,32H
ADD A,33H
CJNE A,34H,diversi
MOV A,#0
SJMP FINE
diversi:
MOV A,#1
FINE:
3.Supporre di avere a disposizione una tabella di 20 elementi memorizzati
a partire dall'indirizzo 30H. Azzerrare di tale tabella tutti gli
elementi che contengono un numero minore di 10:
INIZIO:
MOV R0,#30H
MOV R3,#0
ciclo:
CJNE @R0,#10,verif
increm:
INC R0
INC R3
CJNE R3,#20,ciclo
SJMP FINE
verif:
JNC increm
MOV @R0,#0
SJMP increm
FINE:
4.Fare la somma di 5 numeri con indirizzamento indiretto partendo da 30H:
INIZIO:
MOV R0,#30H
MOV R3,#5
CLR A
ciclo:
ADD A,@R0
INC R0
DEC R3
CJNE R3,#0,ciclo
FINE:
5.Programma capace di inserire 30H dove trovo lo 0:
INIZIO:
MOV R0,#30H
MOV R3,#10
ciclo:
CJNE R3,#0,contr
SJMP FINE
contr:
CJNE @R0,#0,cambia
SJMP incr
cambia:MOV @R0,30H
incr: INC R0
DEC R3
SJMP ciclo
FINE:
6.Mettere 1 se il numero S dispari, 0 se S pari:
INIZIO:
MOV R0,#30H
MOV R3,#0
ciclo:
CJNE R3,#20,confr
SJMP FINE
confr
MOV R1,#2
MOV A,@R0
MOV B,R1
DIV AB
JNC pari
MOV @R0,#1
SJMP increm
pari:
MOV @R0,#1
SJMP increm
increm
INC R0
INC R3
SJMP ciclo
FINE:
7.Tabella di 20 elementi che parte da 30H, mettere a 1
tutti gli elementi:
INIZIO:
MOV R0,#30H
MOV R3,#0
ciclo:
CJNE R3,#20,cambia
SJMP FINE
cambia:
MOV @R0,#1
INC R1
INC R3
SJMP ciclo
FINE:
Privacy |
Articolo informazione
Commentare questo articolo:Non sei registratoDevi essere registrato per commentare ISCRIVITI |
Copiare il codice nella pagina web del tuo sito. |
Copyright InfTub.com 2025