Contact US

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Use of the REPE command in a loop

Use of the REPE command in a loop

Use of the REPE command in a loop

I'm new to assembly and have been doing well, but upon analyzing this code I've been given some trouble.
Can you guys explain what REPE does, and what has to happen in this loop for DL never to be set to 0?

CODE --> Assembly

00414A26  |.  F3:A6         REPE CMPS BYTE PTR DS:[ESI],BYTE PTR ES:[EDI]
00414A28  |.  0F92C0        SETB AL
00414A2B  |.  0F97C2        SETA DL
00414A2E  |.  28C2          SUB DL,AL 

RE: Use of the REPE command in a loop

I haven't programmed in assembler for many years, but from memory the REP commands usually decrement (E)CX and terminate when it equals 0.

I think that CMPS instruction means compare the source and destination bytes and that the E in REPE means repeat until equal.

As such I would guess that the instruction means something like : Repeat the comparison of the the bytes at DS:ESI and ES:EDI until they are equal.

Since the REP commands automatically increment DS:ESI and ES:EDI, I'm presuming that this is being used to get the appropriate byte(s) (in AL and DL) on which the following lines of code operate.

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members! Already a Member? Login

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close