Index: /trunk/src/VBox/Disassembler/DisasmFormatYasm.cpp
===================================================================
--- /trunk/src/VBox/Disassembler/DisasmFormatYasm.cpp	(revision 60417)
+++ /trunk/src/VBox/Disassembler/DisasmFormatYasm.cpp	(revision 60418)
@@ -466,5 +466,5 @@
         if (pDis->fPrefix & DISPREFIX_LOCK)
             PUT_SZ("lock ");
-        if(pDis->fPrefix & DISPREFIX_REP)
+        if (pDis->fPrefix & DISPREFIX_REP)
             PUT_SZ("rep ");
         else if(pDis->fPrefix & DISPREFIX_REPNE)
@@ -477,4 +477,5 @@
         char szTmpFmt[48];
         const char *pszFmt = pOp->pszOpcode;
+        bool fIgnoresOpSize = false;
         switch (pOp->uOpcode)
         {
@@ -496,4 +497,5 @@
             case OP_INSB:
                 pszFmt = "insb";
+                fIgnoresOpSize = true;
                 break;
             case OP_INSWD:
@@ -502,4 +504,5 @@
             case OP_OUTSB:
                 pszFmt = "outsb";
+                fIgnoresOpSize = true;
                 break;
             case OP_OUTSWD:
@@ -508,4 +511,5 @@
             case OP_MOVSB:
                 pszFmt = "movsb";
+                fIgnoresOpSize = true;
                 break;
             case OP_MOVSWD:
@@ -514,4 +518,5 @@
             case OP_CMPSB:
                 pszFmt = "cmpsb";
+                fIgnoresOpSize = true;
                 break;
             case OP_CMPWD:
@@ -520,4 +525,5 @@
             case OP_SCASB:
                 pszFmt = "scasb";
+                fIgnoresOpSize = true;
                 break;
             case OP_SCASWD:
@@ -526,4 +532,5 @@
             case OP_LODSB:
                 pszFmt = "lodsb";
+                fIgnoresOpSize = true;
                 break;
             case OP_LODSWD:
@@ -532,4 +539,5 @@
             case OP_STOSB:
                 pszFmt = "stosb";
+                fIgnoresOpSize = true;
                 break;
             case OP_STOSWD:
@@ -639,4 +647,15 @@
                 *(int *)&pDis->Param2.fParam |= OP_PARM_v;
                 break;
+        }
+
+        /*
+         * Add operand size prefix for outsb, movsb, etc.
+         */
+        if (fIgnoresOpSize && (pDis->fPrefix & DISPREFIX_OPSIZE) )
+        {
+            if (pDis->uCpuMode == DISCPUMODE_16BIT)
+                PUT_SZ("o32 ");
+            else
+                PUT_SZ("o16 ");
         }
 
