X86 jump (was: Formatting and verifying MFM hard disks

From: Fred Cisin <cisin_at_xenosoft.com>
Date: Fri Nov 28 13:21:55 2003

Exactly. (JMP C800:0005)
<pedantic>
EAh is a "far jump", 5 bytes, with offset and segment specified.
(Don't forget that intel is Least Significant Byte first)

But also be aware that there are many other jumps in x86:
"near jump", 3 bytes, with offset specified for jumping within
the segment currently specified in CS
"Short jump" or "relative jump", 2 bytes, with a range of 128
bytes from current location
"Conditional jumps", 2 bytes, which are all relative, and
jump or don't jump based on various flags
"CALL"s, both near and far, which push the IP and jump
"Int", which pushes the flags, turns of interrupts, and looks
up far jump destination in the Interrupt Vector Table

By writing such a jump program and putting it into the
boot record of a floppy disk, then you can format drives
for use with other OS's without having to go near
PC/MS-DOS or WINDOZE.

But, if you are going to boot DOS, . . .
DEBUG is the most powerful and useful program that MICROS~1
has ever provided. It is present in EVERY version of
MS-DOS and WINDOZE.
For formatting a drive, it is handier to have than just the
jump program, since you can use it for the jump, use it to
disassemble the ROM (if you have a controller that puts the
routine at a different address), read and write disk sectors
(it assumes a DOS disk), view or edit RAM, or use it to write
ANY program (such as a better OS).
</pedantic>



On Fri, 28 Nov 2003, Geoff Reed wrote:

> so EAh is jump in x86 assembly, eh ? :)
>
> At 09:36 PM 11/27/03, you wrote:
> >A five byte file (with an extension of .COM) will do it nicely:
> >EAh 05h 00h 00h c8h
> >On Thu, 27 Nov 2003, Gene Buckle wrote:
> > > c800:5
Received on Fri Nov 28 2003 - 13:21:55 GMT

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:36:21 BST