* better
[mascara-docs.git] / hw / i386.reference / MOVSX.htm
blob2bb88de7de386e93fa2f5c8d40fc8120d14ca235
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
2 <HTML>
3 <HEAD>
4 <TITLE>80386 Programmer's Reference Manual -- Opcode MOVSX</TITLE>
5 </HEAD>
6 <BODY>
7 <B>up:</B> <A HREF="c17.htm">
8 Chapter 17 -- 80386 Instruction Set</A><BR>
9 <B>prev:</B><A HREF="MOVS.htm">
10 MOVS/MOVSB/MOVSW/MOVSD Move Data from String to String</A><BR>
11 <B>next:</B><A HREF="MOVZX.htm"> MOVZX Move with Zero-Extend</A>
12 <P>
13 <HR>
14 <P>
15 <H1>MOVSX -- Move with Sign-Extend</H1>
17 <PRE>
18 Opcode Instruction Clocks Description
20 0F BE /r MOVSX r16,r/m8 3/6 Move byte to word with sign-extend
21 0F BE /r MOVSX r32,r/m8 3/6 Move byte to dword, sign-extend
22 0F BF /r MOVSX r32,r/m16 3/6 Move word to dword, sign-extend
23 </PRE>
25 <H2>Operation</H2>
27 <PRE>
28 DEST := SignExtend(SRC);
29 </PRE>
31 <H2>Description</H2>
33 MOVSX reads the contents of the effective address or register as a byte
34 or a word, sign-extends the value to the operand-size attribute of the
35 instruction (16 or 32 bits), and stores the result in the destination
36 register.
38 <H2>Flags Affected</H2>
40 None
42 <H2>Protected Mode Exceptions</H2>
44 #GP(0) for an illegal memory operand effective address in the CS, DS,
45 ES, FS or GS segments; #SS(0) for an illegal address in the SS segment;
46 #PF(fault-code) for a page fault
48 <H2>Real Address Mode Exceptions</H2>
50 Interrupt 13 if any part of the operand would lie outside of the effective
51 address space from 0 to 0FFFFH
53 <H2>Virtual 8086 Mode Exceptions</H2>
55 Same exceptions as in Real Address Mode; #PF(fault-code) for a page
56 fault
59 <P>
60 <HR>
61 <P>
62 <B>up:</B> <A HREF="c17.htm">
63 Chapter 17 -- 80386 Instruction Set</A><BR>
64 <B>prev:</B><A HREF="MOVS.htm">
65 MOVS/MOVSB/MOVSW/MOVSD Move Data from String to String</A><BR>
66 <B>next:</B><A HREF="MOVZX.htm"> MOVZX Move with Zero-Extend</A>
67 </BODY>