3 ms·
Execution occurs with two registers, Code Segment and Instruction Pointer. Normally, you use other operation codes (JMP, CALL, etc) because they will take into
by cdumler 9y ago
Execution occurs with two registers, Code Segment and Instruction Pointer. Normally, you use other operation codes (JMP, CALL, etc) because they will take into account modifying IP or CS:IP, as appropriate. It would be a really odd situation where you would change the CS, not update IP, and have the proper alignment where it can execute the next instruction. Normally, all of that is computed by the compiler/linker and executed with proper operation codes.
The 8086 is a weird beast where the memory access is two 16 bit values mapped to 20 bits (ie. 1 megabyte into overlapping 64k blocks offset by 16 bytes each time). It was easier to write code staying inside a single segment, so chunks of code were often written staying inside one. Nothing particularly useful comes to mind just updating CS; but, my assembly days were a long time ago.