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,422 of 4,675   
   wolfgang kern to All   
   Re: DOS debug to com   
   31 May 18 16:02:44   
   
   From: nowhere@never.at   
      
   "Kerr-Mudd,John"  schrieb im Newsbeitrag   
   news:XnsA8F29BFD1FA4Dadmin127001@85.214.115.223...   
   > Having belatedly discovered GNU's xxd with it's -r option,   
   > I've done a version for DOS.   
   >   
   > If you can get the body of the hex into a com file, you can run the program   
   > so you never need to do it again, IYSWIM. Caters for both MS debug and grdb.   
   >   
   > Uses DOS redirection, so not much use to you, Wolfgang.   
   > (might wrap, lines are 78 long)   
      
   Yes even it doesn't make any sense for me, I couldn't resist to spend   
   1/4h to translate it just for fun... and I see many branches here :)   
      
      
   0100  BA 9D 01           dx=019d   
   0103  81 3E 82 00 2D 68  cmp[0082],682d    ;"-h"   
   0109  74 67              jz 0172   
   010b  31 DB              bx=0   
   010d  BE FE 41           si=41fe   
   0110  56                 push si   
   0111  BA 00 02           dx=0200   
      
   0114  53                 push bx   
   0115  31 DB              bx=0   
   0117  89 D7              di=dx             ;bad compiler*: 8B FA   
   0119  B9 00 40           cx=4000   
   011c  B4 3F              ah=3f   
   011e  CD 21              int 21   
   0120  5B                 pop bx   
   0121  91                 swap ax,cx   
   0122  E3 57              jcxz 017b   
   0124  81 FE FE 41        cmp si,41fe   
   0128  75 0E              jnz 0138   
   012a  B0 2D              al=2d             ;"-"   
   012c  AE                 scasb   
   012d  74 04              jz 0133   
   012f  B0 3E              al=3e             ;">"   
   0131  F2 AE              repnz scasb   
   0133  80 3D 64           cmp [di],64       ;"d"   
   0136  75 37              jnz 016f   
      
   0138  B3 32              bl=32   
   013a  B0 3A              al=3a   
   013c  F2 AE              repnz scasb       ;":"   
   013e  75 D4              jnz 0114   
   0140  83 C7 04           add di,4   
   0143  83 E9 04           sub cx,4   
   0146  72 CC              jc 0114   
   0148  87 F7              swap si,di   
      
   014a  AC                 lodsb   
   014b  3C 30              cmp al,30         ;"0"   
   014d  72 0F              jc 015e   
   014f  24 4F              and al,4f   
   0151  D4 37              divmod 37      ;aam(55)   
   0153  80 F2 01           xor dl,01   
   0156  75 05              jnz 015d   
   0158  4F                 dec di   
   0159  8A 25              ah=[di]   
   015b  D5 10              muladd 10      ;aad(16)   
   015d  AA                 stosb   
      
   015e  4B                 dec bx   
   015f  74 04              jz 0165   
   0161  E2 E7              loop 014a   
   0163  EB AF              jmp 114   
   0165  87 F7              swap si,di   
   0167  B0 0A              al=0a   
   0169  F2 AE              repnz scasb   
   016b  75 A7              jnz 0114   
   016d  EB C9              jmp 0138   
      
   016f  BA 87 01           dx=0187      ;"Not..."   
   0172  B4 09              ah=09   
   0174  CD 21              int 21   
   0176  B8 01 4C           ax=4c01      ;err   
   0179  CD 21              int 21   
   017b  B3 01              bl=01   
   017d  5A                 pop dx   
   017e  89 F1              cx=si        ;bad compliler*: 8B CE   
   0180  29 D1              sub cx,dx   
   0182  B4 40              ah=40   
   0184  CD 21              int 21   
   0186  C3                 curtain down   
   0187  Not debug dump file..$   
    Usage is: xxd-rcomfile..   
   "disfile" is either a grdb or MS debug "d"ump..$   
   01ef 123456789ABCDEF   
      
      
   *) 88 and 89 opcodes should only be used for memory writes,   
      8a and 8b are the standard READ (mem or reg) codes.   
   __   
   wolfgang   
      
   --- 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