INSTRUCTIUNI DE PRELUCRARE A DATELOR SI INSTRUCTIUNI DE CONTROL AL PROGRAMULUI
Scopul lucrarii
Lucrarea de fata isi propune familiarizarea cu instructiunile de transferuri de siruri de prelucrare a datelor specifice microprocesoarelor Intel functionand "in Modul Real".
1. Operatii de transferuri de siruri
Pentru aceste instructiuni sursa si destinatia se gasesc implicit astfel:
sursa - in segmentul format cu DS, cu adresa efectiva SI;
destinatia - in segmentul format cu ES, cu adresa efectiva DI.
Instructiuni pentru control ciclic
Instructiunile pe siruri pot fi repetate atata timp cat CX este diferit de 0. Din bucla se poate iesi cand CX=0 sau dupa o conditie pusa pentru valoarea indicatorului Z.
Repeta neconditio- |
OF DF IF TF SF ZF AF PF CF |
|
REP |
nat primitiva de | |
operatie cu siruri pe care o precede |
Instructiunea REP nu se aplica la instructiunile aritmetice si logice.
Operanzi |
Nr.de stari |
Octeti |
Exemple |
||
9 |
REP MOVSB |
||||
Repeta cat timp |
OF DF IF TF SF ZF AF PF CF |
||||
REPE | REPZ |
'egal' | cat timp 'zero' primitiva CMPS sau SCAS | ||||
Operanzi |
Nr.de stari |
Octeti |
Exemple |
||
9 |
REPE CMPSB |
||||
Repeta cat timp |
OF DF IF TF SF ZF AF PF CF |
||||
REPNE|REPNZ |
'neegal'| cat timp | ||||
'non-zero' primiti-va CMPS sau SCAS | |||||
Operanzi |
Nr.de stari |
Octeti |
Exemple |
||
9 |
REPNE SCASW |
||||
Primitivele operatiilor de transferuri de siruri sunt:
Transfera o compo- |
OF DF IF TF SF ZF AF PF CF |
||||
MOVS |
nenta a sirului | ||||
sursa in sirul destinatie | |||||
Operanzi |
Nr.de stari |
Octeti |
Exemple |
||
MOVSB ; pe octeti |
|||||
MOVSW ; pe cuvinte |
|||||
Obs.: Primitiva MOVS poate fi insotita de prefixul de repetabilitate REP; acesta adauga 9 stari.
Descrierea formala a semanticii:
((ES)0H + (DI)) ((DS)0H + (SI))
[((ES)0H + (DI) + 1) ((DS)0H + (SI) + 1)]
if (DF) = 0 then
(DI) (DI) + N
(SI) (SI) + N
else
(DI) (DI) - N
(SI) (SI) - N cu N=1 pentru octet
si N=2 pentru cuvant.
Incarca componen- |
OF DF IF TF SF ZF AF PF CF |
||||
LODS |
tele unui sir | ||||
in acumulator | |||||
Operanzi |
Nr.de stari |
Octeti |
Exemple |
||
LODSB ; pe octeti |
|||||
LODSW ; pe cuvinte |
|||||
LODS (Load String) salveaza un
element de la adresa DS:SI in
2. Instructiuni aritmetice
2.1. Operatii de adunare si scadere
Se va acorda o atentie deosebita modului in care sunt afectate fanioanele. La conventiile amintite se adauga:
- nrcel: numarul de celule cu care se poate face deplasarea sau rotatia unui operand.
Instructiunea ADD - instructinea de adunare a doi operanzi.
OF DF IF TF SF ZF AF PF CF |
||
ADD d,s |
Adunare |
x x x x x x |
Descrierea formala a semanticii, in general: (d) (d) + (s)
Operanzi |
Exemple |
Descrierea formala a semanticii |
AL|AX, data |
ADD AL,33H |
( |
r, data |
ADD CH,10H |
(CH) (CH) + 10H |
mem, data |
ADD [BP],ALFA |
((SS) 0H+(BP)) ((SS) 0H+(BP)) + ALFA |
r1, r2 |
ADD CL,CH |
(CL) (CL) + (CH) |
r, mem |
ADD SI,[SI+22H] |
(SI) (SI) + ((DS) 0H + (SI) + 23H) ((DS) 0H + (SI) + 22H ) |
mem, r |
ADD [BX],BX |
((DS)0H+(BX)+1) ((DS)0H+(BX)) ((DS) 0H+(BX)+1) ((DS) 0H+(BX)) + + (BX) |
Instructiunea ADC de adunare cu transport.
Adunare |
OF DF IF TF SF ZF AF PF CF |
|
ADC d,s |
cu transport |
x x x x x x |
Descrierea formala a semanticii, in general: (d) (d) + (s) + (CF)
Operanzi |
Exemple |
Descrierea formala a semanticii |
AL|AX, data |
ADC AL,15H |
( |
r, data |
ADC BX,0100H |
(BX) (BX) + 100H + (CF) |
mem, data |
ADC [DI],1234H |
((DS)0H+(DI)+1) ((DS)0H+(DI)) ((DS)0H+(DI)+1) ((DS)0H+(DI)) + + 1234H +(CF) |
r1, r2 |
ADC AX,DI |
(AX) (AX) + (DI) + (CF) |
r, mem |
ADC DX,[BX] |
(DX) (DX) +((DS)0H + (BX) + 1) ((DS)0H + (BX)) + (CF) |
mem, r |
ADC [BX+DI+12H],DX |
((DS) 0H + (BX) + (DI) + 13H) ((DS) 0H + (BX) + (DI) +12H) ((DS) 0H + (BX) + (DI) + 13H) ((DS) 0H + (BX) + (DI) +12H) + + (DX) + (CF) |
Instructiunea INC de incrementare cu 1 a unui operand scris in registrul destinatie.
Incrementarea |
OF DF IF TF SF ZF AF PF CF |
|
INC d |
destinatiei |
x x x x x |
|
Descrierea formala a semanticii, in general: (d) (d) + 1.
Operanzi |
Exemple |
Descrierea formala a semanticii |
r16 |
INC BX |
(BX) (BX) + 1 |
r8 |
INC |
( |
mem |
INC [BP+DI] |
((SS)0H + (BP) + (DI)) ((SS)0H + (BP) + (DI)) + 1 |
Instructiunea AAA de ajustare ASCII a unui numar scris in hexazecimal
Ajustare ASCII |
OF DF IF TF SF ZF AF PF CF |
|
AAA |
pentru adunare |
? ? x ? x |
Descrierea formala a
semanticii: if (
(
(AH) (AH) + 1
(AF) 1
(CF) (AF)
(
Instructiunea DAA de ajustare zecimala a unui numar scris in hexazecimal.
Ajustare zecimala |
OF DF IF TF SF ZF AF PF CF |
|
DAA |
pentru adunare |
x x x x x |
Descrierea formala a
semanticii: if (
(
(AF) 1
if
(
(
OF DF IF TF SF ZF AF PF CF |
||
SUB d,s |
Scadere |
x x x x x x |
Descrierea formala a semanticii, in general: (d) (d) - (s)
Operanzi |
Exemple |
Descrierea formala a semanticii |
AL|AX, data |
SUB AL,20H |
( |
r, data |
SUB BX,5566H |
(BX) (BX) - 5566H |
mem, data |
SUB [BP+25H],444H |
((SS) 0H+(BP)+26H) ((SS) 0H+(BP)+25H) ((SS) 0H+(BP)+26H) ((SS) 0H+(BP)+25H) - - 0444H |
r1, r2 |
SUB DX,DI |
(DX) (DX) - (DI) |
r, mem |
SUB SI,[BX+100H] |
(SI) (SI) - ((DS) 0H + (BX) + 101H) ((DS) 0H + (BX) + 100H) |
mem, r |
SUB [BP+50H],AX |
((SS) 0H + (BP) + 51H) ((SS) 0H + (BP) + 50H) ((SS) 0H + (BP) + 51H) ((SS) 0H + (BP) + 50H) - (AX) |
OF DF IF TF SF ZF AF PF CF |
||
SBB d,s |
Scadere cu imprumut |
x x x x x x |
Descrierea formala a semanticii, in general: (d) (d) - (s) - (CF)
Operanzi |
Exemple |
Descrierea formala a semanticii |
||
AL|AX, data |
SBB AX,1000H |
(AX) (AX) - 1000H - (CF) |
||
R, data |
SBB DI,23H |
(DI) (DI) - 0023H - (CF) |
||
mem, data |
SBB [BX+DI],33H |
((DS) 0H+(BX)+(DI)) ((DS) 0H+(BX)+(DI))- - 33H - (CF) |
||
R1, r2 |
SBB AL,BL |
( |
||
R, mem |
SBB AH,[DI+55H] |
(AH) (AH) - ((DS) 0H + (DI) + 55H) - (CF) |
||
mem, r |
SBB [BX],DL |
((DS) 0H + (BX)) ((DS) 0H + (BX)) - (DL) - (CF) |
||
Decrementarea |
OF DF IF TF SF ZF AF PF CF |
|||
DEC d |
destinatiei |
x x x x x |
||
Descrierea formala a semanticii, in general: (d) (d) - 1.
Operanzi |
Exemple |
Descrierea formala a semanticii |
||
R16 |
DEC AX |
(AX) (AX) - 1 |
||
R8 |
DEC DH |
(DH) (DH) - 1 |
||
mem |
DEC [BP+12H] |
((SS) 0H + (BP) + 12H) ((SS) 0H + (BP) + 12H) - 1 |
||
Complementare |
OF DF IF TF SF ZF AF PF CF |
|||
NEG d |
fata de 2 |
x x x x x 1* |
||
a destinatiei | ||||
Descrierea formala a semanticii, in general: (d) 0H - (d)
Operanzi |
Exemple |
Descrierea formala a semanticii |
R |
NEG AX |
(AX) 0H - (AX) |
mem |
NEG [DI] |
((DS) 0H + (DI)) 0H - ((DS) 0H + (DI)) |
* (CF) = 0 daca (d) = 0H
Compararea |
OF DF IF TF SF ZF AF PF CF |
|
CMP s1,s2 |
prin scadere |
x x x x x x |
a doi operanzi |
Descrierea formala a semanticii, in general: (s1) - (s2).
Operanzi |
Exemple |
Descrierea formala a semanticii |
|
AL|AX, data |
CMP AX,0FFFFH |
(AX) - FFFFH |
|
R, data |
CMP BX,10H |
(BX) - 0010H |
|
mem, data |
CMP [BP+SI+5H],0ABH |
((SS) 0H + (BP) + (SI) + 5H) - ABH |
|
R1, r2 |
CMP AL,CL |
( |
|
R, mem |
CMP BH,[100H] |
(BH) - ((DS)0H + 100H) |
|
mem, r |
CMP [BX+SI+45H],DX |
((DS) 0H + (BX) + (SI) + 46H) ((DS) 0H + (BX) + (SI) + 45H) - (DX) |
Ajustare ASCII |
OF DF IF TF SF ZF AF PF CF |
|
AAS |
pentru scadere |
? ? x ? x |
Descrierea formala a
semanticii: if (
(
(AF) 1
(CF) (AF)
(
Ajustare zecimala |
OF DF IF TF SF ZF AF PF CF |
|
DAS |
pentru scadere |
x x x x x |
Descrierea formala a
semanticii: if (
(
(AF) 1
if (
(AL) (AL) - 60H
(CF)
Exemplu:
1. Se realizeaza adunarea dintre 45h+87h=0CCh, se va face corectia zecimala utilizand instructiunea DAA;
DAA | |
operanzi BCD |
45 + 87 |
Rezultat binar Corectie +auxcarry |
CC + 6 6 |
Rezultat zecimal |
3 2 |
2. Se realizeaza adunarea dintre 34h+38h=0CCh, se va face corectia ASCII utilizand instructiunea AAA.
AAA | |
operanzi ASCII |
34+ 38 |
corectie |
6C 6 |
Forteaza 0 si C=1 |
02 + 30 |
Rezultat ASCII afisabil |
32 |
Pentru ambele exemple se vor urmari descrierile formale ale instructiunilor.
Observatie: Toate instructiunile aritmetice si logice pozitioneaza indicatorii de conditie functie de valoarea rezultatului. Rezultatul poate fi salvat si in memorie.
Z=1 rezultat=0 sau operanzii sunt egali la comparatie
S=1 rezultat<0
S=0 si Z=0 rezultat>0 - NU zero si NU negativ
C=1 transport din rangul cel mai semnificativ. La instructiunile logice C=0
O=1 rezultatul depaseste spatiul alocat
P=1 numarul bitilor de 1 din acumulator este par
Instructiunile logice se fac bit cu bit iar indicatorii se pozitioneaza functie de intregul rezultat. Pentru a selecta un bit sau un grup de biti din rezultat se foloseste o masca.
Nu intotdeauna C=1 inseamna depasire. Depasirea poate sa apara la adunarea numerelor de acelasi semn si S difera de acest semn. C=1 la adunarea numerelor negative, fara a fi depasire.
2.2. Operatiile aritmetice de inmultire si impartire
OF DF IF TF SF ZF AF PF CF |
||
MUL s |
Inmultire |
x ? ? ? ? x |
Descrierea formala a semanticii, in general:
pentru operatia pe 8 biti:
(AX) (
(CF) 0
else (CF) 1
(OF) (CF) ,
iar pentru operatia pe 16 biti:
(DX)(AX) (AX) * (s) if (DX) = 0 then
(CF) 0
else (CF) 1
(OF) (CF).
Operanzi |
Exemple |
Descrierea formala a semanticii |
r8 |
MUL DL |
(AX) (AL) * (DL) |
r16 |
MUL BX |
(DX)(AX) (AX) * (BX) |
mem8 |
MUL [BP+DI] |
(AX) (AL) * ((SS) 0H + (BP) + (DI)) |
mem16 |
MUL [1268H] |
(DX) (AX) (AX) * ((DS) 0H + 1269H) ((DS)0H + 1268H) |
Inmultire cu semn
OF DF IF TF SF ZF AF PF CF |
||
IMUL s |
Inmultire cu semn |
x ? ? ? ? x |
Descrierea formala a semanticii, in general:
pentru operatia pe 8 biti:
(AX) (AL) * (s)
if (AH) = 0 or (AH) = FF then
(CF) 0
else (CF) 1
(OF) (CF) ,
iar pentru operatia pe 16 biti:
(DX)(AX) (AX) * (s)
if (DX) = 0 or (DX) = FFFF then
(CF) 0
else (CF) 1
(OF) (CF).
Operanzi |
Exemple |
Descrierea formala a semanticii |
r8 |
IMUL DL |
(AX) ( |
r16 |
IMUL CX |
(DX)(AX) (AX) * (CX) |
mem8 |
IMUL [0ABCDH] |
(AX) ( |
mem16 |
IMUL [BX+550H] |
(DX) (AX) (AX) * ((DS) 0H+(BX)+551H) ((DS)0H+(BX)+550H) |
Exemplu:
Exemplificarea oeratiei de inmultire cu semn pentru numere intregi sau zecimale
Ajustare ASCII |
OF DF IF TF SF ZF AF PF CF |
|
AAM |
pentru inmultire |
x x ? x ? |
(dupa inmutire) |
Descrierea formala a
semanticii: (AH) (
(
OF DF IF TF SF ZF AF PF CF |
||
DIV s |
Impartire |
? ? ? ? ? |
Descrierea formala a semanticii, in general:
pentru operatia pe 8 biti:
if (AX) div (s) > FF then
(SP) (SP) - 2
((SS)0H + (SP) + 1) ((SS)0H + (SP)) (F)
(IF) 0
(TF) 0
(SP) (SP) - 2
((SS)0H + (SP) + 1) ((SS)0H + (SP)) (CS)
(CS) (00003H) (00002H)
(SP) (SP) - 2
((SS)0H + (SP) + 1) ((SS)0H + (SP)) (IP)
(IP) (00001H) (00000H)
else (AL) (AX) div (s)
(AH) (AX) mod (s) ,
iar pentru operatia pe 16 biti:
if (DX)(AX) div (s) > FFFF then
(SP) (SP) - 2
((SS)0H + (SP) + 1) ((SS)0H + (SP)) (F)
(IF) 0
(TF) 0
(SP) (SP) - 2
((SS)0H + (SP) + 1) ((SS)0H + (SP)) (CS)
(CS) (00003H) (00002H)
(SP) (SP) - 2
((SS)0H + (SP) + 1) ((SS)0H + (SP)) (IP)
(IP) (00001H) (00000H)
else (AX) (DX)(AX) div (s)
(DX) (DX)(AX) mod (s) .
Operanzi |
Exemple |
Descrierea formala a semanticii |
r8 |
DIV CL |
( (AH) (AX) mod (CL) |
r16 |
DIV BX |
(AX) (DX)(AX) div (BX) (DX) (DX)(AX) mod (BX) |
mem8 |
DIV [BP+50H] |
(AL) (AX) div ((SS) 0H + (BP) + 50H) (AH) (AX) mod ((SS) 0H + (BP) + 50H) |
mem16 |
DIV [DI+41H] |
(AX) (DX) (AX) div ((DS) 0H+(DI)+42H) ((DS) 0H+(DI)+41H) (DX) (DX) (AX) mod ((DS) 0H+(DI)+42H) ((DS)0H+(DI)+41H) |
OF DF IF TF SF ZF AF PF CF |
||
IDIV s |
Impartire cu semn |
? ? ? ? ? |
Descrierea formala a semanticii este similara cu cea de la instructiunea precedenta, cu exceptia comparatiei initiale care, pentru intregii cu semn, este:
pentru impartirea pe 8 biti:
if (AX) div (s) > 0 and (AX) div (s) > FF or
(AX) div (s) < 0 and (AX) div (s) < 0-FF-1 then ,
iar pentru impartirea pe 16 biti:
if (DX)(AX) div (s) > 0 and (DX)(AX) div (s) > FFFF or
(DX)(AX) div (s) < 0 and (DX)(AX) div (s) < 0-FFFF-1 then
Operanzi |
Exemple |
Descrierea formala a semanticii |
||
R8 |
DIV BL |
( (AH) (AX) mod (BL) |
||
R16 |
DIV CX |
(AX) (DX)(AX) div (CX) (DX) (DX)(AX) mod (CX) |
||
mem8 |
DIV [BX+SI] |
(AL) (AX) div ((DS) 0H + (BX) + (SI)) (AH) (AX) mod ((DS) 0H + (BX) + (SI)) |
||
mem16 |
DIV [BP] |
(AX) (DX)(AX) div ((SS)0H +(BP) +1) ((SS)0H +(BP)) (DX) (DX)(AX) mod ((SS)0H +(BP) +1) ((SS)0H +(BP)) |
||
Ajustare ASCII pt. |
OF DF IF TF SF ZF AF PF CF |
|||
AAD |
impartire (inainte |
x x ? x ? |
||
de impartire) | ||||
Descrierea formala a semanticii:
(
(AH) 0H .
Extindere (cu semn) |
OF DF IF TF SF ZF AF PF CF |
|
CBW |
a unui octet la un | |
cuvant |
Descrierea formala a
semanticii: if (
(AH) 00H
else (AH) FFH.
Extindere (cu semn) |
OF DF IF TF SF ZF AF PF CF |
|
CWD |
a unui cuvant la un | |
cuvant dublu |
Descrierea formala a semanticii: if (AX) < 8000H then
(DX) 0000H
else (DX) FFFFH.
Observatie
La impartire trebuie sa avem deimpartitul < impartitorul vazute ca numere subunitare fiindca rezultatul trebuie sa fie subunitar. In caz contrar avem depasire.
Exemplu:
Fie numerele 1/4250 < 1/35 in acest caz nu apare depasire. Restul are semnul deimpartitului.
La impartire numarul din AX trebuie extins spre stanga in DX, prin copierea bitului de semn.
Desfasurarea lucrarii
Programul 1.
Aplicatie pentru exemplificarea modului de utilizare a instructiunilor de prelucrare siruri de caractere.
ORG 100h
;st1: MOV BX,CS ;seteaza segmentul de date
; MOV DS,BX ;egal cu segmentul de cod
; Translateaza zona de memorie
Mov Cx,n ; lungime sir
Mov Si,offset sir1 ; saveaza in SI adresa de inceput al sirului sir1
Mov Di,offset sir2 ; saveaza in SI adresa de inceput al sirului sir1
Cld ; DF=0 directie stinga spre dreapta
Rep Movsb ; mutare sir
; Sterge zona de lungime 20
Mov AL,'B' ; se salveaza B
Mov DI,offset zona ; adresa inceput zona
Mov CX,20 ; lungime zona
Rep Stosb ; incarcare continut registru AL in zona
; Translatie zona spre dreapta
Std ; DF=1 directie dreapta spre stinga
Mov CX,16 ; lungime sir
Mov SI,offset sir2+15 ; adresa ultimului octet din sir
Mov DI,offset sir2+26 ; adresa ultimului octet destinatie
Rep Movsb ; mutare sir dreapta spre stinga
; Comparatie siruri: sir1 cu sir3
Mov SI,offset sir1 ; adresa sir sursa
Mov DI,offset sir3 ; adresa sir destinatie
Mov CX,16 ; lungime de comparatie
CLD ; DF=0 directie stinga spre dreapta
Repe Cmpsb ; repeta atat timp cat octetii sunt egali
JL loop ; sir1 < sir3 ( primul octet diferit)
Mov DX,offset sir3 ; afisare sir3
JMP short c2
loop: Mov DX,offset sir1 ; afisare sir1
c2: Mov AH,9 ; functie afisare
int 21h
n equ 25
sir1 db 'ma numesc $'
sir2 db 30 dup(20h)
sir3 db 'Janine $'
zona db 50 dup('B'),'$'
Program 2
Fie doua tqblouri A si B, elementele fiind reprezentate pe cate 2 octeti, Se aduna elementele tablourilor iar rezultatul se depune in C.
Se considera fiecare tablou format din 10 elemente plasate la adresele A la DS:0, B la DS:20 si C la DS:30.
C(I)=A(I)+B(I)
DS:0 |
A |
DS:20 |
B |
DS:30 |
C | |||
0 |
A(1) |
0 |
B(1) |
0 |
C(1) | |||
2 |
A(2) |
2 |
B(2) |
2 |
C(2) | |||
SI 4 |
A(3) |
SI 4 |
B(3) |
SI 4 |
C(3) | |||
6 |
6 |
6 | ||||||
.. |
.. |
.. | ||||||
14 |
A(10) |
14 |
B(10) |
14 |
C(10) |
MOV SI,0 ; index I=1 -registrul de segment implicit este DS
MOV CX,8 ; contor pentru cicluri (numar de elemente tablou)
eticheta: MOV AX,[SI+0] ;AX=A(I)
ADD AX,[SI+20];AX=A(I)+B(I) 20 numarul de locatii pe care sunt reprezentate elementele ;tabloului
MOV [SI+30],AX ; memorare rezultat la C(I)
ADD SI,2 ; incrementare index pentru randul urmator(I=I+1)
LOOP eticheta ; salt pentru CX # 0 si face CX=CX-1
INT 3
Pogram 3
Sa se inmulteasca 03h cu 80h.
MOV AL, 03h
MOV BL, 80h
MUL BL
Sa se inmulteasca 3 cu 128 (numere fara semn) se va obtine in AX 384 = 0180h
mov al, 03h
mov bl, 80h
imul bl
Daca se inmulteste 3 cu -128 (numere cu semn) si se obtine in AX -384 = 0FE80h.
Ajustare zecimala in urma unei operatii de adunare: se aduna 77 cu 55, se va plasa 77 in AL si 55 in BL in format impachetat.
MOV AL, 77H ; Incarca 77 si 55 ca numere impachetate
MOV BL, 55H
ADD AL, BL ; Aduna 77 cu 55 si obtine 0CCh
DAA ; Ajusteaza 0CCh la 132 numar BCD impachetat 1 in indicatorul de transport (CF) si 32 in AL
Programul 4
Se va utiliza operatia de scadere (SBB)
Programul urmator contine un singur segment mixt code+date+stiva.
; Fie un tablou a caror elemente de lungime n sunt scazute
program1 segment
assume cs:program1,ds:program1,ss:program1;se defineste un singur segment mixt
st1:
mov ax,program1 ; initializare registre segment
mov ds,ax
mov ss,ax
mov sp,offset stiva ; initializare pointer stiva
mov cx,4 ; numar cifre zecimale
mov si,3 ; index ultima cifra
et1:
mov al,a[si]
sbb al,b[si] ;scadere elemente de la adresa curenta indicata de SI si DI
das ; corectie zecimala pt.scadere
mov c[si],al ; memorare octet rezultat
dec si ; index octet urmator
loop et1 ; ciclu pina CX > 0
int 3 ; revenire in afd (terminare)
; zona memorie pentru date
a db 31h,15h,37h, ;elemente tablou descazut
b db 26h,11h,65h, ;elemente tablou scazator
c db 4 dup(0) ; se aloca un spatiu de 4 octeti din memorie pentru salvare rezultat
; Zona pentru stiva
db 25 dup(?) ; rezervare spatiu stiva de 25 octeti
stiva equ $ ; varful initial al stivei - $ este adresa curenta contor amplasare
program1 ends
end st1 ; adresa lansare program
Programul 5
Sa se realizeze impartirea numrelor 234h la 36h. Sa se ajusteze zecimal rezultatul.
Politica de confidentialitate |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |