| 1554 | } |
| 1555 | |
| 1556 | static void outEA32(DecodedOp* op, BString& out) { |
| 1557 | bool added = false; |
| 1558 | |
| 1559 | if (op->base!=SEG_ZERO) { |
| 1560 | outS(op->base, out); |
| 1561 | out.append(":"); |
| 1562 | } |
| 1563 | if (op->rm!=8) { |
| 1564 | outR32(op->rm, out); |
| 1565 | added = true; |
| 1566 | } |
| 1567 | if (op->sibIndex!=8) { |
| 1568 | if (added) { |
| 1569 | out.append("+"); |
| 1570 | } |
| 1571 | outR32(op->sibIndex, out); |
| 1572 | added = true; |
| 1573 | if (op->sibScale!=0) { |
| 1574 | out.append("<<"); |
| 1575 | out.append((op->sibScale==1)?"1":"2"); |
| 1576 | } |
| 1577 | } |
| 1578 | if (op->data.disp) { |
| 1579 | if (added) { |
| 1580 | out.append("+"); |
| 1581 | } |
| 1582 | out.append(op->data.disp, 16); |
| 1583 | } |
| 1584 | } |
| 1585 | |
| 1586 | static void outEA16(DecodedOp* op, BString& out) { |
| 1587 | bool added = false; |