I'm not a student, but I am using a textbook called "Computer Systems, a Programmer's Perspective" to learn about processor architecture and assembly. I'm just getting into the section about IA32 assembly, and it asks this question:

For each of the following lines of assembly language, determine the appropriate instruction suffix based on the operands. (For example, mov can be rewritten as movb, movw, or movl.)

```
mov %eax, (%esp)
mov (%eax), %dx
mov $0xFF, %bl
mov (%esp,%edx,4), %dh
push $0xFF
mov %dx, (%eax)
pop %edi

```

I've looked at the answer key, and some of them make sense, like `push $0xFF` since that is a const the size of a byte. Like I said, I don't need to know the answers, as those are provided in the answer key, but the *reasons* aren't in the answer key.

Thank you for your time!