From: Mateusz Viste <mate...@nospam.viste.fr>

On Mon, 10 Apr 2017 23:30:35 -0500, Rugxulo wrote:
> Unless I'm mistaken, conditional jumps on 8086 don't go beyond -128 ..
> 127 (signed) byte range. Hence the billions of workarounds (TASM
> "jumps", MASM "option ljmp", etc).

I won't argue about what opcode is or is not available on 8086, since I
did not bother decoding their exact meaning. I do see however that (NASM
at least) can assemble JZ and JZ SHORT in two very different forms, JZ
SHORT being significantly shorter.

  5 00000000 B80100          mov ax, 1
  6 00000003 48              dec ax
  7 00000004 746A            jz short gameover

  5 00000000 B80100          mov ax, 1
  6 00000003 48              dec ax
  7 00000004 7503E9DD01      jz gameover

Of course NASM always uses the short form whenever it's possible, but
when the jump is too far away it silently uses the longer form, hence the
need to always specify SHORT if one wants to be sure what's going on.

Mateusz


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

--- Internet Rex 2.29
 * Origin: capcity2.synchro.net - 502/875-8938 (276:10/901)
--- Synchronet 3.15a-Linux ListGate 1.3
 *  Capitol City Online - Frankfort, KY - telnet://capitolcityonline.net


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to