if (mod == 3) { /* immediate <-> register */
imm = softx86_fetch_exec_byte(ctx);
if (w16)
+ {
if (sx) imm |= (imm&0x80) ? 0xFF80 : 0;
else imm |= softx86_fetch_exec_byte(ctx)<<8;
+ }
// TODO: For 386+ 32-bit instructions... if (d32) {...}
if (w16) {
imm = softx86_fetch_exec_byte(ctx);
if (w16)
+ {
if (sx) imm |= (imm&0x80) ? 0xFF80 : 0;
else imm |= softx86_fetch_exec_byte(ctx)<<8;
+ }
// TODO: For 386+ 32-bit instructions... if (d32) {...}
if (w16) {
if (mod == 3) { /* immediate <-> register */
imm = softx86_fetch_exec_byte(ctx);
if (w16)
+ {
if (sx) imm |= (imm&0x80) ? 0xFF80 : 0;
else imm |= softx86_fetch_exec_byte(ctx)<<8;
+ }
// TODO: For 386+ 32-bit instructions... if (d32) {...}
if (w16) {
imm = softx86_fetch_exec_byte(ctx);
if (w16)
+ {
if (sx) imm |= (imm&0x80) ? 0xFF80 : 0;
else imm |= softx86_fetch_exec_byte(ctx)<<8;
+ }
// TODO: For 386+ 32-bit instructions... if (d32) {...}
if (w16) {
lo = sx86_far_to_linear(ctx,seg,ofs);
softx86_fetch(ctx,NULL,lo,tmp,sz);
- op64(ctx,tmp,sz);
+ op64(ctx,(char*)tmp,sz);
}
}
}
lo = sx86_far_to_linear(ctx,seg,ofs);
softx86_fetch(ctx,NULL,lo,tmp,sz);
- op64(ctx,tmp,sz);
+ op64(ctx,(char*)tmp,sz);
softx86_write(ctx,NULL,lo,tmp,sz);
}
}