Consider the following assembly code fragment: pushl %ebp movl %esp, %ebp subl $
ID: 3863342 • Letter: C
Question
Consider the following assembly code fragment: pushl %ebp movl %esp, %ebp subl $ emptyset x 40, %esp movl %ebx, emptyset x 14(%esp) movl $1, %ebx Which one of the choices is able to undo the effects of the fragment above? popl %ebp movl %ebp, %esp addl $ emptyset x 4 emptyset, %esp movl emptyset x 14(%esp), %ebx movl 14(%esp), %ebx addl $4 emptyset, %esp movl %ebp, %esp popl %ebp movl emptyset x 14(%esp), %ebx movl %ebp, %esp popl %ebp popl %ebp movl %ebp, %esp movl -emptyset x 26(%ebp), %ebx addl $emptyset x4 emptyset, %esp movl - emptyset x 26(%ebp), %ebx addl $ emptyset x4 emptyset, %esp movl %ebp, %esp popl %ebpExplanation / Answer
2nd option is the correct one. As it is correctly undoing in the sequence which it the operations is performed on the registers. Whenever we made any changes to the registers we have to undo from the reverse of which we made changes otherwise we will get inconsistent or irrelevant answers.