Non-murder solution:
Place and hold the apples precisely on top of one another. (Make sure your fingers are not in the way.) From one side of the apple tower, go horizontally exactly two thirds of the way to the other side. At that position, cut vertically through both apples from top to bottom. You now have two pieces that are two thirds of an apple each, and two pieces that are one third each. The kid you like best will receive the end slices without the apple core in it.
More realistically, disregard the stupid premise and make as many cuts as you need.
This is x86 assembler. (Actually, looking at the register names, it’s probably x86_64. On old school x86, they were named something like al, ah (8 bit), ax (16 bit), or eax (32 bit).) Back in the old days, when you pressed a key on the keyboard, the keyboard controller would generate a hardware interrupt, which, unless masked, would immediately make the CPU jump to a registered interrupt handler, interrupting whatever else it was doing at the point. That interrupt handler would then usually save all registers on the stack, communicate with the keyboard controller to figure out what exactly happened, react to that, restore the old registers again and then jump back to where the CPU was before.
In modern times, USB keyboards are periodically actively polled instead.