Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Assembly x86 > Re: Any more gr...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 22 of 39 Topic 4612 of 4729
Post > Topic >>

Re: Any more graceful way to saturate adds?

by pete <spamtrap@[EMAIL PROTECTED] > Apr 17, 2008 at 05:05 PM

In article 
<9c1c6a51-9572-4ffb-9546-b94987c1720f@[EMAIL PROTECTED]
>
           spamtrap@[EMAIL PROTECTED]
 "Jim Leonard " writes:

> On Apr 15, 12:11 am, pete <spamt...@[EMAIL PROTECTED]
> wrote:
> > Just to be absolutely clear about the problem (and without any
> > attempt at optimizing the code), can you confirm that the below
> > is what you're after?
> >
> > (unsigned sample in DL, signed "update" in AL)
> >
> >         sub  dh, dh             ;DH = 0
> >         cbw                     ;sign-extend AL to AX
> >         add  dx, ax             ;signed addition
> > Now:
> >         if DH == 0, nothing to do: ans in DL
> >         if DH == FF, -ve overflow so clamp to 0: set DL = 0
> >         if DH == 1, +ve overflow so clamp to FF: set DL = FF
> >
> > Is that correct?
> 
> Yes, that's exactly correct.  My beginner's attempt at applying the
> clamping has been done with JMPs, which are really costly in an inner
> loop (especially on my lowly 808x) and I feel that I'm missing
> something obvious.
> 
> Was Terje's solution:
> 
>   add dl,al     ; Carry set if it overflows!
>   sbb al,al     ; AL = 0xff if overflow
>   or dl,al      ; Turns any overflow into 0xff
> 
> ...the right one?  I see overflow handling but not underflow...

Well, I'd guess that Terje has more expertise in his little 
finger that I in my entire body :-) but below is the best I can 
come up with -- still a jmp in there though...

; unsigned sample in DL, signed "update" in AL
        sub     dh, dh
	cbw
	add	dx, ax
	or	dh, dh
	jz	done
; either DH == FF (-ve overflow) or DH == 1 (+ve overflow)
        sar     dh, 1   ;now DH is 0 or FF, but the wrong way round
        not     dh      ;invert it
	mov	dl, dh
  done:

Perhaps (certainly!) someone can improve on that?

Pete
-- 
   "We have not inherited the earth from our ancestors,
    we have borrowed it from our descendants."
 




 39 Posts in Topic:
Any more graceful way to saturate adds?
Jim Leonard <spamtrap  2008-04-10 14:59:55 
Re: Any more graceful way to saturate adds?
(Dick Wesseling) <spam  2008-04-11 02:32:55 
Re: Any more graceful way to saturate adds?
Terje Mathisen <spamt  2008-04-11 09:41:42 
Re: Any more graceful way to saturate adds?
Jim Leonard <spamtrap  2008-04-11 11:05:19 
Re: Any more graceful way to saturate adds?
Terence <spamtrap@[EM  2008-04-11 16:40:10 
Re: Any more graceful way to saturate adds?
Terence <spamtrap@[EM  2008-04-11 23:28:22 
Re: Any more graceful way to saturate adds?
"Wolfgang Kern"  2008-04-12 12:51:54 
Re: Any more graceful way to saturate adds?
Robert Redelmeier <red  2008-04-12 19:29:18 
Re: Any more graceful way to saturate adds?
Richard Russell <spam  2008-04-12 13:52:03 
Re: Any more graceful way to saturate adds?
Terje Mathisen <spamt  2008-04-13 15:31:59 
Re: Any more graceful way to saturate adds?
Terence <spamtrap@[EM  2008-04-12 17:03:07 
Re: Any more graceful way to saturate adds?
"Rod Pemberton"  2008-04-12 23:06:56 
Re: Any more graceful way to saturate adds?
"Rod Pemberton"  2008-04-12 23:10:57 
Re: Any more graceful way to saturate adds?
Terje Mathisen <spamt  2008-04-13 15:00:06 
Re: Any more graceful way to saturate adds?
"Rod Pemberton"  2008-04-13 11:27:29 
Re: Any more graceful way to saturate adds?
"Alexei A. Frounze&q  2008-04-13 17:19:25 
Re: Any more graceful way to saturate adds?
"Rod Pemberton"  2008-04-14 02:41:38 
Re: Any more graceful way to saturate adds?
Jim Leonard <spamtrap  2008-04-14 06:58:12 
Re: Any more graceful way to saturate adds?
"Alexei A. Frounze&q  2008-04-14 03:39:12 
Re: Any more graceful way to saturate adds?
pete <spamtrap@[EMAIL   2008-04-15 05:11:19 
Re: Any more graceful way to saturate adds?
Jim Leonard <spamtrap  2008-04-15 07:30:34 
Re: Any more graceful way to saturate adds?
pete <spamtrap@[EMAIL   2008-04-17 17:05:43 
Re: Any more graceful way to saturate adds?
Terje Mathisen <spamt  2008-04-17 13:14:08 
Re: Any more graceful way to saturate adds?
Danjel McGougan <spam  2008-04-18 02:31:30 
Re: Any more graceful way to saturate adds?
Terje Mathisen <spamt  2008-04-18 11:21:01 
Re: Any more graceful way to saturate adds?
dave <spamtrap@[EMAIL   2008-04-18 13:57:11 
Re: Any more graceful way to saturate adds?
Jim Leonard <spamtrap  2008-04-21 07:23:39 
Re: Any more graceful way to saturate adds?
Jim Leonard <spamtrap  2008-04-21 07:33:56 
Re: Any more graceful way to saturate adds?
Esra Sdrawkcab <spamt  2008-04-21 20:07:15 
Re: Any more graceful way to saturate adds?
Terje Mathisen <spamt  2008-04-22 11:01:06 
Re: Any more graceful way to saturate adds?
Esra Sdrawkcab <spamt  2008-04-23 08:20:41 
Re: Any more graceful way to saturate adds?
"H. Peter Anvin"  2008-06-02 09:43:53 
Re: Any more graceful way to saturate adds?
Terje Mathisen <spamt  2008-06-02 19:53:52 
Re: Any more graceful way to saturate adds?
aku ankka <spamtrap@[  2008-04-22 00:38:05 
Re: Any more graceful way to saturate adds?
Terje Mathisen <spamt  2008-04-22 11:03:00 
Re: Any more graceful way to saturate adds?
aku ankka <spamtrap@[  2008-04-22 23:43:47 
Re: Any more graceful way to saturate adds?
Jim Leonard <spamtrap  2008-05-01 13:13:06 
Re: Any more graceful way to saturate adds?
Terje Mathisen <spamt  2008-05-02 09:11:22 
Re: Any more graceful way to saturate adds?
pete <spamtrap@[EMAIL   2008-05-02 04:38:05 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Fri Jul 25 15:14:08 CDT 2008.