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