Menu

struct

2009-08-25
2013-04-20
  • Hjort Nidudsson

    Hjort Nidudsson - 2009-08-25

    Hello Japheth!

    I have done some testing on jwasm 1.96 (-Zm), and here are some issues:

    abc struc
    _a db ?
    _b db ?
    _c db ?
    abc ends
    abcdef    db 'abcdef'

    test:
    0: mov al,size abc
    1: mov al,size abc._b
    2: mov al,size abc+_b   
    3: mov al,_b
    4: mov al,abcdef._b
    5: mov al,abcdef+_b
    6: mov al,abcdef.size abc._b

    result:
    tasm    3,4,4,1,'b','b','e'
    masm    3,1,4,1,'b','b','b'
    wasm    3,1,4,1,'b','b','b'
    jwasm    3,1,3,0,'a','a','a'

    In masm/tasm ‘_c’ holds distance and size:
    mov [bx._c],-1
    mov [bx+_c],-1

    masm/tasm:
    mov byte ptr [bx+2],FF
    mov byte ptr [bx+2],FF

    jwasm:
    mov byte ptr [bx],FF
    mov word ptr [bx],FFFF

     
    • Nobody/Anonymous

      Helli nidud,

      It's a bug in v1.96. Now fixed except for the last expression:

      mov [bx+_c],-1

      which still  looses type info. Code generated is

      mov word ptr [bx+2],FFFF

      However, a warning "Size not specified" is displayed, so this bug is probably less severe.

      japheth

       
    • Hjort Nidudsson

      Hjort Nidudsson - 2009-08-27

      > However, a warning "Size not specified" is displayed, so this bug is probably less severe.
      Yes, this will be helpful, and I assume this is followed by ", assuming: WORD".

      The most important (at least for me) is the [bx+2] issue, so thanks!

      nidud

       
    • Hjort Nidudsson

      Hjort Nidudsson - 2009-09-10

      I am currently recompiling some old TASM/BCC/TLIB library code using JWASM/WCC/WLIB, and installed JWASMR in the Borland IDE.

      This works very well, using the TASM-filter to capture output from the compiler:
      -Zm –Iinc -Fo$OUTNAME $SAVE CUR $CAP MSG(TASM2MSG) $EDNAME

      When building the library I used JWASM in the makefiles, and this works fine, but when I used JWASMR on this code:

      include exist.inc
      exist equ notexist

      exist.asm 1: error A2104: Cannot open include file 'notexist.inc'

      Extended version:

      [compiler.inc]
      __TASM__ = 1

      [clib.inc]
      include compiler.inc
      ifdef __TASM__
      compiler equ tasm
      else
      compiler equ jwasm
      endif

      [exist.asm]
      include clib.inc

      result:
      Tranfer clib.inc1: error A2104: Cannot open include file 'tasm.inc'

      This is not a big problem, but I get the "Cannot open include file '[bp-8].inc'", where RECT equ [bp-8] was defined, and rect.inc was included.

      Nidud

       
    • Nobody/Anonymous

      Hello,

      include exist.inc
      exist equ notexist

      it's a bug if jwasm tries to include file notexist.inc. This means that jwasm has expanded the argument of the INCLUDE directive, something which it shouldn't.

      The reason why this occurs with jwasmr only, but not with jwasm is because jwasm has the "fastpass" feature enabled which makes it read the source only once, in the first pass. Since this feature requires signicantly more memory, it's disabled for jwasmr.

      japheth

       

Log in to post a comment.