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 2,835 of 4,675   
   Kerr Mudd-John to Kerr Mudd-John   
   Re: BASE64 again   
   18 Jul 17 09:00:14   
   
   From: notsaying@nospicedham.invalid.org   
      
   "Kerr Mudd-John"  wrote in   
   news:XnsA7B5A70834AB1admin127001@213.239.209.88:   
      
   > "Kerr Mudd-John"  wrote in   
   > news:XnsA7B56C91E6CE9admin127001@213.239.209.88:   
   >   
   >> "wolfgang kern"  wrote in   
   >> news:okdbps$1hi6$1@gioia.aioe.org:   
   >>   
   >>> Kerr Mudd-John wrote:   
   >>> ...   
   >>   
   >>>   
   >>>> An alternative (I don't know if it's better or worse for your   
   >>>> fixups)   
   [worse]   
      
   >> Another alternative: (needs cl=7 at start and 7 on the stack).   
   > cx=0007, not cl   
   >   
   >> 123 98             cbw   
   >> 124 49             dec          cx   
   >> 125 D3 C8          ror          ax,cl   
   >> 127 08 05          or           [di],al   
   >> 129 47             inc          di   
   >> 12A 88 25          mov          [di],ah   
   >   
   > or you can start here with cx=0 (still need 0x0007 on the stack)   
   >> 12C 49             dec          cx   
   >> 12D 79 03          jns          0132   
   >> 12F 4F             dec          di   
   >> 130 59             pop          cx        ; OR push dx   
   >> 131 51             push         cx        ;    pop cx   
   >> 132 AC             lodsb   
   >> 133 3C 3D          cmp          al,3D   
   >> 135 75 D4          jnz          010B   
   >> 137 59             pop          cx       ; tidy stack on exit   
   >>   
   >> or could set dl=7 and "push dx/pop cx" to save the extra 2 stack ops?   
   >   
      
   Yet another one!   
   uses 'xor' instead of 'or', so 1 less FU (FixUp);   
   88=mov changed for AA=stosb; 'cmp al' just 1 FU, no need for cbw.   
      
   0127 41             inc          cx   
   0128 41             inc          cx   
   0129 D3 E0          shl          ax,cl   
   012B 30 25          xor          [di],ah   
   012D 47             inc          di   
   012E AA             stosb   
   012F 4F             dec          di   
   0130 51             push         cx   
   0131 58             pop          ax   
   0132 3C 08          cmp          al,08   
   0134 75 03          jnz          0139   
   0136 4F             dec          di   
   0137 55             push         bp   
   0138 59             pop          cx   
   0139 AC             lodsb   
   013A 3C 3D          cmp          al,3D   
   013C 75 D1          jnz          010F   
      
   --- 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