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
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
;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
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