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,357 of 4,675   
   bilsch to Bartc   
   Re: it should print junk6789 but prints    
   24 Apr 18 16:20:47   
   
   From: king621@nospicedham.comcast.net   
      
   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:   
      
   --- 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