![]() | Biologie | Chimie | Didactica | Fizica | Geografie | Informatica |
| Istorie | Literatura | Matematica | Psihologie |
Scrieti instructiunile in limbaj de asamblare care realizeaza pentru variabilele de tip octet P,Q, R:
P=Q-R
P=-(P+1)
Q=P+R
R=3*Q+7
P=Q-P-1
|
Instructiune |
Modul de adresare a operandului sursa |
Modul de adresare a operandului destinatie |
|
ORG $4000 | ||
|
PB: EQU $4000 | ||
|
QB: EQU $4001 | ||
|
RB: EQU $4002 | ||
|
Entry: LDAA QB |
extins |
inerent |
|
LDAB RB |
extins |
inerent |
|
SBA |
inerent |
inerent |
|
STAA PB |
inerent |
extins |
|
INC PB |
extins |
extins |
|
NEG PB |
extins |
extins |
|
LDAA PB |
direct |
inerent |
|
LDAB RB |
direct |
inerent |
|
ABA |
inerent |
inerent |
|
STAA QB |
inerent | |
|
LDAA QB |
extins |
inerent |
|
LDAB QB |
extins |
inerent |
|
ABA |
inerent |
inerent |
|
ABA |
inerent |
inerent |
|
LDAB #7 |
imediat |
inerent |
|
ABA |
inerent |
inerent |
|
STAA RB |
inerent |
extins |
|
INC PB |
extins |
extins |
|
LDAA QB |
extins |
inerent |
|
LDAB PB |
extins |
inerent |
|
SBA |
inerent |
inerent |
|
STAA PB |
inerent |
extins |
|
DONE: BRA DONE | ||
|
ORG $FFFE | ||
|
DC.W Entry |
Observatii Dupa declararea variabilelor, am realizat pe rand operatiile cerute. In cazul inmultirii cu 3, am observat ca o astfel de operatie intre 2 numere pe 8 biti nu se poate memora decat pe 16 biti. De aceea am folosit adunarea, pentru a putea stoca valoarea finala intr-o variabila pe 8 biti.
1) Rescrieti secventele pentru variabile word.
|
Instructiune |
Modul de adresare a operandului sursa |
Modul de adresare a operandului destinatie |
|
ORG $4000 | ||
|
PW: EQU $4000 | ||
|
QW: EQU $4002 | ||
|
RW: EQU $4004 | ||
|
Entry: LDD QB |
extins |
inerent |
|
SUBD RW |
extins |
Inerent |
|
STD PW |
extins |
Inerent |
|
LDX PW |
extins |
inerent |
|
INX |
inerent |
inerent |
|
LDD #0000 |
imediat |
inerent |
|
STX PW |
inerent |
direct |
|
SUBD PW |
extins, inerent |
inerent |
|
STD PW |
inerent |
extins |
|
LDD PW |
extins |
inerent |
|
ADDD RW |
extins, inerent |
inerent |
|
STD QW |
inerent |
extins |
|
LDD QW |
extins |
inerent |
|
ADDD QW |
extins, inerent |
inerent |
|
ADDD QW |
extins, inerent |
inerent |
|
ADDD #7 |
imediat |
inerent |
|
STD RW |
inerent |
extins |
|
| ||
|
LDS PW |
extins |
inerent |
|
INS |
inerent |
inerent |
|
LDD QW |
extins |
inerent |
|
STS PW |
inerent |
extins |
|
SUBD PW |
extins, inerent |
inerent |
|
STD PW |
inerent |
extins |
|
DONE: BRA DONE | ||
|
ORG $FFFE | ||
|
DC.W Entry |
Observatii Deoarece pe 16 biti adunarile si scaderile nu s-au mai putut face cu acumulatorii A si B, a fost necesara folosirea registrilor D, X, Y si chiar SP. Pentru operatia P=-(P+1), am incarcat in registrul D valoarea 0, din care am scazut P+1, memorat in registrul X.
2) Scrieti un program care calculeaza: W=(P+6-R)*Q. Verificati functionarea corecta pentru P=23, Q=8 R=1
|
Instructiune |
Modul de adresare a operandului sursa |
Modul de adresare a operandului destinatie |
|
ORG $4000 | ||
|
PB: EQU $4000 | ||
|
QB: EQU $4001 | ||
|
RB: EQU $4002 | ||
|
WW: EQU $4003 | ||
|
Entry: LDAA PB |
extins |
inerent |
|
LDAB #6 |
imediat |
inerent |
|
ABA |
inerent |
inerent |
|
LDAB RB |
extins |
inerent |
|
NEGB |
inerent |
inerent |
|
ABA |
inerent |
inerent |
|
LDAB QB |
extins |
inerent |
|
MUL |
inerent |
inerent |
|
STD WW |
inerent |
extins |
|
DONE: BRA DONE | ||
|
ORG $FFFE | ||
|
DC.W Entry |
4) Idem pt.: R=[(P+Q)*(T+V-W)]/2. Verificati pt. P=3, Q=6, T=60, V=90, W=8
|
Instructiune |
Modul de adresare a operandului sursa |
Modul de adresare a operandului destinatie |
|
ORG $4000 | ||
|
PB: EQU $4000 | ||
|
QB: EQU $4001 | ||
|
TB: EQU $4002 | ||
|
VB: EQU $4003 | ||
|
RW: EQU $4004 | ||
|
Entry: LDAA QB |
extins |
inerent |
|
LDAB PB |
extins |
inerent |
|
ABA |
inerent |
inerent |
|
STAA PB |
inerent |
extins |
|
LDAA TB |
extins |
inerent |
|
LDAB VB |
extins |
inerent |
|
ABA |
inerent |
inerent |
|
LDAB WB |
extins |
inerent |
|
NEGB |
inerent |
inerent |
|
ABA |
inerent |
inerent |
|
LDAB PB |
extins |
inerent |
|
MUL |
inerent |
inerent |
|
LDX #$0002 |
imediat |
inerent |
|
IDIV |
inerent |
inerent |
|
STX RW |
inerent |
extins |
|
DONE: BRA DONE | ||
|
ORG $FFFE | ||
|
DC.W Entry |
Copyright © 2025 - Toate drepturile rezervate