NASM 0.98.39 vs. NASM 2.03.01 disassembly




Just an FYI,

I was cleaning up the 16-bit .asm I created from NASM's 0.98.39 insns.dat to
find errors with Willow's Crudasm. I ran the resulting NASM 0.98.39 .bin
file through Ndisasm.exe from NASM 2.03.01 (both for DOS). This is a list
of those instructions which didn't disassemble the same. If it appeared
that 2.03.01 had a completely disassembled instruction, it follows after the
semi-colon. I also noticed that 'lfs' and 'lgs' disassembled correctly, but
not 'lds' and 'les'...(?)


BITS 16

cmpxchg486 [0xBBEE],al
cmpxchg486 al,bl
cmpxchg486 [0xBBEE],ax
cmpxchg486 ax,bx
cmpxchg486 [0xBBEE],eax
cmpxchg486 eax,ebx
ibts [0xBBEE],ax
ibts ax,bx
ibts [0xBBEE],eax
ibts eax,ebx
lds ax,[0xBBEE]
lds eax,[0xBBEE]
les ax,[0xBBEE]
les eax,[0xBBEE]
mov eax,tr3
mov tr3,eax
pmvgezb mm1,[0xBBEE] ;subps xmm1,[0xbbee]
pmvlzb mm1,[0xBBEE] ;cvtdq2ps xmm1,[0xbbee]
pmvnzb mm1,[0xBBEE] ;cvtps2pd xmm1,[0xbbee]
pmvzb mm1,[0xBBEE] ;addps xmm1,[0xbbee]
pop cs ;nop word [bx]
psubsiw mm1,[0xBBEE] ;andnps xmm1,[0xbbee]
psubsiw mm0,mm1 ;andnps xmm0,xmm1
smi
smint
smintold
xbts ax,[0xBBEE]
xbts ax,bx
xbts eax,[0xBBEE]
xbts eax,ebx
pshuflw xmm0,xmm1,byte 0x33 ;db 0xF2 pshufw mm0,mm1,0x33
pshuflw xmm1,[0xBBEE],byte 0x33 ;db 0xF2 pshufw mm1,[0xbbee],0x33
rsdc es,tword [0xBBEE] ;vmwrite eax,dword [0xbbee]
svdc tword [0xBBEE],es ;vmread dword [0xbbee],eax
svldt tword [0xBBEE]
movdq2q mm1,xmm1

HTH,


Rod Pemberton

.