x86 - In Assembly, Do Instructions Specify Data Types? -
i'm beginner in assembly language programming (x86).
is following true it?
in assembly data types byte, word, dword mean 8bit,16bit , 32 bit patterns respectively, not integers. don't have meaning themselves, bit patterns. instructions use them give them meaning.
"assembly" code many special instructions operate on various size operands (for x86, 1 or more bytes) contain values individual instructions assume of particular type.
most of basic instruction set (e.g., add, cmp, xor) assumes/treats operands if n-byte 2's complement integers. byte, dword, etc. hints saying "n" is.
the so-called "floating point" instructions treat operands if 32 bit or 64 bit ieee floating point numbers. there "crossover" instructions treat 1 operand 2's complement integer; allow programs convert between these representations.
the so-called string instructions treat operand register ecx long string of 1,2,4 or 8 byte values.
the various vector instructions treat operands short vectors of 2's complement integers, or floating point numbers.
so, yes, each individual machine instruction assumes specific data types operands.
the x86 assembly source code confuses people on point, because appears assembly language programmer specifying explicit type, e.g. dword, or qword ptr. going on coder writing name of broad class of instructions (e.g., mov), , providing enough hints assembler can choose specific binary machine instruction assumes explicitly coded data type.
Comments
Post a Comment