flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
edfed 28 Dec 2007, 22:37
if you want to know, you have to try...
|
|||
![]() |
|
LocoDelAssembly 28 Dec 2007, 22:42
AMD64 Architecture Programmer’s Manual Volume 3: General-Purpose and System Instructions wrote: The forms of the CMPSx instruction with explicit operands address the first operand So you can modify the segment register of the destination operand but the source is always ES. Basicaly, when you override the default (you don't use [DS:SI] as dest), an extra byte is added before the instruction (the segment override prefix). Code: rep cmps byte [fs:si], byte[es:di] ; is equivalent to rep fs cmps byte [ds:si], byte[es:di] ; also equivalent to rep fs cmpsb You don't need to bother about the last code, is just to show the encoding. |
|||
![]() |
|
DOS386 29 Dec 2007, 04:19
matias_beretta wrote: Hello, thanks for reading my topic... The time has come that you study the Intel 80386 manual: http://board.flatassembler.net/topic.php?t=3164 Of course you also can look into an 8086 manual, which is even smaller and easier to understand, but don't search stuff like EAX inside ![]() Quote:
Yes, but it's really not for beginners ![]() _________________ Bug Nr.: 12345 Title: Hello World program compiles to 100 KB !!! Status: Closed: NOT a Bug |
|||
![]() |
|
rugxulo 25 Jan 2008, 07:19
Apparently, for string instructions, you can never override the destination's segment (always uses ES).
See here for a bit of info about why FASM doesn't complain. |
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2023, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.