introducere în organizarea calculatoarelor și limbaje de...

47
Curs 3 – Reprezentarea datelor 1 Introducere în organizarea calculatoarelor și limbaje de asamblare (IOCLA) Reprezentarea datelor în sistemele de calcul Modificat: Oct-9-18

Upload: others

Post on 19-Sep-2019

20 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 1

Introducereînorganizareacalculatoarelorșilimbajedeasamblare(IOCLA)

Reprezentareadatelorînsistemeledecalcul

Modificat:Oct-9-18

Page 2: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 2

Cuprins

• Datenumerice(întregi)• Reprezentareanumerelorînbaza2• Operaţiicunumereînbaza2• Reprezentareanumerelorînbaza16• Reprezentareanumerelorcusemn• Reprezentareatipurilordedatedenivelînalt

Page 3: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 3

Suport

•  IntroductiontoAssemblyLanguageProgramming*  AnexaA,fără4.1-A4.3

Page 4: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 4

DATENUMERICE(ÎNTREGI)

Page 5: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 5

Cereprezentămcu“date”?

•  instrucţiuni-princodurideinstrucţiuni•  date*  logice:Adevarat/Fals,Închis/Deschis,Pornit/Oprit*  numerice:întregi,fracţionare,pozitive/negative*  alfanumerice:caractere,text*  multimedia:sunet,imagine(audio/video)

•  structuridedate

Page 6: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 6

Datenumerice

•  Tipuriledebază*  Caractere,întregi,unelenumerefracţionare(floatingpoint)*  Toatecelelaltetipuriexistentesuntderivatedintipurilede

bază

•  Tipurileîntregi*  Numerecusemnsaufărăsemn

»  Celecusemnsuntconsideratepozitive

*  Aureprezentarepeunnumărdebiţi(8,16,32,64debiţi)

•  Tipurilefracţionare*  Virgulăfixăsauvirgulămobilă(floatingpoint)*  Uzualreprezentareînvirgulămobilă*  Vorfidetaliateîncapitolul9

6

Page 7: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 7

Lungimetipuridedateîntregi

•  signed/unsignedchar*  lungime1octet(8biti)(arh.pe32și64debiţi)

•  signed/unsignedshortint*  2octeţi(16biţi)(arh.pe32și64debiţi)

•  signed/unsignedint*  lungime4octeţi(32biţi)(arh.pe32și64debiţi)

•  signed/unsignedlongint*  lungime4octeţi(32biţi)(arh.pe32debiţi)*  Lungime8octeţi64debiţi)(arh.pe64debiţi)

•  signed/unsignedlonglongint*  lungime8octeţi(64biţi)(arh.pe32și64debiţi)

Page 8: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 8

Numereîntregifărăsemn

• Reprezentareprinsimboluri*  Modeluldescriereromanăanumerelor

IL=59XXXXXIX=59

*  Dezavantaj:nuneapăratoreprezentareunică,spaţiumareocupat

• Reprezentarepoziţională*  Reprezentareunică*  Alegereauneibazedenumeratie

»  Înfuncţiedecriteriisubiectivesauobiective»  Ex:înprezentbaza10,fenicieniiaveaubaza60,calculatoareleutilizeazăbaza2

Page 9: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 9

Bazedenumeraţie

• 

Page 10: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 10

Reprezentareanumerelorînbaza10

•  2891=2*10^3+8*10^2+9*10^1+1• Preferatăpentruspecificuluman(număratpe

degete)

Page 11: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 11

REPREZENTAREANUMERELORÎNBAZA2

Page 12: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 12

Reprezentareanumerelorînbaza2

• Reprezentarebinară• Ușordeimplementatpecalculator• Douăniveluri:închis/deschis,sus/jos*  circuitedigitale(vezicursdeelectronică)*  bit=0->bitulnuestesubtensiune*  bit=1->estesubtensiune

• Bit=BinaryDigit

Page 13: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 13

Formatebinaredereprezentare

• Bit*  binarydigit*  unitateaelementarădeinformaţie*  stareaunuibistabil,sauauneiceluleelementarede

memorie

• Octet(byte)*  grupde8biţi*  unitateaelementaradeadresarelacelemaimulte

calculatoareactuale(inclusivIntelx86)*  poatereprezentaovaloarenumerică,uncaracter(ASCII)

Page 14: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 14

Conversiidinbaza2înbaza10

•  10111010:1*2^7+0*2^6+1*2^5+1*2^4+1*2^3+0*2^2+1*2^1+0*2^0=186

• Rapide:*  10000000:?*  00100000:?*  00011111:?*  00001111:?*  00001110:?

Page 15: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 15

Conversiidinbaza10inbaza2

•  Clasic:seîmparteladoi,sereţinebitulderest;apoiseiacâtul,seîmpartela2,etc.

• Maiingineresc:seadunăsuccesivputerialelui2*  200=128+64+8=11001000*  163=128+32+2+1=10100011

• Rapid:*  32:?*  65:?*  15:?*  14:?

Page 16: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 16

OPERAŢIICUNUMEREÎNBAZA2

Page 17: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 17

Operaţiiaritmeticeînbaza2

