Copyright (C) 2000-2012 |
GNU Info (nasm.info)Section B.4.178B.4.178. `MOVSB', `MOVSW', `MOVSD': Move String ----------------------------------------------- MOVSB ; A4 [8086] MOVSW ; o16 A5 [8086] MOVSD ; o32 A5 [386] `MOVSB' copies the byte at `[DS:SI]' or `[DS:ESI]' to `[ES:DI]' or `[ES:EDI]'. It then increments or decrements (depending on the direction flag: increments if the flag is clear, decrements if it is set) `SI' and `DI' (or `ESI' and `EDI'). The registers used are `SI' and `DI' if the address size is 16 bits, and `ESI' and `EDI' if it is 32 bits. If you need to use an address size not equal to the current `BITS' setting, you can use an explicit `a16' or `a32' prefix. The segment register used to load from `[SI]' or `[ESI]' can be overridden by using a segment register name as a prefix (for example, `es movsb'). The use of `ES' for the store to `[DI]' or `[EDI]' cannot be overridden. `MOVSW' and `MOVSD' work in the same way, but they copy a word or a doubleword instead of a byte, and increment or decrement the addressing registers by 2 or 4 instead of 1. The `REP' prefix may be used to repeat the instruction `CX' (or `ECX' - again, the address size chooses which) times. automatically generated by info2www version 1.2.2.9 |