Re: announce: my very first disassembler now available (GPL)



"Willow" <wrschlanger@xxxxxxxxx> wrote in message
news:238433ba-ed92-404a-92ff-daa290bf29a7@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Can you do more testing on
the latest version and let me know how it goes?

;Ndisasm is displaying ecx for certain loop instructions. Crudasm doesn't.
I'm not sure what's correct.

;Crudasm .07 (or 1.07?) 16-bit decoding on the left, Ndisasm 2.03.01 on the
right after the semicolon. Use a fixed width font, i.e., notepad.

o32 iretd ;iretd
lar eax,ebx ;lar eax,bx
ret word 0x0000 ;ret

;These offsets should be the byte offset forms of mov...
mov al,0x33 ;mov al,0x33
mov ax,0x0033 ;mov ax,0x33
mov eax,0x00000033 ;mov eax,0x33
mov bl,0x33 ;mov bl,0x33
mov bx,0x0033 ;mov bx,0x33
mov ebx,0x00000033 ;mov ebx,0x33

;sldt ax OK, sldt eax NOT
sldt ax ;sldt ax
sldt ax ;sldt eax

;o32's, missing spaces, odd placement of size, ?
o32 call far [0x33ff] ;call dword far [0x33ff]
call far0x3344:word 0x3344 ;call word 0x3344:0x3344
call far0xaabb:word 0x3344 ;call word 0xaabb:0x3344
call far0x3344:word 0xaabb ;call word 0x3344:0xaabb
o32 call far0xccdd:dword 0x00003344 ;call dword 0xccdd:0x3344
o32 call far0x3344:dword 0xaabbccdd ;call dword 0x3344:0xaabbccdd
o32 jmp far [0xccdd] ;jmp dword far [0xccdd]
o32 jmp far0xccdd:dword 0x00003344 ;jmp dword far [0xccdd]
o32 jmp far0x3344:dword 0xaabbccdd ;jmp dword 0x3344:0xaabbccdd
o32 jmp far [0xbbee] ;jmp dword far [0xbbee]

;Shift and rotate against fixed register cl...
;ror uses cl, but I'd check for correctness
;also sal is decoding as shl...
rcl bl,dl ;rcl bl,cl
rcl bx,dl ;rcl bx,cl
rcl ebx,dl ;rcl ebx,cl
rcr bl,bl ;rcr bl,cl
rcr bx,bl ;rcr bx,cl
rcr ebx,bl ;rcr ebx,cl
rol bl,al ;rol bl,cl
rol bx,al ;rol bx,cl
rol ebx,al ;rol ebx,cl
shl bl,ah ;shl bl,cl
shl bx,ah ;shl bx,cl
shl ebx,ah ;shl ebx,cl
sar bl,bh ;sar bl,cl
sar bx,bh ;sar bx,cl
sar ebx,bh ;sar ebx,cl
shr bl,ch ;shr bl,cl
shr bx,ch ;shr bx,cl
shr ebx,ch ;shr ebx,cl

;double shifts also against fixed register cl...
shld [0xbbee],ax,al ;shld [0xbbee],ax,cl
shld ax,bx,bl ;shld ax,bx,cl
shld [0xbbee],eax,al ;shld [0xbbee],eax,cl
shld eax,ebx,bl ;shld eax,ebx,cl
shrd [0xbbee],ax,al ;shrd [0xbbee],ax,cl
shrd ax,bx,bl ;shrd ax,bx,cl
shrd [0xbbee],eax,al ;shrd [0xbbee],eax,cl
shrd eax,ebx,bl ;shrd eax,ebx,cl

;xchg...
xchg bx,??? ;xchg ax,bx
xchg ebx,??? ;xchg eax,ebx
xchg bx,??? ;xchg ax,bx
xchg ebx,??? ;xchg eax,ebx
xchg byte [0xbbee],al ;xchg al,[0xbbee]
xchg bl,al ;xchg al,bl
xchg [0xbbee],ax ;xchg ax,[0xbbee]
xchg bx,??? ;xchg ax,bx
xchg [0xbbee],eax ;xchg eax,[0xbbee]
xchg ebx,??? ;xchg eax,ebx
xchg byte [0xbbee],al ;xchg al,[0xbbee]
xchg bl,al ;xchg al,bl
xchg [0xbbee],ax ;xchg ax,[0xbbee]
xchg bx,??? ;xchg ax,bx
xchg [0xbbee],eax ;xchg eax,[0xbbee]
xchg ebx,??? ;xchg eax,ebx

;unique decoding for string instructions
cmps byte [si],byte [es:di] ;cmpsb
cmps dword [si],dword [es:di] ;cmpsd
cmps word [si],word [es:di] ;cmpsw
ins byte [es:di],dx ;insb
ins dword [es:di],dx ;insd
ins word [es:di],dx ;insw
lods byte [si] ;lodsb
lods dword [si] ;lodsd
lods word [si] ;lodsw
movs byte [es:di],byte [si] ;movsb
movs dword [es:di],dword [si] ;movsd
movs word [es:di],word [si] ;movsw
outs dx,byte [si] ;outsb
outs dx,dword [si] ;outsd
outs dx,word [si] ;outsw
scas byte [es:di] ;scasb
scas dword [es:di] ;scasd
scas word [es:di] ;scasw
stos byte [es:di] ;stosb
stos dword [es:di] ;stosd
stos word [es:di] ;stosw

Good luck,


Rod Pemberton

.