• Adunare,scădere,împărţire,înmulţire• Aceleașiprincipiicalabaza10•  Făcutedecalculator•  Improbabilsăfienevoiedefăcutdenoi*  Dacăestecazul,facemconversiaînainteșiînapoiîn/din

baza10

Page 18: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 18

Operatiipebiţi

• Bitwiseoperations• BitwiseORvs.LogicalOR• AND• NOT• XOR(ExclusiveOR)

Page 19: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 19

Deplasări(shift)

•  Shiftright(SHR)•  Shiftleft(SHL)•  shiftlogicvs.shiftaritmetic*  clarificămlanumerecusemn

•  CeînseamnăSHRN,2(shiftladreaptacu2)?•  CeînseamnăSHLN,2(shiftladreaptacu2)?

Page 20: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 20

Măștidebiţi

• Valoripredefinite•  Folositepentruverificare•  Fiemasca11110000*  CeînseamnăN&masca?(bitwiseAND)*  CeînseamnăN|masca?(bitwiseOR)

•  CeînseamnăN|0,N&0,N&MAX,N|MAX?•  CeînseamnăN^N?(eXclusiveOR)•  CeînseamnăN^0,N^MAX?

Page 21: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 21

Exemplepracticedeoperatiipebiţi

• Reţelistică(mascădesubreţea,adresadesubreţea)• Hărţidebiţi(bitmaps):pentruspaţiuocupatpuţin:

gestiuneaspaţiuluiliberpedisc• Opţiuniactivesaunu:permisiuniUnixpefișiere

Page 22: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 22

REPREZENTAREANUMERELORÎNBAZA16

Page 23: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 23

Reprezentareanumerelorînbaza16

• Numităreprezentareînhexazecimal*  Informal:“înhexa”

• Deceesteutilă?*  Formăcompactăareprezentăriibinare*  4biţiformeazăocifrăhexa(nibble)

•  0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F• Reprezentareîningineriacalculatoarelor*  0x89AB*  89ABh

Page 24: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 24

Scenariideutilizarereprezentarehexa

• Dumphexapentrudatebinare*  Utilitareprecumxxd,hexdump,od

• Vizualizareadresedememorie*  Dezasamblare*  Debugging*  Hardware

• Generaredatebinare*  Demoecho,python,perl(peLinux)

Page 25: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 25

Conversiibaza2<->baza16

•  2->16*  Seiaucâte4biţișisetransformăînnibble*  1101:B,1110:E,11000101:C5

•  16->2*  Setransformăfiecarenibbleînșirde4biţi*  A:1010,C:1100,87:10000111

•  Exerciţiirapide*  11000000 10101000:?*  10010011 00111110:?*  ABCD:?*  9876:?

Page 26: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 26

Conversiibaza10<->baza16

•  Deobiceiaresenspentrunumerepânăîn256

•  10->16*  Seîmpartela16șisefolosesccâtulșirestul*  190->16*11+14->16*B+E->0xBE*  95->16*5+15->16*5+F->0x5F

•  16->10*  Înmulţirecu16aprimeicifreșiadunareaultimeia*  AA->16*A+A->160+10->170*  CC->16*C+C->192+12->204

Page 27: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 27

• Demoîngdb*  set$i=26*  p/d$i*2*  p/x$i*  p/t$i*  p/d0x22*  helpx*  set$j=-11*  p/d($j&0xff)*  Însasm:addpebyte11+245

Page 28: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 28

Împachetareadatelor(endianess)

•  LSB:LeastSignificantByte• MSB:MostSignificantByte•  Littleendian:LSBlaadresadememorieceamai

mică• Bigendian:MSBlaadresadememorieceamaimică•  Importantlatransferuldedateîntresisteme

diferite;dealesunformatcomun

•  x86:littleendian•  Internet:bigendian

Page 29: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 29

ReprezentareLittleEndian

*  Octeti:3AH,33H,12H

*  Cuvinte:1234H,56ABH,FFFFH

*  Dublu-cuvinte:01234567H,89ABCDEFH

3A 33 12 Adresă: x x+1 x+2 x+3 x+4

34 12 AB Adresă: x x+1 x+2 x+3 x+4 x+5 x+6 x+7

FF 56 FF

67 45 23 Adresă: x x+1 x+2 x+3 x+4 x+5 x+6 x+7 x+8 x+9

CD 01 EF AB 89

Page 30: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 30

• DemoînSASM*  v1db1,2,3,4,0xa,0xb,0xc,0xd*  v2dw0x0102,0x0304,0x0a0b,0x0c0d*  v3dd0x01020304,0xabcd6789*  Examinarecux/20xb&v1,x/20xh&v1,x/20xw&v1,etc

Page 31: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 31

REPREZENTAREANUMERELORCUSEMN

Page 32: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 32

Câtînseamnă0xFF?

• Depinde*  F*16+F=255,pentrunumărfărăsemn*  -1pentrureprezentarecusemn

•  Într-oreprezentarecusemntoţibiţiisuntparteanumărului(fiecarebitareoponderevalorică)

Page 33: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 33

Ideeadereprezentareanumerelorcusemn

•  Sealocăprimulbitpentrusemn*  0:numărpozitiv*  -1:numărnegativ

• Restulbiţilordauvaloarea

Page 34: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 34

Intuiţiareprezentăriinumerelorcusemn

0

valoareaefectivă

echivalentreprezentarefărăsemn

MAX_SIGNED

MIN_SIGNED

-1

Page 35: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 35

Exempledereprezentarecusemn

•  8biţi*  00000000(0x00):0*  01111111(0x7F):127(SCHAR_MAX)*  10000000(0x80):-128(SCHAR_MIN)*  11111111(0xFF):-1

•  16biţi*  00000000 00000000 (0x0000):0*  01111111 11111111 (0x7FFF):32767(SHRT_MAX)*  10000000 00000000 (0x8000):-32768(SHRT_MIN)*  11111111 11111111 (0xFFFF):-1

Page 36: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 36

Complementfaţăde2

•  Sistemuluzualdereprezentareanumerelorcusemn

•  ÎlvomnumiC2• Numerelepozitiverămânneschimbate• Numerelenegative*  Aucaprimbit1(bituldesemn)*  Algoritm

»  1.Seneagătotșiruldebiţireprezentândnumărulînmodul»  2.Seadună1lavaloarearespectivă,calaadunărileîntrenumereîntregifărăsemn

»  3.Setrunchiazășiruldebiţiladimensiuneainiţială

Page 37: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 37

CaracteristiciC2

• PentruoreprezentarepeNbiţi,acoperăplaja

*  Pentru8biţi:[-128,127]*  Pentru16biţi:[-32768,32767]

• DacăseincrementeazăfărăsemnMAX(reprezentareamaximă)seajungeînMIN(reprezentareaminimă)*  Demo

• Reprezentarealui-1eechivalentulceluimaimarenumărdacăarfireprezentareafărăsemn(numaibiţide1)

Page 38: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 38

ExempledereprezentaredenumereînC2

• Pe8biţi•  -20(not20+1)*  20:00010100*  not20:11101011*  -20înC2(not20+1):11101011+1:11101100

•  Cereprezinta11010101(0xD5),dacăștimcănumărulecusemn?*  Primulbit:1,negativ*  R-1:11010101–1=11010100*  -N=not(R-1)=00101011=43*  N=-43

Page 39: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 39

IncrementăriinteresanteînC2

•  SCHAR_MAX+1=SCHAR_MIN*  01111111+1=10000000*  signed_value(10000000)=-(NOT1000000+1)=-(01111111

+1)=-10000000=-0x80=-128(SCHAR_MIN)

•  -1+1=0(Duh!)*  11111111+1=00000000

Page 40: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 40

OperaţiiaritmeticeînC2

•  SCHAR_MIN+SCHAR_MAX*  10000000+01111111=11111111(-1)

•  -1+10*  11111111+00001010=00001001

•  100+100(ambelenumerecusemn)*  01100100+01100100=11010000->-56*  seschimbăbituldesemndeladoioperanzidesemnopus

»  seactivează“overflowflag”»  informaţiecărezultatuleste“incorect”

Page 41: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 41

Ceînseamnă?

•  0xFE•  (unsignedchar)-1•  (int)0xff•  charc=0xff;intd=c;

Page 42: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 42

Curiozate:INT_MIN%-1

• DemoînSASM:*  add,subpebyte*  activareCF,OF

Page 43: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 43

REPREZENTAREATIPURILORDEDATEDENIVELÎNALT

Page 44: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 44

Structuri

• Datecontigue• Datedediferitetipuri(dimensiuni,cusemn/fără

semn)• Odatăestelaunanumitdeplasament(offset)faţă

deadresadeînceputastructurii

Page 45: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 45

Vectori(arrays)

• Oînșiruire(deobiceicompactă)dedate• Vectordeîntregi(32debiţi)*  Lafiecare4octeţiavemonouăvaloareîntreagă*  A,A+1,A+2,A+3(littlesaubigendian)

•  sizeof(a):dimensiuneaocupatădetoateelementelevectorului

Page 46: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 46

Șiruri

• Vectordecaractere• UltimulcaracteresteNUL-terminatorul(‘\0’,

valoarea0x0)•  chars[]=“ana”;/*4bytes;NUL-terminated*/•  chars[]={‘a’,‘n’,‘a’};/*3bytes*/•  chars[]=“\xb0\xcd\xd5”;/*string(nonASCII)*/

Page 47: Introducere în organizarea calculatoarelor și limbaje de ...elf.cs.pub.ro/asm/res/cursuri/IOCLA_curs_03_Reprezentarea_datelor.pdfCurs 3 – Reprezentarea datelor 2 Cuprins • Date

Curs3–Reprezentareadatelor 47

Cuvintecheie

• Dateîntregi• Bazedenumeraţie• Baza10• Baza2• Baza16•  Conversii• Numerecusemn• Numerefărăsemn

•  Endianess• Bit,octet• Operaţiilogice(pebiţi)• Mascădebiţi• Deplasare(shift)• Nibble•  Complementfaţăde2•  Structuri,vectori,șiruri