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 3,362 of 4,675   
   Rod Pemberton to bilsch   
   Re: it should print junk6789 but prints    
   24 Apr 18 22:08:25   
   
   From: NoEmail@nospicedham.trraxvfeqa.prg   
      
   On Tue, 24 Apr 2018 16:20:47 -0700   
   bilsch  wrote:   
      
   > On 04/24/2018 04:04 AM, Bartc wrote:   
   > > On 24/04/2018 10:48, bilsch wrote:     
      
   > >> The boot sector jumps to this code.   
   > >> It should print junk6789 but prints only j   
   > >> Why it not print junk6789 ?   TIA.   Bill S.     
   > >      
   > >>   
   > >> pbuf    times 80 db 0   
   > >> string    db 'junk'     
   > >      
   > >>            mov si,pbuf   
   > >>            mov di,string   
   > >> lup8:     mov al,[di]   
   > >>            mov byte[si],al   
   > >>            inc si   
   > >>            inc di   
   > >>            cmp di,4   
   > >>            jbe lup8     
   > >    
   > > di starts at label 'string'. Is that address 0? If not then   
   > > comparing it with 4 looks odd.   
   > >    
   > > If string has an address of at least 80 as seems likely, then this   
   > > will compare false and only one character is copied to the buffer.   
   > >      
   >    
   > Indeed.  Here's the fix to the code above.  It prints 'junk' but not    
   > 'junk6789'.  My real question is why doesn't it print the 6789 part?   
   >    
   > string    db 'junk',0   
   >    
   >            mov si,pbuf   
   >            mov di,string   
   > lup8:     mov al,[di]   
   >            cmp al,0   
   >            jz  ovr1   
   >            move byte[si],al   
   >            inc si   
   >            inc di   
   >            jmp lup8   
   > ovr1:   
   >    
      
   Why wasn't this your fix?   
      
               mov si,pbuf   
               mov di,string   
     lup8:     mov al,[di]   
               mov byte[si],al   
               inc si   
               inc di   
               cmp di,4+string   
               jbe lup8     
      
      
   Rod Pemberton   
   --    
   I believe in the right to life.  That's why I oppose gun control.   
      
   --- 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