home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.asm.x86      Ahh, the lost art of x86 assembly      4,675 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 4,515 of 4,675   
   Paul Edwards to Paul Edwards   
   Re: seg keyword   
   22 Nov 22 18:14:07   
   
   From: mutazilah@nospicedham.gmail.com   
      
   On Sunday, November 20, 2022 at 8:35:48 PM UTC+8, Paul Edwards wrote:   
      
   > And here is the new code, which is now preventing PDOS/86   
   > from booting:   
      
   I decided to have another crack at this, to see if the   
   recent changes to pdos/86 to build it using the huge   
   memory model instead of the large memory model,   
   with a 32-bit size_t, but still pure 8086 code, had made   
   this problem go away. But the problem was still there.   
      
   > .data   
   > addr0 dd handler0   
   > addr1 dd handler1   
   > addr3 dd handler3   
   > addr20 dd handler20   
   > addr21 dd handler21   
   > addr25 dd handler25   
   > addr26 dd handler26   
   >   
   > .code   
   >   
   > instint proc uses bx es ds   
   > mov bx, 0   
   > push bx   
   > pop es   
   > cli   
   > lds bx, addr0   
      
   This causes ds to be destroyed.   
      
   > mov es:[0h], bx   
   > mov es:[02h], ds   
   >   
   > lds bx, addr1   
      
   This uses the destroyed ds to attempt to access addr1 :-)   
      
   I solved the problem by doing this:   
      
           push ds   
           lds bx, addr1   
           mov es:[04h], bx   
           mov es:[06h], ds   
           pop ds   
      
   And now all of wasm, masm and as86 assemble the code,   
   but I can only test that wasm and masm actually work.   
      
   BFN. Paul.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca