Consider the Intel 8086 CPU that internally sets the contents of its CS register
ID: 3852255 • Letter: C
Question
Consider the Intel 8086 CPU that internally sets the contents of its CS register to all 1's and IP register to all 0's following a reset. As mentioned in class, Intel designers conceived that a jump instruction could be placed starting at the reset location (as indicated by CS=1's and IP=0's) in memory to have the cpu jump to the first instruction of a startup program (such as built-in test or BIOS) and execute it. Assume the startup program to execute after the reset has its first instruction stored in non-volatile (such as read only) memory starting at A0BF2. a) What is the version of jump instruction that can be used with proper operands to change the contents of CS: IP to point to the opcode byte of first instruction in the startup program. b) Show how it is possible to jump anywhere in the entire memory space of the 8086 cpu, which is given by 00000h to FFFFFh. c) Determine the jump instruction, complete with its operands, in symbolic form, i.e. in the form that would appear in a list file. Indicate if it is a far or near jump and discuss the rationale for this choice. d) Determine the machine language equivalent of the jump instruction. Explain the conversion process, i.e. the what function of each byte in the machine code is.Explanation / Answer
A )JUMP instruction :
All the instruction in the program will be executed sequentially, there may be some situation to skip the particular code or move to next set of task. For modifying the course of execution jump instruction is used.
Jump instruction transfers program control to another location within specifying return information. The destination (target) operand specifies where the control has to be transferred. This operand can be an immediate value, a general-purpose register, or a memory location.
There are four types of jump version , short, near, far-direct, far indirect
Far jump : jump instruction with operand specifies the control has been transferred to the specified location given in operand.
JMP im16:im16 // jump far move to specified location and changes the CS content to given address
b)
JMP instruction enable the program control to jump anywhere in the program
JMP @ A +Dptr performs a jump relative to the DPTR register. The operand in the register A is used as the offset(00000h to FFFFFh) to the address in the Dptr register. The effective destination for a jump can be anywhere in the program memory space.
c)
Jmp opd // jump short version, direct address
Jmp r/m // jump short version, indirect address
Jmp ptr16:16 // jump Far version, direct address
Jmp m16:32 // jump Far version, indirect address
d)
The jump instruction saves all the address to stack. And moves to next instruction given in the code
Move a,r1
Jmp rs
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.