Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Pomoć oko prekoračenja vrednosti označenih brojeva

  • 1 odgovor
  • 4.155 pregleda

Najnovija ↓

Pomoć oko prekoračenja vrednosti označenih brojeva 25.01.2009. u 09:42 · pre 216 meseci #1
Drugari molim vas za pomoć,

naime imam zadatak sa prekoračenjem vrednosti neoznačenih brojeva
gde su podaci sledeći:

Code:

 podaci segment
    ; PODACI
    b1        db    -128       ; 8 bitni operand
    b2        db    -2        ; 8 bitni operand
    zbir    dw    ?                  ; 16 bitni zbir
podaci ends


javlja se prekoračenje (Overflow) ukoliko ga rešavamo :

Code:


;PROGRAM
    mov ah,0            ;rezervišem ah za 16bitni rezultat
    mov    al,b1
    add    al,b2        ; problem !!! (-130)
        adc ah,0 
        
    mov    zbir,ax



Moje rešenje ovoga bi bilo:

Code:

 podaci segment
    ; PODACI
    b1        dw    -128       ; 16 bitni operand
    b2        dw    -2        ; 16 bitni operand
    zbir    dw    ?                  ; 16 bitni zbir
podaci ends

;PROGRAM
    
    mov    ax,b1
    add    ax,b2        
         
    mov    zbir,ax



Rezultat je dobar ali mislim da negde pravim logičku grešku
i ubijam se ali ne mogu da skapiram da li je ovo generalno rešenje za
problem ili samo puki koincident.

Unapred zahvalan

Re: Pomoć oko prekoračenja vrednosti označenih brojeva 27.01.2009. u 09:06 · pre 216 meseci #2
za kontrolu prekoracenja trebas koristiti EFLAGS registar

tacnije njegov OVERFLOW bit koji biva setovan kada do prekodacenja u aritmetici dodje

ako dodje do prekoracenja , moras koristiti veci registar
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme